рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреНрд▓рд╛рд╕

рдЗрд╕ рд╣рдмреНрд░рддреЛрдкрд┐рдХ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рджред рдореИрдВрдиреЗ рдЕрдкрдиреА рдСрдЯреЛрд▓реИрдбрд░ рдХрдХреНрд╖рд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдЕрдЪрд╛рдирдХ рдпрд╣ рдХрд╛рдо рдореЗрдВ рдЖрдПрдЧрд╛), рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рди рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛рдПрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА рдЬрд╣рд╛рдВ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд░реВрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреВрд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╣реАрдВ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИред

<?php namespace youNameSpace { /** *    * *     ,    .<br/> *     ,  <br/> *         ,<br/> *      (   ),   . * * @author :   * @version 1.0 * @copyright:   */ class Autoloader { /** *,    * * @var type const * */ const debug = 0; public function __construct() { ; } /** *      .<br/> *   ,    . * * @param string $file  ( ) * @param string $ext  ( ) * @param string $dir   (    ) * * @return string * @return false * */ public static function autoload($file, $ext = FALSE, $dir = FALSE) { $file = str_replace('\\', '/', $file); if($ext === FALSE) { $path = $_SERVER['DOCUMENT_ROOT'] . '/classes'; $filepath = $_SERVER['DOCUMENT_ROOT'] . '/classes/' . $file . '.php'; } else { $path = $_SERVER['DOCUMENT_ROOT'] . (($dir) ? '/' . $dir : ''); $filepath = $path . '/' . $file . '.' . $ext; } if (file_exists($filepath)) { if($ext === FALSE) { if(Autoloader::debug) Autoloader::StPutFile((' ' .$filepath)); require_once($filepath); } else { if(Autoloader::debug) Autoloader::StPutFile(('   ' .$filepath)); return $filepath; } } else { $flag = true; if(Autoloader::debug) Autoloader::StPutFile(('    <b>' . $file . '</b>  <b>' . $path . '</b>')); return Autoloader::recursive_autoload($file, $path, $ext, $flag); } } /** *      . * * @param string $file  ( ) * @param string $path    * @param string $ext   * @param string $flag         * * @return string * @return bool * */ public static function recursive_autoload($file, $path, $ext, &$flag) { if (FALSE !== ($handle = opendir($path)) && $flag) { while (FAlSE !== ($dir = readdir($handle)) && $flag) { if (strpos($dir, '.') === FALSE) { $path2 = $path .'/' . $dir; $filepath = $path2 . '/' . $file .(($ext === FALSE) ? '.php' : '.' . $ext); if(Autoloader::debug) Autoloader::StPutFile(('  <b>' .$file .'</b> in ' .$filepath)); if (file_exists($filepath)) { $flag = FALSE; if($ext === FALSE) { if(Autoloader::debug) Autoloader::StPutFile((' ' .$filepath )); require_once($filepath); break; } else { if(Autoloader::debug) Autoloader::StPutFile(('   ' .$filepath )); return $filepath; } } $res = Autoloader::recursive_autoload($file, $path2, $ext, $flag); } } closedir($handle); } return $res; } /** *   * * @param string $data    * * @return void * */ private static function StPutFile($data) { $dir = $_SERVER['DOCUMENT_ROOT'] .'/Log/Log.html'; $file = fopen($dir, 'a'); flock($file, LOCK_EX); fwrite($file, ('тХС' .$data .'=>' .date('dmY H:i:s') .'<br/>тХС<br/>' .PHP_EOL)); flock($file, LOCK_UN); fclose ($file); } } \spl_autoload_register('youNameSpace\Autoloader::autoload'); } ?> 


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


All Articles