8 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП PHP Matryoshka рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕

рдореИрдВ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ (рдЖрда рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдЬреЛ рдореИрдВ 2003 рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдФрд░ рддрдм рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╕реБрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдкреИрдЯрд░реНрди рдХрд╛ рд╕рд╛рд░ рдПрдХ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдЧреБрдбрд╝рд┐рдпрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рдЬрдм рдереЛрдбрд╝рд╛ рдШреЛрдВрд╕рд▓рд╛ рдЧреБрдбрд╝рд┐рдпрд╛ рдмрдбрд╝реЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рд╣рдо рдкрд╣рд▓реЗ php рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рд╣рдо рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдЕрдкрдиреЗ php рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЖрджрд┐ред

рдЫрд╡рд┐

рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрд╛рдЪреЗ рдореЗрдВ рдПрдХ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ http://start.local http://start.local рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде /home/start.local/www , рдЬрд╣рд╛рдВ рдкреНрд░рд╛рд░рдВрдн рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ /home/start.local/www/index.php , рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ:

 <?load::integration('main.tpl');?> 


рдЗрд╕ рдкрд╛рда рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рд▓реЛрдб рдХреНрд▓рд╛рд╕ рдлрд╝рдВрдХреНрд╢рди (рд╡рд┐рдзрд┐) load::integration() рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ - рд▓рд╛рдЗрди 'main.tpl' ред

рдЬрд╣рд╛рдБ, main.tpl рдкрд╣рд▓реЗ php рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реИ, рдФрд░ load::integration() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд╣рдореЗрдВ main.tpl рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП default.tpl, рдЬрд┐рд╕рдореЗрдВ mail.tpl рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдореНрдмреЗрдбреЗрдб рд╣реЛрдЧрд╛ред рдмрджрд▓реЗ рдореЗрдВ, default.tpl рдПрдХ рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрджрд┐ рдЙрдЪреНрдЪ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ load::integration() рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╕рднреА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рд╕рдордЧреНрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред

рдЖрдЧреЗ, рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИред



рдпрд╣ рдпреЛрдЬрдирд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдХрд░рддреА рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ index.php), рд╣рдо рдкреАрд╕реАрдкреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдлрд╝рд╛рдЗрд▓ /home/start.local/www/.htaccess рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ /home/start.local/www/.htaccess рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

 php_value auto_prepend_file /home/start.local/bin/lib/config.mdl 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП config.mdl рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИ:

 #  OC:    define("OS", getenv("COMSPEC")? ";": ":"); # ,  -    #   -. #,    dirname,   , # -    , #   , ..    /home/start.local/bin ini_set("include_path", ini_get("include_path").OS.dirname(dirname(__FILE__))); #   - load.cls require_once 'lib/load.cls'; #  - create.cls,     require_once 'lib/create.cls'; # - db.cls,      #require_once 'lib/db.cls'; 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд▓реЛрдб рд╡рд░реНрдЧ ( /home/start.local/bin/lib/load.cls ) рдФрд░ рдЗрд╕рдХрд╛ load::integration() рдлрд╝рдВрдХреНрд╢рди, config.mdl рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрд▓реЛрдбреЗрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЗрдП рд▓реЛрдб рдХреНрд▓рд╛рд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:

 <? class load { static $layout = ''; static $title = ''; static $body = ''; static $path; static $db; static function integration($maket) { #    self::$path = self::path(); #    //self::$db = new db(); do { $current = self::$layout; ob_start(); require_once "tpl/" .$maket; self::$body = ob_get_clean(); $maket = self::$layout; } while ($current != self::$layout); echo self::$body; } static function path($url='') { $var = (!$url)? dirname(getenv("SCRIPT_NAME")): $url; return explode("/", trim($var, "/\\") ); } } ?> 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди load::integration() рдореЗрдВ рдХреЗрд╡рд▓ 8 рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдЬреЛ {} рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рдЬрд┐рд╕рдХрд╛ рд╕рд╛рд░ рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЪрд░ self::$body рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬрдирд╛ self::$body ред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдкрд░реЗрд╢рди рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд╣реИ рдпрджрд┐ рд╕реНрдЯрд╛рд░реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ main.tpl рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ
 <? load::$layout = 'default.tpl'; load::$title = ' '; ?> <h2> </h2> <p>  </p> 


рдирд┐рдпрдВрддреНрд░рдг рдЪрд░ load::$layout рдпрд╣рд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЪрд░ load::$title , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ default.tpl рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдЪрд▓рд┐рдП default.tpl рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional"> <html> <head> <title><?=load::$title?></title> </head> <body> <table align="center" width="600"> <tr valign="top"> <td width="150"> <? if ( !empty(load::$path[0]) ) { ?> <p><a href="<?=create::file('/', 'main.tpl')?>"></a></p> <? } else { ?> <p>:</p> <? } ?> <p><a href="<?=create::file('/news/', 'page.tpl')?>"></a></p> <p><a href="<?=create::file('/cont/', 'page.tpl')?>"></a></p> </td> <td> <?=load::$body?> </td> </tr> </table> </body> </html> 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ html рдорд╛рд░реНрдХрдЕрдк рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп php рдХреЛрдб рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред Php рдЖрд╡реЗрд╖рдг рдХреЗ рдмреАрдЪ, рдЪрд░ load::$body рд▓рд┐рдП рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ load::$body ред рдЗрд╕ рдЪрд░ рдореЗрдВ main.tpl рдХреЛрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЪрд░ load::$layout рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ load::$layout рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ default.tpl рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХреЛрдИ load::$layout рдирд╣реАрдВ load::$layout рдореВрд▓ load::$layout рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ load::$layout рд╡реИрд░рд┐рдПрдмрд▓, рдЗрд╕рд▓рд┐рдП load::integration() рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкреВрд░реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрддреА рд╣реИ, рдЕрдкрдиреЗ do {} рдЪрдХреНрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред , рдпрд╛рдиреАред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрддрд╛ рд╣реИред

рдЕрдм рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗ рдореЗрдиреВ рдореЗрдВ рдЙрди рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ default.tpl рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

 <a href="<?=create::file('/news/', 'page.tpl')?>"></a> 


рдпрд╣рд╛рдВ, рд▓рд┐рдВрдХ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдЯреИрдЧ рдХреА href рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ create::file() рдХреНрд▓рд╛рд╕ рдХреЗ create::file() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ (рдпрд╣ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - '/news/' ) рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдкрд╣рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдХреЙрд▓ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ (рдпрд╣ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ 'page.tpl' )ред

create::file() рдХрд╛ рдкрд░рд┐рдгрд╛рдо create::file() рдлрд╝рдВрдХреНрд╢рди рджреЛ рдХрд╛рд░реНрдп рд╣реЛрдВрдЧреЗ:
  1. href рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ, рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓рд┐рдВрдХ рдлрд╛рд░реНрдо рд▓реЗ рдЬрд╛рдПрдЧрд╛
     <a href="/news/"></a> 
  2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде /home/start.local/www/news/index.php рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
     <?load::integration('page.tpl');?> 


рдпрд╛рдиреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯ рдкреЗрдЬ.tpl рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ main.tpl рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред

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

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдпрд╣ create::file() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдПрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдХреЛрдб рд╣реИ:
 <? class create { #    static function dir($arr, $dir='') { if ($dir=='') $dir = $_SERVER['DOCUMENT_ROOT']; #  chdir($dir); #    foreach ($arr as $a) { if ( $a=='' ) continue; if( !is_dir($a.'/') ){ mkdir($a, 0770) or print("   $dir/<b>$a</b><br>"); } chdir($a); $dir .= '/' .$a; } return $dir; } #       static function file($path, $template, $content='') { #    $path = trim($path, '/'); #  $arr = explode('/', $path); #    $end = array_pop($arr); #     if ( !strpos($end, '.php') ) { #    array_push($arr, $end); $end = 'index.php'; $temp[ $path ] = '/'.$path.'/'; $temp[ '' ] = '/'; $path = $temp[ $path ]; } else { $path = '/'.$path; } $dir = self::dir($arr); #   #   . $fp = fopen($end, "w+") or print ("   $dir/<b>$end</b>!"); #  $content = $content==''? "<?load::integration('$template');?>": $content; #  . fputs($fp, $content); # . fclose ($fp); return $path; } } ?> 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдХрд╛рд░реНрдп (рд╡рд┐рдзрд┐рдпрд╛рдБ) рд╣реИрдВ:
  1. рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдмрдирд╛рдирд╛, create::dir() рдлрд╝рдВрдХреНрд╢рди
  2. рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдФрд░ рдПрдХ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреЛ рднрд░рдирд╛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, create::file() рдлрд╝рдВрдХреНрд╢рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ

рд╡рд╣ рд╕рдм рд╣реИ! 8 рд▓рд╛рдЗрдиреЗрдВред рдЖрдк рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд╣реЛрд╕реНрдЯ start.local рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдХрд╛рдо рдЖрдПрдЧрд╛ рдФрд░ рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реАрдореЗрд╕ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

Source: https://habr.com/ru/post/In126980/


All Articles