рдмреВрдврд╝реЗ рдЖрджрдореА ZF1 рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕рд╣рд╛рдпрдХ

рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рд╕реА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
$this->view->headScript()->appendFile('/static/js/script1.js'); $this->view->headScript()->appendFile('/static/js/script2.js'); $this->view->headScript()->appendFile('/static/js/script3.js'); 

рдмрдЬрд╛рдп:
 <script type="text/javascript" src="/static/js/script1.js"></script> <script type="text/javascript" src="/static/js/script2.js"></script> <script type="text/javascript" src="/static/js/script3.js"></script> 

рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
 <script type="text/javascript" src="/static/cache/bff149a0b87f5b0e00d9dd364e9ddaa0.js"></script> 

рддреЛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред


рд╣реЗрд▓реНрдкрд░ рд╕реНрдерд╛рдкрдирд╛


рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЗрд▓реНрдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 require: { "denis-isaev/zend-view-helper-head-concatenate": "*@dev" }, "repositories":[ { "type":"git", "url":"http://github.com/denis-isaev/ZendHeadConcat" } ] 

рдпрд╛ рд╕рд┐рд░реНрдл github рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб / рдХреНрд▓реЛрди рдХрд░реЗрдВ: github.com/denis-isaev/ZendHeadConcat

рд╣реЗрд▓реНрдкрд░ рд╡рд┐рдиреНрдпрд╛рд╕


Bootsrap.php рдореЗрдВ рдЖрдкрдХреЛ рд╕рд╣рд╛рдпрдХреЛрдВ рдФрд░ рд╡рд░реНрдЧ рдирд╛рдо рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 $view->addHelperPath(APPLICATION_PATH . '/../vendor/denis-isaev/zend-view-helper-head-concatenate/library/Iden/View/Helper/', 'Iden_View_Helper'); 

Apllication.ini рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝реЗрдВ:
 resources.view.concatenateHeadScript.enable = true resources.view.concatenateHeadScript.cacheDir = APPLICATION_PATH "/../static/cache/" resources.view.concatenateHeadScript.cacheUri = /static/cache/ resources.view.concatenateHeadScript.map./static = APPLICATION_PATH "/../static" 

рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг:

рд╕рд╣рд╛рдпрдХ рдЙрдкрдпреЛрдЧ


рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ (рд▓реЗрдЖрдЙрдЯ рдпрд╛ рджреГрд╢реНрдп) рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓рд┐рдЦреЗрдВ:
 <?php echo $this->concatenateHeadScript(); ?> 

рдФрд░ HTML рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
 <script type="text/javascript" src="/static/cache/bff149a0b87f5b0e00d9dd364e9ddaa0.js"></script> 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк bff149a0b87f5b0e00d9dd364e9ddaa0.js рдлрд╝рд╛рдЗрд▓ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдШ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╢реЛрдзрди рд╕рдордп рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо md5 рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреИрд╢рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреАрдврд╝реА рдХреЗ рдмрд╛рдж рдХреЗ рд╣рд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде, рд╕рд╣рд╛рдпрдХ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХреИрд╢рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреА рдПрдХ рдирдИ рдкреАрдврд╝реА рддрднреА рд╣реЛрдЧреА рдЬрдм рд╡рд┐рд▓рдп рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдмрджрд▓ рдЧрдИ рд╣реИ рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рд╕рдВрд╢реЛрдзрди рд╕рдордп рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде, рдПрдХ рдирдИ рдХреИрд╢рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрдмрдХрд┐ рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордп-рд╕рдордп рдкрд░ рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгред

рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рдХрд╛рд░ ( application/javascript ) рдФрд░ рд╕реНрдерд┐рддрд┐ ( lt IE 7 ) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реА рддрд░рд╣ рдХрд┐ рд╡реЗ appendFile рд╕рд╣рд╛рдпрдХ рдХреЗ appendFile рд╡рд┐рдзрд┐ рдореЗрдВ рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
 <?php echo $this->concatenateHeadScript('application/javascript', array('conditional' => 'lt IE 7')); ?> 

рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛:
 <!--[if lt IE 7]><script type="application/javascript" src="/static/cache/bff149a0b87f5b0e00d9dd364e9ddaa0.js"></script><![endif]--> 

рд╣реЗрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рддреЗ рд╕рдордп:
 $this->view->headScript()->appendFile('/static/script_no_concat.js'); 
рдЖрдк noConcat рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ html рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓реА рдЬрд╛рдПред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реА рдЧрдИ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдХреИрд╢ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ script_no_concat.js рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реА рдЧрдИ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рджреВрд╕рд░реА рдХреИрд╢ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдЧреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛:
 $this->view->headScript()->appendFile('/static/js/script1.js'); $this->view->headScript()->appendFile('/static/js/script2.js'); $this->view->headScript()->appendFile('/static/js/script_no_concat.js', null, array('noConcat' => true)); $this->view->headScript()->appendFile('/static/js/script3.js'); $this->view->headScript()->appendFile('/static/js/script4.js'); 

рдЖрдЙрдЯрдкреБрдЯ:
 <script type="text/javascript" src="/static/js/ecb97ffafc1798cd2f67fcbc37226761.js"></script> <script type="text/javascript" src="/static/js/script_no_concat.js"></script> <script type="text/javascript" src="/static/js/41f6175cdfe80c87b5bad623eb90ad33.js"></script> 

рдЬрдм рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕реВрдЪреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╣рд╛рдпрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╡реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ noConcat рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 $this->view->headScript()->appendFile('/static/script1.js', 'application/javascript'); $this->view->headScript()->appendFile('/static/script2.js'); //   text/javascript $this->view->headScript()->appendFile('/static/script3.js', 'application/javascript'); $this->view->headScript()->appendFile('/static/script4.js'); //   text/javascript 

рдЕрдм рдЬрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ application/javascript рд╕рд╛рде рд╕рд╣рд╛рдпрдХ рдХреЛ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реИ:
 <?php echo $this->concatenateHeadScript('application/javascript'); ?> 

рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛:
 <script type="application/javascript" src="/static/js/ecb97ffafc1798cd2f67fcbc37226761.js"></script> <!--     script2.js --> <script type="text/javascript" src="/static/js/script2.js"></script> <script type="application/javascript" src="/static/js/41f6175cdfe80c87b5bad623eb90ad33.js"></script> <!--     script2.js  script4.js --> <script type="text/javascript" src="/static/js/script4.js"></script> 

рдФрд░ рдЬрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
 <?php echo $this->concatenateHeadScript(); ?> 

рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛:
 <script type="application/javascript" src="/static/js/script1.js"></script> <script type="text/javascript" src="/static/js/41f6175cdfe80c87b5bad623eb90ad33.js"></script> <!--     script1.js  script3.js --> <script type="application/javascript" src="/static/js/script3.js"></script> <script type="text/javascript" src="/static/js/ecb97ffafc1798cd2f67fcbc37226761.js"></script> <!--     script3.js --> 


рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?


рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рд╕рд╣рд╛рдпрдХред рддреБрд░рдВрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдЙрджрд╛рд╣рд░рдгред
 resources.view.concatenateHeadLink.enable = true resources.view.concatenateHeadLink.cacheDir = APPLICATION_PATH "/../static/cache/" resources.view.concatenateHeadLink.cacheUri = /static/cache/ resources.view.concatenateHeadLink.map./static = APPLICATION_PATH "/../static" 

рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛:
 $this->view->headLink()->appendStylesheet('/static/css/style1.css'); $this->view->headLink()->appendStylesheet('/static/css/style2.css'); $this->view->headLink()->appendStylesheet('/static/css/style3.css'); 

рд╣реЗрд▓реНрдкрд░ рдХреЙрд▓:
 <?php echo $this->concatenateHeadStylesheet(); ?> 

рдЖрдЙрдЯрдкреБрдЯ:
 <link href="/static/cache/4e0eb351038628091ac42188b1e92977.css" media="screen" rel="stylesheet" type="text/css" > 

рдореАрдбрд┐рдпрд╛ (рдЯреАрд╡реА) рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╣рд╛рдпрдХ рдХреЙрд▓ (lt IE 9):
 <?php echo $this->concatenateHeadStylesheet('tv', 'lt IE 9'); ?> 

рдЖрдЙрдЯрдкреБрдЯ:
 <!--[if lt IE 9]> <link href="/static/cache/4e0eb351038628091ac42188b1e92977.css" media="tv" rel="stylesheet" type="text/css" > <![endif]--> 

$ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╢реИрд▓реА рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рддреЗ рд╕рдордп
 $this->view->headLink()->appendStylesheet('/static/css/style1.css', null, null, $extras); 
рдЗрд╕реЗ рд╕реНрд╡рддрдГ рд╣реА noConcat рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдореАрдбрд┐рдпрд╛ (рдЯреАрд╡реА) рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ
 $this->view->headLink()->appendStylesheet('/static/css/style1.css', 'tv'); 
рдЕрдВрддрд┐рдо рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдореАрдбрд┐рдпрд╛ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рд╕реЗ рдЕрд▓рдЧ
 <?php echo $this->concatenateHeadStylesheet('application/javascript'); ?> 
рддрдм рдРрд╕реА рдлрд╛рдЗрд▓ рдХреЛ noConcat рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
 $this->view->headLink()->appendStylesheet('/static/css/style1.css', null, 'lt IE 9'); 
рдлрд╝рд╛рдЗрд▓ рдХреЛ noConcat рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рдХреЛ NoConcat рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ:
 $this->view->headLink()->appendStylesheet('/static/css/style1.css', null, null, array('noConcat' => true)); 


рдЙрдкрд╕рдВрд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ


рдореИрдВ рдЗрд╕ рдХрд┐рдЯ рдореЗрдВ рдЗрди рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
  1. PhpStorm рдореЗрдВ рд╣рдо рдлрд╛рдЗрд▓ рд╡реЙрдЪрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд minification рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
  2. рд╣реЗрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╣реЗрдбрд▓рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдореВрд▓ рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рд▓реА рдЬрд╛ рд╕рдХреЗрдВ, рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ - phpStorm рджреНрд╡рд╛рд░рд╛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
  3. рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╣рдо рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рднрд╛рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВред

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

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


All Articles