рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд▓рд┐рдП PHP рд╡рд░реНрдЧ

PHP рд╡рд┐рд╖рдп рд╕реЗ mocksoul рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ : Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдкрд░рд┐рдЪрдп



рд╕рдорд╕реНрдпрд╛



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рдХрд┐ рд░реВрдкрд░реЗрдЦрд╛ рдХреА рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ "рдПрдХ рд╡рд░реНрдЧ - рдПрдХ рдлрд╝рд╛рдЗрд▓" рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐, рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдЬреЗрдбрдПрдл рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдПрдХ рджреЛрд╖ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкреАрдПрдЪрдкреА рдХрд╛ рдПрдХ рджреЛрд╖ рд╣реИред рдЬрдм рдкреАрдПрдЪрдкреА рджрд░реНрдЬрдиреЛрдВ рдФрд░ рд╕реИрдХрдбрд╝реЛрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдЬрд╛рдВрдЪрдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред



рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рд╕рдорд╛рд╡реЗрд╢рди рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИред рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рд╡рд░реНрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл includ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдЕрдиреНрдп рд╕рднреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реБрдП, рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИред



рд╡рд░реНрдЧ



<? php

рдХрдХреНрд╖рд╛ ZendMake

{

/ **

* рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ, рдЖрд╡рд╢реНрдпрдХрддрд╛ / рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЧреБрдкреНрдд рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛

*

* Param string $ dest рд╕рдВрдХрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░реНрдг рдирд╛рдо

* рдкрд░рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ $ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП ZF рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╢рд╛рдорд┐рд▓ рд╣реИ

* рд╡рд╛рдкрд╕реА рд╕рд░рдгреА

* /

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдирд╛ ($ рднрд╛рдЧреНрдп, $ рд╢рд╛рдорд┐рд▓ рд╣реИ = рдЕрд╢рдХреНрдд)

{

$ рд╢рд╛рдорд┐рд▓ рд╣реИ = is_array ($ рд╢рд╛рдорд┐рд▓ рд╣реИ)? $ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╕реНрд╡рдпрдВ :: _ getZendIncludes ();



// рдЯреИрдЧ рд╣рдЯрд╛рдПрдВ '<? Php' '? > ', рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрджрд┐рдо рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ / рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ [_once]

$ рдкреИрдЯрд░реНрди [] = '% (^ \ <\; php | \? \> $)% m'?

$ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди [] = '';

$ рдкреИрдЯрд░реНрди [] = '% / \ *ред *; \ * /% sm';

$ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди [] = '';

$ рдкреИрдЯрд░реНрди [] = '% //ред * $% m';

$ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди [] = '';

$ рдкреИрдЯрд░реНрди [] = '% (requ_once | рд╢рд╛рдорд┐рд▓_рдСрдирд╕ | рдЖрд╡рд╢реНрдпрдХрддрд╛ | рд╢рд╛рдорд┐рд▓)] [("\" ((? *?) [] "\тАЩ];% sm тАЩ;

$ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди [] = '';

$ рдкреИрдЯрд░реНрди [] = '% (\ n) {2,}%';

$ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди [] = "\ n";



$ рд╢рд░реАрд░ = "<? php \ n";

foreach ($ $ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ) {



$ рд╢рд░реАрд░ред = preg_replace ($ рдкреИрдЯрд░реНрди, $ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, file_get_contents ($ fname, true));

}



$ рдЖрдХрд╛рд░ = file_put_contents ($ рдЧрдВрддрд╡реНрдп, $ рд╢рд░реАрд░);



рд░рд┐рдЯрд░реНрди рдРрд░реЗ ('рдореЗрдВ' => $ рд╢рд╛рдорд┐рд▓ рд╣реИ, 'рд╕рдВрдХрд▓рд┐рдд рдмреЙрдбреА' => $ рд╢рд░реАрд░, 'рд╕рдВрдХрд▓рд┐рдд' => рдЕрдиреНрдп рдЖрдХрд╛рд░);

}



/ **

* рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдВрдж рдЕрджреНрд╡рд┐рддреАрдп ZF рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

*

* рд╡рд╛рдкрд╕реА рд╕рд░рдгреА

* /

рдирд┐рдЬреА рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди _getZendIncludes ()

{

$ рдЖрд╡рд╢реНрдпрдХ = рд╕рд░рдгреА ();

$ рд╢рд╛рдорд┐рд▓_рдлрд╛рдЗрд▓реНрд╕ = get_included_files ();

foreach ($ рд╢рд╛рдорд┐рд▓_рдлрд╛рдЗрд▓ $ fname рдХреЗ рд░реВрдк рдореЗрдВ) {

рдЕрдЧрд░ ((рд╕реНрдЯреНрд░реИрдк ($ fname, 'Zend')> 0) || (рд╕реНрдЯреНрд░реЙрд╕реНрдЯ ($ fname, __CLASS__ред '.php'))) {ред

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП;

}



$ рдЖрд╡рд╢реНрдпрдХ [] = str_replace ('\\', '/', рдкрджрд╛рд░реНрде ($ fname, strpos ($ fname, 'Zend'), strlen ($ fname)));



// рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

$ рдкреИрдЯрд░реНрди = '% (рдЖрд╡рд╢реНрдпрдХрддрд╛_ рд╢рд╛рдорд┐рд▓ред рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ) [("\"] (? *?) [] "\'];% sm ';

preg_match_all ($ рдкреИрдЯрд░реНрди, file_get_contents ($ fname), $ рдкреЙрдХреЗрдЯ);



$ рдЖрд╡рд╢реНрдпрдХ = array_merge ($ рдкреЙрдХреЗрдЯ [2], $ рдЕрдкреЗрдХреНрд╖рд┐рдд);

}



рд╡рд╛рдкрд╕реА array_unique ($ рдЖрд╡рд╢реНрдпрдХ);

}

}





рдХреЗ рдЙрдкрдпреЛрдЧ



рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ рдбрд╛рд▓реЗрдВ

'ZendMake.php' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;

$ рдкрд░рд┐рдгрд╛рдо = ZendMake :: рдмрдирд╛рдУ ($ libDirред 'Zend.Make.php');

Zend_Debug :: рдбрдВрдк ($ рдкрд░рд┐рдгрд╛рдо ['рд╢рд╛рдорд┐рд▓ рд╣реИрдВ]]);

Zend_Debug :: рдбрдВрдк ($ рдкрд░рд┐рдгрд╛рдо ['рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ']);





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



рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдирд┐рдпрдВрддреНрд░рдХ, рд╕рддреНрд░, рдкреНрд░рд╛рдорд╛рдгрд┐рдХ, рджреГрд╢реНрдп, рдЙрдбрд╝реА, рдбреАрдмреА, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рд╕рдВрд╕реНрдХрд░рдг, рдбреАрдмрдЧ, рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЙрдбреНрдпреВрд▓) рд╕реЗ 60 рд╕реЗ рдЕрдзрд┐рдХ рдЬреЗрдбрдПрдл рдлрд╛рдЗрд▓реЗрдВ рдПрдХрддреНрд░ рдХреАрдВред рдПрдХрддреНрд░ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 231 kb рд▓рд┐рдпрд╛ рдЧрдпрд╛ред



рдЗрдХрдЯреНрдареЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд░рди рд╕рдордп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 8 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рддреЗрдЬ рд╣реИред



All Articles