рдореБрдЦрд╛рдЧреНрдирд┐ рджреЗрдирд╛





рдПрдХ refactoring рдХреА рдХрд╣рд╛рдиреА, рдпрд╛ PHP рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА ...



рдпрд╣ рд╕рдм рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╢реБрд░реВ рд╣реБрдЖ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдЖрдВрд╕реВ рдФрд░ рд▓рд▓рдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЕрдкрдиреА рдЖрд╡рд╛рдЬ рдореЗрдВ рдЪрд┐рд▓реНрд▓рд╛рддрд╛ рдирд╣реАрдВ: тАЬрдмрдЪрд╛рдУ, рдорджрдж рдХрд░реЛ, рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдзреАрдорд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореБрдЭрд╕реЗ рджреВрд░ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╣реИ ... "



рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ - рдареАрдХ рд╣реИ, рд╣рд╛рдБ ... рддрдм рдХрдВрдкрдиреА рдХреЗ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдерд╛ "рдХреНрдпреВ" (рдЬреЛ рдореБрдЭреЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпреВрдХреНрд░реЗрдиреА рдХрдВрдкрдиреА рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ), рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╣рдБрд╕реА, рдФрд░ рдЙрдиреНрдорд╛рджред рдЦреИрд░, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, XDEBUG рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ (рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп) рд╣реИ:





Webgrind рдРрд╕реА рд╢рд╛рдВрдд рдЪреАрдЬрд╝ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ




рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреГрд╖реНрда рд╣реИ рдЬреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░реАрдЯрд┐рдВрдЧ + рднрд╛рд╖рд╛ рдЪрдпрди + рд╢реНрд░реЗрдгреА рдЪрдпрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) 4.6 рд╕реЗрдХрдВрдб рдореЗрдВ Core2 Quad CPU Q6600@2.40GHz/16Gb (рдХреНрдпреВ рдСрдлрд┐рд╕ рдХреА рд╣рд┐рд╕реНрдЯреАрд░рд┐рдпрд╛ рдФрд░ рдШреГрдгрд╛ рдХрд┐рд░рдгреЛрдВ) рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рдерд╛ред



рдПрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбрд░рд╛рд╡рдирд╛ рдЪрд┐рддреНрд░ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рд╣рдорд╛рд░реА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛:





Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХрдИ рд╣рдлреНрддреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЧрдП рдереЗ ... рдХреЛрдб ...



FastTemplate рдПрдХ "рдлрд╛рд╕реНрдЯ" рд╣реИ





рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди parse_body рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИ:







рдЕрдВрджрд░, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣реЗ:







рд╣рдо рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

// $ рд╕рд╛рдордЧреНрд░реА - рдЯреЗрдореНрдкрд▓реЗрдЯ

// $ rec - рдЪрд░

$ рд╕рд╛рдордЧреНрд░реА = preg_replace ( "/ \\ $ ([AZ] [A-Z0-9 _] +) /" , "@ \\ 1 @" , $ рд╕рд╛рдордЧреНрд░реА ) ;

рдЕрдЧрд░ ( is_array ( $ rec ) ) {

foreach ( $ rec рдХреЗ рд░реВрдк рдореЗрдВ $ рдХреБрдВрдЬреА => $ рдореВрд▓реНрдп ) {

$ рдирд╛рдо = рд╕реНрдЯреНрд░реЗрдЯреЛрдкрд░ ( $ рдХреБрдВрдЬреА ) ;

$ рд╕рд╛рдордЧреНрд░реА = str_replace ( "@ $ рдирд╛рдо @" , " $ рдореВрд▓реНрдп " , " $ рд╕рд╛рдордЧреНрд░реА " ) ;

}

}

$ рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рдПрдВ ;




рдпрд╛рдиреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо $ HTTP_PATH рдЬреИрд╕реА рдХреБрдЫ рдЪреАрдЬрд╝реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ @ HTTP_PATH @ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рд╕рднреА рдЬреНрдЮрд╛рдд рдЪрд░реЛрдВ рдХреЛ рдХреНрд░реВрд░ рдмрд▓ рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИрдВ, рд╡реЗ рдХреБрдЫ рд╕реМ рдЪрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред Pre__placeplace_callback рдХреЗ рд╕рд╛рде str_replace рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдиреЗ рдХреБрдЫ рд╕реЗрдХрдВрдб (рдпрд╛рдиреА, рд▓рдЧрднрдЧ 10%) рдХреА рд╡реГрджреНрдзрд┐ рджреАред



рдХреЛрдб рдЙрджрд╛рд╣рд░рдг



рджрд┐рд▓ рдХреЗ рдмреЗрд╣реЛрд╢ рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред



рднрд╛рд░рддреАрдпреЛрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдкрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдмреБрд░рд╛ PHP рдХреЛрдб рдХрд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ:

рдлрд╝рдВрдХреНрд╢рди рдПрди ( ) {

рд╡реИрд╢реНрд╡рд┐рдХ $ db , $ CONSTANTS , $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ , ...; // рдПрдХ рд╢рдмреНрдж рдореЗрдВ рдХрдИ



рдЗрдХреЛ $ CONSTANTS [ HOMEPAGE_BANNER1_ID ] ; // рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд░рдВрддрд░ рд╣реИ?

рдЧреВрдВрдЬ $ CONSTANTS [ HOMEPAGE_BANNER2_ID ] ; // рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ?

рдЧреВрдВрдЬ $ CONSTANTS [ HOMEPAGE_BANNER3_ID ] ; // 1, 2, 3, рдЬреЛ рдУ_рдУ рдШреЛрд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ

}




рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:

 TPL
 | - index.tpl
 | - index2.tpl
 | - index3.tpl
 | - рд╕реВрдЪрдХрд╛рдВрдХ __ред tpl
 `- index.44.tpl




рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд╣реА рдирдВрдмрд░ рд╣реИ - рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ_рд▓реНрдб, рдЖрдЗрдЯрдо_1 рдЯреЗрдмрд▓, рдЖрджрд┐ред



рдЕрдЧрд░ рд▓рдбрд╝рдХреЗ рдХреЛ рдХрд╛рдо рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ

рдПрдХ рдХрд┐рддрд╛рдм рдореЗрдВ рдПрдХ рдЙрдВрдЧрд▓реА,

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рд▓рд┐рдЦреЗрдВ:

рд╡рд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓рдбрд╝рдХрд╛ рд╣реИред




рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ "рд▓рдбрд╝рдХреЛрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ 9,000 рдиреЛрдЯрд┐рд╕ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред рдФрд░ рдХреЗрд╡рд▓ рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣реА рдореИрдиреБрдЕрд▓'рдореА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ:

// рд╣рдо рдореИрдиреБрдЕрд▓ рдирд╣реАрдВ рдкрдврд╝рддреЗ рд╣реИрдВ

рдЬрдмрдХрд┐ ( $ рдкрдВрдХреНрддрд┐ = mysql_fetch_array ( $ res ) ) {

рдЕрдЧрд░ ( $ рдкрдВрдХреНрддрд┐ ) {

foreach ( $ рдкрдВрдХреНрддрд┐ $ рдХреБрдВрдЬреА => $ рдлрд╝реАрд▓реНрдб ) {

рдЕрдЧрд░ ( ereg ( "^ [0-9] +" , $ рдХреБрдВрдЬреА ) ) {

рдЕрдирд╕реЗрдЯ ( $ рдкрдВрдХреНрддрд┐ [ $ рдХреБрдВрдЬреА ] ) ;

}

}

}

$ рдкрдВрдХреНрддрд┐рдпреЛрдВ [ ] = $ рдкрдВрдХреНрддрд┐ ;

}

// рдпрджрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рдЦрддреНрдо рдХрд░рддреЗ рд╣реИрдВ

// рдЯреНрд░рд┐рдлрд╝рд▓, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдн ~ 0.1 рд╕реЗрдХрдВрдб рд╣реИред 23162 рдХреЙрд▓ рд▓рдЧрддреЗ рд╣реИрдВ

рдЬрдмрдХрд┐ ( $ рдкрдВрдХреНрддрд┐ = mysql_fetch_array ( $ res , MYSQL_ASSOC ) ) {

$ рдкрдВрдХреНрддрд┐рдпреЛрдВ [ ] = $ рдкрдВрдХреНрддрд┐ ;

}




рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд░реНрдл рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рдорд╛рдзрд╛рди, рдореИрдВрдиреЗ рдЗрд╕ рд░рдЪрдирд╛ рдХреЗ рдЧреБрдкреНрдд рдЕрд░реНрде рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХреА рд╣реИ:

$ sqls [ ] = $ sql ;

рдЕрдЧрд░ ( is_array ( $ sqls ) ) {

foreach ( $ sqs $ ssql рдХреЗ рд░реВрдк рдореЗрдВ ) {

рдЕрдЧрд░ ( $ ssql ) {

$ Res = mysql_db_query ( $ db [ 'рдирд╛рдо' ] , $ ssql , $ db [ 'id' ] ) ;

рдЕрдЧрд░ ( $ рд░рд┐рд╕ ) {

рд╡рд╛рдкрд╕реА 0 ;

}

}

}

} {

рд╡рд╛рдкрд╕реА 0 ;

}




рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЧрд┐рдирддреА, рдЬреЛ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

// рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВ

// db_count рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (96 рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдлрд╝рдВрдХреНрд╢рди db_count ( $ sql ) {

рд╡реИрд╢реНрд╡рд┐рдХ $ db ;

$ res = mysql_db_query ( $ db [ 'рдирд╛рдо' ] , $ sql , $ db [ 'id' ] ) ;

$ рдкрд░рд┐рдгрд╛рдо = mysql_num_rows ( $ res ) ;

$ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдУ ;

}




рдкреГрд╖реНрда рдиреЗрд╡рд┐рдЧреЗрд╢рди, рдФрд░ рдпрд╣ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

// рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ

$ res = mysql_db_query ( $ db [ 'рдирд╛рдо' ] , $ sql , $ db [ 'id' ] ) ;

// рдХреБрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ (рд╣рд╛рд▓рд╛рдБрдХрд┐ db_count рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ)

$ row_count = mysql_num_rows ( $ res ) ;

// рдЧрдгрдирд╛ рд╣рдореЗрдВ рдХрд┐рддрдиреЗ рдкреГрд╖реНрда рдорд┐рд▓рддреА рд╣реИ

$ page_count = рдордВрдЬрд┐рд▓ ( $ row_count / $ рдкреЗрдЬрд░ [ 'per_page' ] + 1 ) ;



// рдпрд╣ рдСрдлрд╕реЗрдЯ рд╣реИ

$ bi = ( $ pos - 1 ) * $ рдкреЗрдЬрд░ [ 'per_page' ] ;



// рдЕрдм рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

for ( $ i = $ bi ; $ i < $ bi + $ pager [ "per_page" ] ; $ i ++ ) !!!

рдЕрдЧрд░ ( $ i > = $ row_count ) {

рддреЛрдбрд╝рдирд╛ ;

}



рдЕрдЧрд░ ( mysql_data_seek ( $ res , $ i ) ) {

рддреЛрдбрд╝рдирд╛ ;

}



рдЕрдЧрд░ ( ( $ row = mysql_fetch_assoc ( $ res ) ) ) {

рддреЛрдбрд╝рдирд╛ ;

}

// рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ

$ new_rows [ ] = $ рдкрдВрдХреНрддрд┐ ;

}




рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ - рд╣рдо рдЖрд╕рд╛рди рддрд░реАрдХреЗ рдирд╣реАрдВ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ (str_repeat):

// рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ .sql.php рдлрд╝рд╛рдЗрд▓

// рдлрд╝рдВрдХреНрд╢рди рдЬреЛ HTML рдХреЗ рд▓рд┐рдП рдЪрдпрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ

$ рдСрдлрд╕реЗрдЯ_рд╕реНрдЯреНрд░рд┐рдВрдЧ = '' ;

рдХреЗ рд▓рд┐рдП ( $ i = 1 ; $ i < $ rec [ 'рд╕реНрддрд░' ] ; $ i ++ ) {

$ рдСрдлрд╕реЗрдЯ_рд╕реНрдЯреНрд░рд┐рдВрдЧ ред = '& nbsp; & nbsp; & nbsp; & nbsp;' ;

}




рдпрджрд┐ рд╣рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ 100 рд╡рд░реНрдгреЛрдВ рддрдХ рдЯреНрд░рд┐рдо рдХрд░рдирд╛ рд╣реИ, рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд╛рдЯрдирд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╕рдорд╛рдзрд╛рди рд╣реИ:

$ рдбреЗрдЯрд╛ [ 'рдкрдВрдХреНрддрд┐' ] [ 'рд╡рд┐рд╡рд░рдг' ] = рдкрджрд╛рд░реНрде ( $ рд╡рд┐рд╡рд░рдг , реж , резрежреж ) ;



$ i = 100 ;

рдЬрдмрдХрд┐ ( ( $ рд╡рд┐рд╡рд░рдг [ $ i ] == "" || $ рд╡рд┐рд╡рд░рдг [ $ i ] == "_" ) рдФрд░& $ i < strlen ( $ рд╡рд┐рд╡рд░рдг ) ) :

$ рдбреЗрдЯрд╛ [ 'рдкрдВрдХреНрддрд┐' ] [ 'рд╡рд┐рд╡рд░рдг' ] = $ рд╡рд┐рд╡рд░рдг [ $ i ] ;

$ i ++;

рдЕрдВрдд рдореЗрдВ ;



рдЕрдЧрд░ ( $ i < strlen ( $ рд╡рд┐рд╡рд░рдг ) ) {

$ рдбреЗрдЯрд╛ [ 'рдкрдВрдХреНрддрд┐' ] [ 'рд╡рд┐рд╡рд░рдг' ] = = "..." ;

}




рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдБ $ db рд╣реИ, рдФрд░ рдпрд╣ рдЙрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:

рдлрд╝рдВрдХреНрд╢рди db_query ( $ db , $ sql ) { }

рдлрд╝рдВрдХреНрд╢рди db_sql_query ( $ db , $ sql ) { }

рдлрд╝рдВрдХреНрд╢рди db_count ( $ db , $ sql ) { }

// рдЖрджрд┐ред

// рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ

рдлрд╝рдВрдХреНрд╢рди db_query ( $ sql ) {

рд╡реИрд╢реНрд╡рд┐рдХ $ db ;

}




рдЪрд▓реЛ рд╕рдореБрджреНрд░ рд░реЛрд▓, рд▓реЗрдХрд┐рди рд╣рдо рд╣рдореЗрд╢рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ:

$ sql = "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЖрдИрдбреА, рдирд╛рдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдирд╛рдо = ' $ _POST [рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо] " ;




рд╣рдо рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ:

// $ рдкрдВрдХреНрддрд┐рдпрд╛рдБ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб

foreach ( $ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ $ рдкрдВрдХреНрддрд┐рдпрд╛рдБ ) {

$ рдХреБрд▓ + = $ рдореВрд▓реНрдп [ "рдореВрд▓реНрдп" ] ;

}




рдПрдХ рдПрд╕рдИрдУ URL рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ:

рд╕реНрд╡рд┐рдЪ ( $ params [ 1 ] ) :

рдорд╛рдорд▓рд╛ "usageagreement" :

$ page_id = 13 ;

рддреЛрдбрд╝рдирд╛ ;

рдорд╛рдорд▓рд╛ "рдкреНрд░рд╛рдЗрд╡реЗрд╕реАрдкреЛрд▓рд┐рд╢" :

$ page_id = 14 ;

рддреЛрдбрд╝рдирд╛ ;

рдорд╛рдорд▓рд╛ "рд╢рд░реНрддреЗрдВ"

$ page_id = 15 ;

рддреЛрдбрд╝рдирд╛ ;

рдорд╛рдорд▓рд╛ "рд╕рд╣рдпреЛрдЧреА" :

$ page_id = 22 ;

рддреЛрдбрд╝рдирд╛ ;

рдорд╛рдорд▓рд╛ "aboutus" :

$ page_id = 19 ;

рддреЛрдбрд╝рдирд╛ ;

рдПрдВрдбрд╡рд┐рдЪ ;




PHP рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХреБрдЫ HTML рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

<! - рдЖрдИрдбреА рдРрд╕реА рдЖрдИрдбреА ->

< div id = "banner" > ... < / div >

< div id = "banner" > ... < / div >

< div id = "banner" > ... < / div >

< div id = "banner" > ... < / div >



<! - рдХрдХреНрд╖рд╛ рд▓рдЧрднрдЧ рд╢реИрд▓реА рд╣реИ ->

< li class = "padding-left: 15px;" > ... < / li >



<! - рдЯреЗрдмрд▓ рд▓реЗрдЖрдЙрдЯ ->

<! - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЛ 10 рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдмрд▓ рдкреЗрдВрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ->



<! - рдорд╛рд░реНрдЬрд┐рди, рдорд╛рд░реНрдЬрд┐рди рдХреНрдпрд╛ рд╣реИ? ->

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;




Zend_Cache рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рдХреИрд╢ рджреБрдирд┐рдпрд╛ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛, рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдерд╛, рдФрд░ рдЗрд╕реЗ рд╕рднреА рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХрд┐рд╕реА рдиреЗ рдПрдХ db_sql_query рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛) рдФрд░ рд╕рднреА parse_body рдХреЙрд▓ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╣ рд▓рд╛рдЗрд╡ рд╕рд░реНрд╡рд░ рдкрд░ рдорджрдж рдХрд░рддрд╛ рд╣реИ - рдирд╣реАрдВред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдореБрдЦреНрдп рдПрдХ рдХреЗ рд▓рд┐рдП ~ 200) рд╣реИрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдиреЗ рдХреИрд╢рд┐рдВрдЧ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЛ рдирдХрд╛рд░ рджрд┐рдпрд╛ред



рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕ рдЕрдзрд┐рдХ рд╕рдлрд▓ рдерд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрдордЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ - ~ 180% рдХреА рдЧрддрд┐ рд╡реГрджреНрдзрд┐ред рдХреНрдпрд╛ рдХреВрд▓ рдЗрдВрдбрд┐рдХреЗрдЯрд░, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 100% рдХреИрд╢ рдореЗрдВ рд╣рд┐рдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд┐рдлреНрд▓реЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред



рдХреБрдЫ рдЧреНрд░рд╛рд╣рдХ рдЕрдиреБрдХреВрд▓рди



рдареАрдХ рд╣реИ, рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП .htaccess рдиреЗ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХреА рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рд╕рд╛рдЗрдЯ рдкрд░ рдЧрдП:



FileETag MTime Size



AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript



<ifModule mod_expires.c>

ExpiresActive On

ExpiresDefault "access plus 1 seconds"

ExpiresByType text/html "access plus 1 seconds"

ExpiresByType image/x-icon "access plus 2592000 seconds"

ExpiresByType image/gif "access plus 2592000 seconds"

ExpiresByType image/jpeg "access plus 2592000 seconds"

ExpiresByType image/png "access plus 2592000 seconds"

ExpiresByType text/css "access plus 604800 seconds"

ExpiresByType text/javascript "access plus 216000 seconds"

ExpiresByType application/x-javascript "access plus 216000 seconds"









рдФрд░ рдлрд┐рд░ рдХреНрд░рдо рдореЗрдВ рд╕рдм рдХреБрдЫ:





рдЬрд╝реЗрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ



рдФрд░ рдЕрдм рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдзреАрд░реЗ-рдзреАрд░реЗ Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИред рдпрд╣ рд╕рдм index.php рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рдВрдЪ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдУрд╣ рд╣рд╛рдБ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рд╣реИ):



// рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рд░рд┐рдлрд▓реЗрдХреНрдЯ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ

$ рдореЙрдбреНрдпреВрд▓ = рд╕рд░рдгреА (

'/ рдЦреЛрдЬ /' ,

'/ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ /'

) ;



$ рдкрде = $ _SERVER [ 'REQUEST_URI' ] ;



// рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪреЗрдХ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдереЗ,

// рд▓реЗрдХрд┐рди рдлреЙрд░реНрдо / рдЦреЛрдЬ / ... рдХрд╛ рдЕрдиреБрд░реЛрдз ... рдЕрдм рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдЕрдЧрд░ ( in_array ( $ рдкрде , $ рдореЙрдбреНрдпреВрд▓ ) ) {

// рдХрдиреЗрдХреНрдЯреЗрдб ZF (рдорд╛рдирдХ рдХреЛрдб рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ / index.php рдХреЗ рдЕрдВрджрд░)

рдЖрд╡рд╢реНрдпрдХрддрд╛ 'рд▓реЛрдбрд░ ред php' ;

рдирд┐рдХрд╛рд╕ ( ) ;

}



// рдФрд░ рдпрд╣ рдПрдХ рд╣реЛрдЧрд╛

foreach ( $ рдореЙрдбреНрдпреВрд▓ $ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ ) {

рдЕрдЧрд░ ( рд╕реНрдЯреНрд░реИрдк ( $ рдкрде , $ рдореЙрдбреНрдпреВрд▓ ) === 0 ) {

рдЖрд╡рд╢реНрдпрдХрддрд╛ 'рд▓реЛрдбрд░ ред php' ;

рдирд┐рдХрд╛рд╕ ( ) ;

}

}




рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИрдВ, рддреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдИ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд░рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ:

$ _SERVER [ 'REQUEST_URI' ] = str_replace ( $ _SERVER [ 'PHP_SELF' ] , '/ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ /' , $ _SERVER [ 'REQUEST_URI' ) ;

рдЖрд╡рд╢реНрдпрдХрддрд╛ 'рд▓реЛрдбрд░ ред php' ;

рдирд┐рдХрд╛рд╕ ( ) ;




"рд╡реИрд╢реНрд╡рд┐рдХ" рд╣реЙрд░рд░ рдХреЛ рднреВрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░ Zend_Registry рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдП рдЧрдП рдереЗ (рдФрд░ рдмрд╛рдж рдореЗрдВ application.ini рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рд╡реЗ рд╣реИрдВ)ред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ Zend_Translate рдХреЛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджреА рдЧрдИ рдереА (рд╕рд░рдгреА рдПрдбрд╛рдкреНрдЯрд░ рджреЗрдЦреЗрдВ)



рдкрд░рд┐рдгрд╛рдо



рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдиреНрдпрд╛рдп рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рддреБрд▓рдирд╛рддреНрдордХ рдорд╛рдк рд╣реИрдВ:



рдкреАрдврд╝реА рдХрд╛ рд╕рдордп рдЬрдирд░реЗрд╢рди рдЯрд╛рдЗрдо (рдкреБрдирдГ) рдЬрдирд░реЗрд╢рди рдЯрд╛рдЗрдо (ZF) рдкреГрд╖реНрда рдХреА рдорд╛рддреНрд░рд╛ рдкреГрд╖реНрда рдорд╛рддреНрд░рд╛ (ZF)
рдореБрдЦреНрдп рдкреГрд╖реНрда 4 663ms 2 759 рдореА - 699.5Kb 288.0Kb
рд╕реНрдереИрддрд┐рдХ рдкреЗрдЬ 3 115 рдореА 2 008ms 295ms 263.3Kb 166.2Kb
рдЖрдЗрдЯрдо рдкреЗрдЬ 3 082ms 1 745ms 180ms 589.1Kb 260.8Kb




рддрд┐рдерд┐ рджреНрд╡рд╛рд░рд╛ рдФрд╕рдд / рдЕрдзрд┐рдХрддрдо рдкреГрд╖реНрда рдкреАрдврд╝реА рд╕рдордп рдХрд╛ рдПрдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ: http://screencast.com/t/NDY1NGE5



рдЕрджреНрдпрддрди : рд▓реЗрдЦ рдХреЗ рд╕реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЙрдмрд▓ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рдлреЗрдж рдФрд░ рд╢рд░рд╛рдмреА рд╣реИ, рдФрд░ рдХреМрди рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╣реИ, "рдЦрд░рд╛рдм" рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдЕрд░реНрдХ рдмрдирд╛рддрд╛ рд╣реИ рд╕рдмрдХ, рдФрд░ рдпрд╣ рдХреЛрдб рдЫреЛрдЯрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛ ...



All Articles