GlavWeb рд╕реЗ Yii рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛

Yii рдврд╛рдВрдЪреЗ рдХреЗ рд╕рднреА рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдирдорд╕реНрдХрд╛рд░!

рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдореИрдВ рд╡рд╛рдИрдЖрдИрдЖрдИ рдкрд░ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗ, рд╢рд╛рдпрдж рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рд╣реЛрдЧрд╛, рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ :)ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдореИрдВ рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдЬреИрд╕рд╛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рд╡реИрд╕рд╛ рд╣реА рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧреА, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╡рд┐рд╖рдп рдХреЛ рд╣реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ред

рддреЛ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрдирдкреБрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (index.php) рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВред рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
<?php $rootPath = dirname(__FILE__); /** * Define config */ $env = null; $envFile = $rootPath . '/.env'; if (is_file($envFile)) { $env = trim(file_get_contents($envFile)); } $configFile = $rootPath . '/application/config/production.php'; if (!empty($env)) { $configFile = $rootPath . '/application/config/' . $env . '.php'; if (!file_exists($configFile)) { die('Config file is not found.'); } } $config = require $configFile; /** * Create and run application */ $libraryPath = $rootPath . '/library'; require_once $libraryPath . '/yii/yii.php'; $autoloader = function($class) { global $libraryPath; $path = $libraryPath . '/' . implode(preg_split('/[_\\\]/', (string)$class, -1, PREG_SPLIT_NO_EMPTY), DIRECTORY_SEPARATOR) . '.php'; if (is_file($path)) { include_once $path; } }; Yii::registerAutoloader($autoloader, true); Yii::createWebApplication($config)->run(); 

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

рдкреНрд▓рд╕ рдореЗрдВ, рдореИрдВ рднреА рдЗрд╕реА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдореИрдбреЗрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣реИ:
 define('YII_DEBUG', true); define('YII_TRACE_LEVEL', 3); define('YII_ENABLE_ERROR_HANDLER', true); define('YII_ENABLE_EXCEPTION_HANDLER', true); 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпреЛрдВ, рдФрд░ "index.php" рдореЗрдВ рдирд╣реАрдВ? - рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдорд╛рди рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

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

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░" рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧреА:
- main.php // рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕
- production.php // рд╕рд░реНрд╡рд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░
рдбреЗрд╡рд▓рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП dev.php // рдЕрдВрддрд░

рдЙрджрд╛рд╣рд░рдг, рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА "dev.php":
 define('YII_DEBUG', true); define('YII_TRACE_LEVEL', 3); define('YII_ENABLE_ERROR_HANDLER', true); define('YII_ENABLE_EXCEPTION_HANDLER', true); return array_replace_recursive( require dirname(__FILE__) . '/main.php', array( 'components' => array( 'db' => array( //     ), ), ) ); 

рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдореВрд▓ PHP рдлрд╝рдВрдХреНрд╢рди "array_replace_recursive ()" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд▓рдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ "CMap :: mergeArray ()" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ (рдХреБрдХрдмреБрдХ рд╕рд▓рд╛рд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░)ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдордиреЗ рдЕрднреА рддрдХ Yii рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рд╡реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реБрдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ yii.php рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рд╡рд┐рд░реЛрдз рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдк "index.php" рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо Yii рдореЗрдВ рдЕрдкрдирд╛рдИ рдЧрдИ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдирдХ рдирд╛рдордХрд░рдг рд╕реЗ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реИрдВред рд░реВрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 3 рдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВ:
- рдЖрд╡реЗрджрди // рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЗ рд╕рдорд╛рди
- рдкреБрд╕реНрддрдХрд╛рд▓рдп // рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╣рд╛рдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ Yii рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ // рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рд╡реЗрдм рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕, рдЬреЗрдПрд╕, рдЫрд╡рд┐рдпрд╛рдВ
- рд╕рдВрдкрддреНрддрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП assest // рдлрд╝реЛрд▓реНрдбрд░

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ Zend рд╕реЗ рдЫреЛрдбрд╝реА рдЧрдИ рдЖрджрдд рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред

рд╣рдорд╛рд░реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП "рд╕рдВрдкрддреНрддрд┐ / рд╕рдВрдкрддреНрддрд┐" рдШрдЯрдХ рдореЗрдВ "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ / рд╕рдВрдкрддреНрддрд┐" рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдмреЗрд╕рдкрд╛рде" рдФрд░ "рдмреЗрд╕рдпреВрдЖрд░рдПрд▓" рдЧреБрдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реИрдВред "Index.php" рдореЗрдВ рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдЯреЛрд▓реИрдбрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ? "рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╛рдиреА рд╣рдорд╛рд░рд╛ рдСрдЯреЛрд▓реИрдбрд░ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХрдХреНрд╖рд╛ "Zend_Paginator" рдХреЗ рд▓рд┐рдП, рдкрде "рд▓рд╛рдЗрдмреНрд░реЗрд░реА / Zend / Paginator.php" рд╣реИред рд╡рд╣ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЛ рднреА рд╕рдордЭрддрд╛ рд╣реИ: рд╡рд░реНрдЧ "рдЬрд╝реЗрдВрдб \ рдкрдЧрд┐рдиреЗрдЯрд░ \" рдкрд╛рдЧрд┐рдиреЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкрде рдХреНрд░рдорд╢рдГ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдЬрд╝реЗрдВрдб / рдкрдЧрд┐рдиреЗрдЯрд░ / рдкрдЧрд┐рдиреЗрдЯрд░ / рдПрдлрдкреАрдкреА" рд╣реЛрдЧрд╛ред рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░рд╛ рдСрдЯреЛ-рд▓реЛрдбрд░ Yii рдСрдЯреЛ-рд▓реЛрдбрд░ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ "Yii :: registerAutoloader ()" рдореЗрдВ рджреВрд╕рд░реЗ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реА рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

PS рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (APPLICATION_ENV рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк, suver - habrahabr.ru/post/146473 рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореЗрд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрд╛рдЪреЗ рдореЗрдВ рд╕рд╛рдЗрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рд╣реИ, рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рд╣рдо рд╕рд╛рдЗрдЯ рдХреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ (http: // localhost / mysite) рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

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


All Articles