AssetManager: рдЕрджреНрдпрддрди рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╕реЗ рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдП

рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, css рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓реНрд╕, рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВ ... рдФрд░ рдпрд╣ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреИрд╢ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрдирд╛ рд░рд╣ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдмрд╛рд░ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рддреЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ) ред

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

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


рдЪрд░рдг 1. рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред


рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдПрдХ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВред
рд╣рдордиреЗ рд╕рднреА рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдХреЛ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рд╣реИред рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдпреА рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реЗрд╡рд┐рдХреЙрди, рд▓реЛрдЧреЛ, рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрдбрд╝ рдореЗрдВ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
 / рд╕рдВрд░рдХреНрд╖рд┐рдд
     / рд╕рдВрдкрддреНрддрд┐
         / рд╕реАрдПрд╕рдПрд╕
             /main.css
         / img
             /bg.png
             /sprite.png
             /extra_icons.png
         / рдЬреЗ.рдПрд╕.
             /main.js
             /form.js
             /etc.js


рдЪрд░рдг 2. рдЙрдкрдХрд░рдг рддреИрдпрд╛рд░ рдХрд░рдирд╛ред


рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрддрд┐рд░рдВрдЬрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдиреНрдп рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВрдЧреЗ:
class Controller extends CController { private $_assetsBase; public function getAssetsBase() { if ($this->_assetsBase === null) { $this->_assetsBase = Yii::app()->assetManager->publish( Yii::getPathOfAlias('application.assets'), false, -1, YII_DEBUG ); } return $this->_assetsBase; } public $menu=array(); public $items=array(); public $breadcrumbs=array(); } 

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

рдпрд╣рд╛рдБ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ:
 publish(string $path, boolean $hashByName=false, integer $level=-1, boolean $forceCopy=false) 

рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг:

$ рдкрде - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрде рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ;
$ hashByName - рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо, рдпрд╛ рд╣реИрд╢ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рднреА рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА;
$ рд╕реНрддрд░ - рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреА рдбрд┐рдЧреНрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ( -1 - рд╕рднреА рд╕рдмрдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИрдВ);
$ рдлреЛрд░реНрд╕рдХреЙрдкреА - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреЙрдкреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рднрд▓реЗ рд╣реА рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛрдВред рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ YII_DEBUG рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЙрддреНрдкрд╛рджрди рдкрд░ рдХреЗрд╡рд▓ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ (рдЙрддреНрдкрд╛рджрди рдкрд░ YII_DEBUG рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЪрд░рдг 3. рд╣рдо рддреИрдпрд╛рд░ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рддреИрдпрд╛рд░ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


рдмрд╣реБрдд рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдкрддреНрддрд┐рдмреЗрд╕реЗ , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдЧреЗрдЯрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд▓рд┐рдЦрд╛ рдерд╛, рдЕрдм рд╣рд░ рдЬрдЧрд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
 <link rel="stylesheet" type="text/css" href="<?=$this->assetsBase?>/css/main.css" /> 
рдпрд╛
 <?Yii::app()->clientScript->registerScriptFile($this->assetsBase.'/js/utils.js')?> 

рдФрд░ рд╣рдо рдРрд╕рд╛ рд╣реА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ $ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдХрд┐ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдЬреЗрдЯ рджреГрд╢реНрдп рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд▓рд┐рдЦреЗрдВрдЧреЗ:
 <?Yii::app()->clientScript->registerScriptFile(Yii::app()->controller->assetsBase.'/js/widget.js')?> 


рдЪрд░рдг 4. рд╣рдо рдЙрддреНрдкрд╛рджрди рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрджреНрдпрддрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред


рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИ, рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЕрдирджреЗрдЦреА рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Yii рдкрд░ рдХрдИ рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдХрд░, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдмрд╕ рдЙрдиреНрд╣реЗрдВ / рд╕рдВрд░рдХреНрд╖рд┐рдд / рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рднрд░реЗрдВ рдФрд░ рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ / рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВ (рдЬрдм рддрдХ рдХрд┐ AssetManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рд╡реЙрдЗрд▓рд╛ (рд╕рдм рдХреБрдЫ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд╣реА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ!

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

рдХрдо рд╕реЗ рдХрдо рд╡рд╣ рд╣рд╛рд▓ рддрдХ рдерд╛ред рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдордХрд░реЛрд╡ рдиреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рдФрд░ 8 рдирд╡рдВрдмрд░, 2011 рдХреЛ рдЕрдкрдиреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред
рдЕрдм, CAssetManager рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рдХрд╛рд╢рди () рд╡рд┐рдзрд┐ рдХрд╛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ - $ hashByName рдкреИрд░рд╛рдореАрдЯрд░ рдЭреВрдард╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Yii рд╕реНрдереИрддрд┐рдХ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЬрдбрд╝ рдореЗрдВ / рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ , рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рдВрд╢реЛрдзрди рддрд┐рдерд┐ рднреА ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ feint рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 touch /path/to/your/website/protected/assets 

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

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ


рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. рд╕рднреА рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдХреЛ / рд╕рдВрд░рдХреНрд╖рд┐рдд / рдПрд╕реЗрдЯ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ
  2. рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ
  3. рд╣рд░ рдЬрдЧрд╣ рдПрд╕реЗрдЯрдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЗ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ
  4. рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ
     touch /path/to/your/website/protected/assets 
    рдЬреЛ / рд╕рдВрд░рдХреНрд╖рд┐рдд / рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреА рддрд╛рд░реАрдЦ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ / рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛
  5. рд▓рд╛рдн: рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╢реИрд▓реА рдЖрджрд┐ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред


рдереЛрдбрд╝рд╛ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рд╡реИрд╕реЗ, рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реЗ рд╣реА рд╣рд▓ рд╣реЛ рдЪреБрдХреА рд╣реИред
рд╡рд╛рдИрдЖрдИрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг 2 рдореЗрдВ, рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдЖрдк рдордВрдЪ рдкрд░ Yii 2 рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЪрд░реНрдЪрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХреНрд╕реЗрд╕ рдХреЗрд╡рд▓ рд╕рдХреНрд░рд┐рдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рд╕реНрд╡рдд: рд╕рдВрд╢реЛрдзрди рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдиреНрдп рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ ...

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ


  1. CAssetManager рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди ред
  2. Yii рдордВрдЪ рдкрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛
  3. Yii 2 рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЪрд░реНрдЪрд╛ (рдХреЗрд╡рд▓ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз)
  4. рдЦрдирди рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди:
  5. рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг
  6. CAssetManager рдкрд░ рдПрдХ рдЕрдиреНрдп рд▓реЗрдЦ


PS: рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рди рддреЛ рдЕрдиреБрд╡рд╛рдж рд╣реИ рдФрд░ рди рд╣реА рдХреНрд░реЙрд╕-рдкреЛрд╕реНрдЯ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ Yii рдЬреНрдЮрд╛рди рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рднреА рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд░реВрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рдХрд╛рд░рдг)ред

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


All Articles