{"id":486297,"date":"2026-07-06T08:28:38","date_gmt":"2026-07-06T08:28:38","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=486297"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=486297","title":{"rendered":"\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Joomla 6. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Joomla"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f\u0434\u0440\u043e Joomla 6 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (Application)? \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0435\u0441\u0442\u044c \u0432 Joomla \u0438 \u0432 \u0447\u0451\u043c \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0430? \u041a\u0430\u043a\u043e\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Joomla, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432? \u041d\u0430 \u044d\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u043e\u043f\u0438\u0440\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 Joomla 6.1.0.<\/p>\n<p>Joomla 6 \u0441\u0442\u0440\u043e\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u0432\u0435\u0442. \u041f\u043b\u0430\u0433\u0438\u043d\u044b \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<p>\u0414\u043b\u044f Joomla 3 \u0445\u043e\u0447\u0443 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c\u00a0<a href=\"https:\/\/jpath.ru\/docs\/basics\/joomla-internals\/obshchaya-informatsiya-o-printsipe-dejstviya-joomla\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u044e \u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0420\u0435\u043a\u0443\u043d\u0430 &#171;\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Joomla&#187;<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a Joomla \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0440\u0430\u043d\u044c\u0448\u0435.<\/p>\n<h2>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 Joomla \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b?<\/h2>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 HTML \u0432 Joomla \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u00a0<code>index.php<\/code>\u00a0\u0432 \u043a\u043e\u0440\u043d\u0435 \u0441\u0430\u0439\u0442\u0430 (\u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438).<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e PHP;<\/p>\n<\/li>\n<li>\n<p>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0<code>_JEXEC<\/code>, \u0447\u0442\u043e\u0431\u044b \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u044b Joomla \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0<code>defines.php<\/code>\u00a0\u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u0441\u0430\u0439\u0442\u0430 (\u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442): \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441 \u043f\u0443\u0442\u044f\u043c\u0438 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 (Joomla \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 web root);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0<code>includes\/defines.php<\/code>, \u0433\u0434\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u00a0<code>JPATH_*<\/code>-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u00a0<code>includes\/app.php<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u00a0<code>includes\/app.php<\/code>\u00a0Joomla \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0438 \u043f\u0430\u043c\u044f\u0442\u044c, \u0435\u0449\u0451 \u0440\u0430\u0437 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0443\u0442\u0435\u0439, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0<code>includes\/framework.php<\/code>. \u0412\u043e\u00a0<code>framework.php<\/code>\u00a0\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f\u00a0<code>libraries\/bootstrap.php<\/code>, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f\u00a0<code>configuration.php<\/code>, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0438,\u00a0<code>JDEBUG<\/code>\u00a0\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Joomla 6:<\/p>\n<ul>\n<li>\n<p>\u0431\u0435\u0440\u0451\u0442\u0441\u044f DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0447\u0435\u0440\u0435\u0437\u00a0<code>Factory::getContainer()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u043b\u0438\u0430\u0441\u044b \u0432\u0435\u0431-\u0441\u0435\u0441\u0441\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f\u00a0<code>SiteApplication<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0<code>Factory::$application<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>$app-&gt;execute()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a\u00a0<code>CMSApplication::execute()<\/code>: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0443\u0440\u043d\u0430\u043b, \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0442\u043e\u043c \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0<strong>autoload_psr4.php<\/strong>), \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u044b\u00a0<code>behaviour<\/code>\u00a0\u0438\u00a0<code>system<\/code>, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onBeforeExecute<\/code>, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b.<\/p>\n<p>\u0414\u043b\u044f HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0430\u0439\u0442\u0430 \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u043a\u0440\u0430\u0442\u043a\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code>index.php  -&gt; includes\/defines.php  -&gt; includes\/app.php  -&gt; includes\/framework.php  -&gt; DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440  -&gt; SiteApplication  -&gt; CMSApplication::execute()  -&gt; onBeforeExecute  -&gt; initialiseApp()  -&gt; onAfterInitialise  -&gt; route()  -&gt; onAfterRoute  -&gt; dispatch()  -&gt; onAfterInitialiseDocument  -&gt; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442  -&gt; onAfterDispatch  -&gt; render()  -&gt; onBeforeRender  -&gt; \u0441\u0431\u043e\u0440\u043a\u0430 HTML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430  -&gt; onAfterRender  -&gt; compress() [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onAfterCompress [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onBeforeRespond  -&gt; respond()  -&gt; onAfterRespond<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Joomla \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430. \u0410 REST API \u0441\u0432\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440 &#8212; JSON, \u0432\u043c\u0435\u0441\u0442\u043e HTML &#8212; \u0438 \u0441\u0432\u043e\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433. \u0423 CLI &#8212; \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u041d\u0438\u0436\u0435 \u044d\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h2>\u0422\u0438\u043f\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/h2>\n<p>\u0412 Joomla 6 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<h3>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441:\u00a0<code>Joomla\\CMS\\Application\\AdministratorApplication<\/code>.<\/p>\n<p>\u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430\u00a0<code>\/administrator<\/code>, \u0432\u0445\u043e\u0434 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u043c\u0435\u043d\u044e \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441:\u00a0<code>Joomla\\CMS\\Application\\SiteApplication<\/code>.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435 \u043d\u0430\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0430\u0439\u0442\u0430: \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u043c\u0435\u043d\u044e, \u043c\u043e\u0434\u0443\u043b\u0438, \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0430\u0439\u0442\u0430, \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c, SEF URL \u0438 \u0442.\u0434.<\/p>\n<h3>API-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441:\u00a0<code>Joomla\\CMS\\Application\\ApiApplication<\/code>.<\/p>\n<p>Joomla REST API \u0441 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430 \u0432\u00a0<code>\/api<\/code>. \u0422\u0443\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u0432\u0435\u0442\u0430, \u0440\u043e\u0443\u0442\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API.<\/p>\n<h3>\u041a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441:\u00a0<code>Joomla\\CMS\\Application\\ConsoleApplication<\/code>.<\/p>\n<p>CLI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Joomla, \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430:\u00a0<code>cli\/joomla.php<\/code>. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0442 HTML, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043b\u044f &#171;\u0442\u044f\u0436\u0451\u043b\u044b\u0445 \u0437\u0430\u0434\u0430\u0447&#187; \u0438 \u0434\u043b\u044f &#171;\u0442\u0440\u0443 \u0430\u0434\u043c\u0438\u043d\u043e\u0432&#187;.<\/p>\n<h3>\u0414\u0435\u043c\u043e\u043d<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441:\u00a0<code>Joomla\\CMS\\Application\\DaemonApplication<\/code>.<\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0435\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0441 php \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0447\u0442\u043e\u0431 \u043e\u043d \u0431\u0430\u0442\u0440\u0430\u0447\u0438\u043b \u0441\u0443\u0442\u043a\u0430\u043c\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0430\u0431\u043e\u0442\u0443. \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e.<\/p>\n<p>Daemon \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Joomla \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u00a0<code>CliApplication<\/code>, \u0430 \u043d\u0435 \u043e\u0442\u00a0<code>CMSApplication<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b. \u0412 \u044f\u0434\u0440\u0435 Joomla \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0441\u0430\u043c\u043e\u0433\u043e\u00a0<code>DaemonApplication<\/code>\u00a0\u043d\u0435\u0442. \u041d\u043e \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432.\u00a0<code>CliApplication<\/code>\u00a0&#8212; \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u043a\u043b\u0430\u0441\u0441, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c Daemon \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u043e\u0432\u043e\u0433\u043e\u00a0<code>ConsoleApplication<\/code>, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 CliApplication:<\/p>\n<blockquote>\n<p>@deprecated\u00a0 4.0 will be removed in 6.0. \u00a0Use the ConsoleApplication instead<\/p>\n<\/blockquote>\n<h2>\u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Application Joomla<\/h2>\n<ul>\n<li>\n<p><code>Joomla\\Application\\AbstractApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\Application\\AbstractWebApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\WebApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\CMSApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\SiteApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\AdministratorApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\ApiApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Installation\\Application\\InstallationApplication<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>Joomla\\Console\\Application<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\ConsoleApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Installation\\Application\\CliInstallationApplication<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\CliApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\DaemonApplication<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Joomla<\/h3>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\CMSApplicationInterface<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\CMSApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\ConsoleApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\CliApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Installation\\Application\\CliInstallationApplication<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\CMSWebApplicationInterface<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\CMSApplication<\/code><\/p>\n<ul>\n<li>\n<p><code>Joomla\\CMS\\Application\\SiteApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\AdministratorApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Application\\ApiApplication<\/code><\/p>\n<\/li>\n<li>\n<p><code>Joomla\\CMS\\Installation\\Application\\InstallationApplication<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442\u044b Joomla, \u0442\u043e \u0435\u0441\u0442\u044c\u00a0<code>site<\/code>,\u00a0<code>administrator<\/code>\u00a0\u0438\u00a0<code>api<\/code>, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0443\u00a0<code>WebApplication \u2192 CMSApplication<\/code>.<\/p>\n<p><code>ConsoleApplication<\/code>\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 CMS-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p><code>DaemonApplication<\/code>\u00a0\u043d\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u00a0<code>CMSApplication<\/code>; \u043e\u043d \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0<code>CliApplication<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b.<\/p>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u0434\u043b\u044f\u00a0<code>SiteApplication<\/code>\u00a0\u0438\u00a0<code>AdministratorApplication<\/code>. \u0414\u043b\u044f API \u043e\u043d \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043d\u043e \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u043e\u043c.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h3>\n<p>\u0422\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 (<code>index.php<\/code>,\u00a0<code>administrator\/index.php<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>api\/index.php<\/code>) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443:<\/p>\n<ul>\n<li>\n<p>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u0443\u0442\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442 DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439);<\/p>\n<\/li>\n<li>\n<p>\u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442 \u0432 \u043d\u0435\u0433\u043e \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043b\u043e\u0433\u0433\u0435\u0440, \u0441\u0435\u0441\u0441\u0438\u044e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>$app-&gt;execute()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<h2>\u041e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b\u00a0CMSApplication::execute()<\/h2>\n<p>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0436\u0438\u0432\u0451\u0442 \u0432\u00a0<code>libraries\/src\/Application\/CMSApplication.php::execute()<\/code>.<\/p>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d (\u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441\u043e\u0432) \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>behaviour<\/code>\u00a0(\u0432 \u044f\u0434\u0440\u0435 Joomla \u044d\u0442\u043e: \u043f\u043b\u0430\u0433\u0438\u043d \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u0433\u043e\u0432\u00a0<code>com_tags<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>system<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u043e\u0432\u00a0<code>onBeforeExecute<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>doExecute()<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0432\u044b\u0437\u043e\u0432\u00a0<code>render()<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c GZIP-\u0441\u0436\u0430\u0442\u0438\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 Joomla &#8212; \u0432\u044b\u0437\u043e\u0432\u00a0<code>compress()<\/code>\u00a0\u0438 \u0437\u0430\u0442\u0435\u043c\u00a0<code>onAfterCompress<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u043e\u0432\u00a0<code>onBeforeRespond<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0<code>respond()<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u043e\u0432\u00a0<code>onAfterRespond<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0442\u043e\u0433\u043e:<\/p>\n<ul>\n<li>\n<p><code>onBeforeExecute<\/code>\u00a0\u2014 \u0441\u0430\u043c\u0430\u044f \u0440\u0430\u043d\u043d\u044f\u044f \u043e\u0431\u0449\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><code>onBeforeRespond<\/code>\u00a0\u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>onAfterRespond<\/code>\u00a0\u2014 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0434\u0430\u0447\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443: \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e: \u0432\u00a0<code>WebApplication<\/code>\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451\u00a0<code>onAfterExecute<\/code>, \u043d\u043e \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 Joomla CMS \u043e\u043d \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0<code>CMSApplication<\/code>\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0<code>execute()<\/code>\u00a0\u0441\u0432\u043e\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c.<\/p>\n<h3>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438\u00a0<code>CMSApplication::initialiseApp()<\/code>, \u0430 \u0443\u00a0<code>SiteApplication<\/code>\u00a0\u0438\u00a0<code>AdministratorApplication<\/code>\u00a0\u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 Joomla:<\/p>\n<ul>\n<li>\n<p>\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0441\u0430\u0439\u0442\u0430 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0442\u043e\u0447\u043d\u044f\u0435\u0442 \u044f\u0437\u044b\u043a \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u044f\u0437\u044b\u043a\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (ini-\u0444\u0430\u0439\u043b\u044b \u044f\u0437\u044b\u043a\u043e\u0432);<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onAfterInitialise<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0430\u0436\u043d\u043e \u043d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0441 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u0435\u0441\u0441\u0438\u0438, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442\u0441\u044f \u0435\u0449\u0451 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u0440\u0432\u0438\u0441-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0435\u00a0<code>libraries\/src\/Service\/Provider\/Application.php<\/code>. \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u0441\u0441\u0438\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>WebApplication::afterSessionStart()<\/code>, \u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438\u00a0<code>initialiseApp()<\/code>.<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u00a0<code>onAfterInitialise<\/code>\u00a0\u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0441\u0435\u0441\u0441\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u044f\u0437\u044b\u043a;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0440\u0435\u0434\u044b: \u044f\u0437\u044b\u043a \u0443\u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u043d, \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u043d\u043e \u043a \u0440\u0435\u043d\u0434\u0435\u0440\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Joomla \u0435\u0449\u0451 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u043a\u0430, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0430\u044f \u043e\u0442 url, \u0437\u0434\u0435\u0441\u044c \u0435\u0449\u0451 \u043f\u0440\u0435\u0436\u0434\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430.<\/p>\n<h3>\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/h3>\n<h4>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<p>\u0412\u00a0<code>SiteApplication::route()<\/code>:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u043b\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u00a0<code>Uri<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0440\u043e\u0443\u0442\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterRoute<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443\u00a0<code>Itemid<\/code>\u00a0(id \u043f\u0443\u043d\u043a\u0442\u0430 \u043c\u0435\u043d\u044e) \u0447\u0435\u0440\u0435\u0437\u00a0<code>authorise()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e Joomla \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0448\u0430\u0431\u043b\u043e\u043d, \u043c\u0430\u043a\u0435\u0442 \u0438 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<h4>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<p>\u0412\u00a0<code>AdministratorApplication::route()<\/code>\u00a0\u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0449\u0435:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0430 HTTPS;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043c\u043d\u043e\u0433\u043e\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterRoute<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u0430 \u043d\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<h4>API<\/h4>\n<p>\u0412\u00a0<code>ApiApplication::route()<\/code>\u00a0\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0440\u0443\u0433\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>webservices<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onBeforeApiRoute<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 API \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442;<\/p>\n<\/li>\n<li>\n<p>Joomla \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443\u00a0<code>Accept<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterApiRoute<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0445\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f API \u0432\u0430\u0436\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e\u00a0<code>onBeforeApiRoute<\/code>: \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u044b REST API Joomla \u0434\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430.<\/p>\n<h3>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00a0DaemonApplication<\/h3>\n<p>\u041d\u0430 \u0434\u0435\u043c\u043e\u043d-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u0435\u0448\u0430\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c \u0434\u043e\u043b\u0433\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0444\u043e\u043d\u0435 \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u0440\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 CLI-\u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438: email, SMS, webhooks, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\/\u0438\u043c\u043f\u043e\u0440\u0442, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0440\u043a\u0435\u0440\u044b \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u043d\u0438\u0439, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 PHP \u0441 \u043d\u0443\u043b\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439: \u0441\u043e\u043a\u0435\u0442\u044b, \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0431\u0440\u043e\u043a\u0435\u0440\u044b, long polling, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u043e\u043d\u043e\u0432\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c: \u043e\u0447\u0438\u0441\u0442\u043a\u0430, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0432, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438: \u043a\u044d\u0448 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u044b PID-\u0444\u0430\u0439\u043b, \u0441\u0438\u0433\u043d\u0430\u043b\u044b SIGTERM\/SIGHUP, \u043c\u044f\u0433\u043a\u0430\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f Joomla-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0431\u044b \u043d\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0432\u0435\u0449\u0438: \u0432\u043e\u0440\u043a\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u0438\u043c\u043f\u043e\u0440\u0442, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 CRM\/\u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u043e\u043c, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432\u0435\u0431\u0445\u0443\u043a\u043e\u0432 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f, \u043c\u0430\u0441\u0441\u043e\u0432\u0430\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 \u043f\u043e cron \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f, \u0434\u0435\u043c\u043e\u043d \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u0414\u0435\u043c\u043e\u043d \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u0431\u044b\u0441\u0442\u0440\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0438 PID.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>DaemonApplication<\/code>\u00a0\u0436\u0438\u0432\u0451\u0442 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e, \u043d\u0435\u0436\u0435\u043b\u0438 \u0441\u0430\u0439\u0442, \u0430\u0434\u043c\u0438\u043d\u043a\u0430 \u0438\u043b\u0438 API. \u042d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441-\u043e\u0442\u0432\u0435\u0442, \u0430 \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439:<\/p>\n<ul>\n<li>\n<p>\u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0438\u0437 CLI;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0444\u043e\u043d;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0438\u0448\u0435\u0442 PID-\u0444\u0430\u0439\u043b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Unix-\u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0433\u043e\u043d\u044f\u0435\u0442\u00a0<code>doExecute()<\/code>\u00a0\u0432 \u0446\u0438\u043a\u043b\u0435.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 Joomla<\/h4>\n<p>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u00a0<code>DaemonApplication<\/code>\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f PCNTL \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 POSIX. \u0415\u0441\u043b\u0438 \u0438\u0445 \u043d\u0435\u0442, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0430\u0434\u0430\u0435\u0442 \u0435\u0449\u0451 \u0432\u00a0<code>__construct()<\/code>.<\/p>\n<h4>\u041a\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u043d \u0433\u043e\u0442\u043e\u0432\u0438\u0442?<\/h4>\n<p>\u041c\u0435\u0442\u043e\u0434\u00a0<code>loadConfiguration()<\/code>\u00a0\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u0435\u043c\u043e\u043d\u0430:<\/p>\n<ul>\n<li>\n<p><code>author_name<\/code><\/p>\n<\/li>\n<li>\n<p><code>author_email<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_name<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_description<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_executable<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_directory<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_pid_file<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_uid<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_gid<\/code><\/p>\n<\/li>\n<li>\n<p><code>application_require_identity<\/code><\/p>\n<\/li>\n<li>\n<p><code>max_execution_time<\/code><\/p>\n<\/li>\n<li>\n<p><code>max_memory_limit<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e DaemonApplication \u0441\u0442\u0440\u043e\u0438\u0442 PID-\u0444\u0430\u0439\u043b \u0432 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c Unix-\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435\u00a0<code>\/tmp<\/code>, \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443\u00a0<code>\/tmp\/&lt;application_name&gt;\/&lt;application_name&gt;.pid<\/code>. \u042d\u0442\u043e \u043d\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 Joomla-\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0443\u0436\u043d\u043e, \u043f\u0443\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<code>application_pid_file<\/code>.<\/p>\n<h4>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0434\u0435\u043c\u043e\u043d\u0430 \u043d\u0430 Joomla?<\/h4>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u00a0<code>DaemonApplication::execute()<\/code>\u00a0\u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><code>onBeforeExecute<\/code><\/p>\n<\/li>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430\u00a0<code>gc_enable()<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c \u0434\u0435\u043c\u043e\u043d\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0<code>daemonize()<\/code><\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0443\u0434\u0430\u043b\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u00a0<code>declare(ticks=1)<\/code>\u00a0\u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b:<\/p>\n<ul>\n<li>\n<p><code>gc()<\/code><\/p>\n<\/li>\n<li>\n<p><code>usleep(1000)<\/code><\/p>\n<\/li>\n<li>\n<p><code>doExecute()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>onAfterExecute<\/code>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435 \u0443\u0434\u0430\u043b\u0441\u044f \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u044b\u0448\u043b\u043e \u0438\u0437 \u0446\u0438\u043a\u043b\u0430<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u041d\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0443: \u0434\u043b\u044f\u00a0<code>DaemonApplication<\/code>\u00a0\u0441\u043e\u0431\u044b\u0442\u0438\u0435\u00a0<code>onAfterExecute<\/code>\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u043f\u0440\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u0435\u043c\u043e\u043d\u0430 \u0434\u043e \u043d\u0435\u0433\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u044f\u0442.  <\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 Joomla Daemon \u043e\u0442 \u0432\u0435\u0431-\u0446\u0438\u043a\u043b\u0430 Joomla:<\/p>\n<ul>\n<li>\n<p>\u0443 \u0434\u0435\u043c\u043e\u043d\u0430 \u043d\u0435\u0442\u00a0<code>onAfterInitialise<\/code>,\u00a0<code>onAfterRoute<\/code>,\u00a0<code>onAfterDispatch<\/code>,\u00a0<code>onBeforeRender<\/code>,\u00a0<code>onAfterRender<\/code>,\u00a0<code>onBeforeRespond<\/code>,\u00a0<code>onAfterRespond<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u043d\u043d\u0438\u0439\u00a0<code>onBeforeExecute<\/code>, \u043f\u043e\u0437\u0434\u043d\u0438\u0439\u00a0<code>onAfterExecute<\/code>\u00a0\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435\u00a0<code>onFork<\/code>\u00a0\u0438\u00a0<code>onReceiveSignal<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u00a0daemonize()<\/h4>\n<p>\u041c\u0435\u0442\u043e\u0434\u00a0<code>daemonize()<\/code>\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0<code>isActive()<\/code>, \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043b\u0438 \u0443\u0436\u0435 \u0442\u0430\u043a\u043e\u0439 \u0434\u0435\u043c\u043e\u043d;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0444\u043b\u0430\u0433\u00a0<code>-f<\/code>, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>detach()<\/code>\u00a0\u0438 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0444\u043e\u043d;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438\u00a0<code>-f<\/code>\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u043d, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u043d\u0435\u043c \u043f\u043b\u0430\u043d\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0438\u0448\u0435\u0442 PID-\u0444\u0430\u0439\u043b \u0447\u0435\u0440\u0435\u0437\u00a0<code>writeProcessIdFile()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u0443 \u0447\u0435\u0440\u0435\u0437\u00a0<code>changeIdentity()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437\u00a0<code>setupSignalHandlers()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043d\u0430\u00a0<code>application_directory<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0444\u043b\u0430\u0433\u00a0-f<\/h4>\n<p>\u042d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0439\u0442\u0438 \u0434\u0435\u043c\u043e\u043d\u0443 \u0432 \u0444\u043e\u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0415\u0441\u043b\u0438 \u0443 CLI-\u0432\u0432\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u0444\u043b\u0430\u0433\u00a0<code>-f<\/code>, \u0434\u0435\u043c\u043e\u043d \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e (\u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f) \u0432 \u043d\u0435\u0451. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0434 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00a0fork<\/h4>\n<p>\u0423\u0445\u043e\u0434 \u0432 \u0444\u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u00a0<code>detach()<\/code>, \u0430 \u0441\u0430\u043c\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u2014 \u0432\u00a0<code>fork()<\/code>.<\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c \u044f\u0434\u0440\u0430:<\/p>\n<ul>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>pcntl_fork()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0438 \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c, \u0438 \u0432 \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>postFork()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>postFork()<\/code>\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u00a0<code>onFork<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c:<\/p>\n<blockquote>\n<p><code>onFork<\/code>\u00a0\u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u043c.  <\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f post-fork \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u043e\u043a\u0435\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043d\u043e\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u00a0<code>fork<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00a0onReceiveSignal<\/h4>\n<p>\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u00a0<code>DaemonApplication::signal($signal)<\/code>:<\/p>\n<ul>\n<li>\n<p>\u043f\u0438\u0448\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u0436\u0443\u0440\u043d\u0430\u043b;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0440\u0451\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0437\u00a0<code>static::$instance<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u00a0<code>onReceiveSignal<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u044f\u0434\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u00a0<strong>\u0434\u043e<\/strong>\u00a0\u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<h4>\u041a\u0430\u043a\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e<\/h4>\n<p>\u042f\u0434\u0440\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0435\u0448\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a POSIX-\u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438\u0437\u00a0<code>static::$signals<\/code>.<\/p>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0442\u0430\u043a\u0438\u0435:<\/p>\n<ul>\n<li>\n<p><code>SIGINT<\/code>,\u00a0<code>SIGTERM<\/code>\u00a0\u2014 \u043c\u044f\u0433\u043a\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437\u00a0<code>shutdown()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>SIGHUP<\/code>\u00a0\u2014 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0447\u0435\u0440\u0435\u0437\u00a0<code>shutdown(true)<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>SIGCHLD<\/code>,\u00a0<code>SIGCLD<\/code>\u00a0\u2014 \u0443\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437\u00a0<code>pcntlWait()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u044f\u0434\u0440\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u00a0<code>onReceiveSignal<\/code>, \u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442.<\/p>\n<h4>\u041a\u0430\u043a \u043e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0434\u0435\u043c\u043e\u043d \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/h4>\n<p>\u041c\u0435\u0442\u043e\u0434\u00a0<code>isActive()<\/code>:<\/p>\n<ul>\n<li>\n<p>\u0447\u0438\u0442\u0430\u0435\u0442 PID-\u0444\u0430\u0439\u043b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e PID \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u043b\u0430\u0435\u0442\u00a0<code>posix_kill($pid, 0)<\/code>\u00a0\u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0436\u0438\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442, \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 PID-\u0444\u0430\u0439\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<h4>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u00a0shutdown()<\/h4>\n<p><code>shutdown()<\/code>:<\/p>\n<ul>\n<li>\n<p>\u0441\u0442\u0430\u0432\u0438\u0442 \u0444\u043b\u0430\u0433 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0434\u0435\u043c\u043e\u043d \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u043d\u044f\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0447\u0438\u0442\u0430\u0435\u0442 PID \u0438\u0437 \u0444\u0430\u0439\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u044f\u0435\u0442 PID-\u0444\u0430\u0439\u043b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438\u00a0<code>restart=true<\/code>\u00a0\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0442\u0443 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0430\u0447\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0434\u043b\u044f\u00a0DaemonApplication<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0451 \u0432\u043c\u0435\u0441\u0442\u0435, \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>\u0417\u0430\u043f\u0443\u0441\u043a CLI  -&gt; new DaemonApplication(...)  -&gt; \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 PCNTL \u0438 POSIX  -&gt; loadConfiguration()  -&gt; execute()  -&gt; onBeforeExecute  -&gt; daemonize()  -&gt; isActive()  -&gt; detach() \/ foreground mode  -&gt; fork()  -&gt; onFork  -&gt; writeProcessIdFile()  -&gt; changeIdentity()  -&gt; setupSignalHandlers()  -&gt; declare(ticks=1)  -&gt; while (true)       -&gt; gc()       -&gt; usleep(1000)       -&gt; doExecute()  -&gt; \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430       -&gt; onReceiveSignal       -&gt; shutdown()\/restart()\/reap children  -&gt; onAfterExecute<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0412\u0430\u0436\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438<\/h4>\n<p>\u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0430 Joomla \u044f\u0434\u0440\u043e \u0434\u0430\u0451\u0442 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><code>onBeforeExecute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterExecute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onFork<\/code><\/p>\n<\/li>\n<li>\n<p><code>onReceiveSignal<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.<\/p>\n<blockquote>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c Daemon \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Joomla \u0441\u0430\u043c\u043e \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 &#8212; Joomla 6.1). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 &#8212; \u0432\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043b\u0430\u0441\u0441\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Joomla \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Joomla.  <\/p>\n<\/blockquote>\n<h3>\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443.<\/p>\n<h4>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<p>\u0412\u00a0<code>SiteApplication::dispatch()<\/code>\u00a0\u0438\u00a0<code>AdministratorApplication::dispatch()<\/code>\u00a0\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0448\u0430\u0431\u043b\u043e\u043d \u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterInitialiseDocument<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<code>ComponentHelper::renderComponent()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterDispatch<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><code>onAfterInitialiseDocument<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430\u00a0<strong>\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/strong>: \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0435\u0449\u0451 \u043d\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u0417\u0434\u0435\u0441\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0438\u043f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0435\u0435\u0441\u0442\u0440\u044b \u0441\u0442\u0438\u043b\u0435\u0439 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Joomla 5.0.0.<\/p>\n<p><code>onAfterDispatch<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430\u00a0<strong>\u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/strong>. \u0417\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0438\u0442\u043e\u0433\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.<\/p>\n<h4>API<\/h4>\n<p>\u0412\u00a0<code>ApiApplication::dispatch()<\/code>\u00a0\u0441\u043c\u044b\u0441\u043b \u0442\u043e\u0442 \u0436\u0435:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterInitialiseDocument<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u0435\u0431-\u0441\u043b\u0443\u0436\u0431.<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterDispatch<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/h3>\n<p>\u0414\u043b\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (SiteApplication) \u0438 \u0430\u0434\u043c\u0438\u043d\u043a\u0438 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e HTML. \u0425\u043e\u0442\u044f \u043d\u0443\u0436\u043d\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u0442 \u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 View \u0438 View \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0438 txt, \u0438 json, \u0438 XML &#8212; \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e HTML. \u041d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0432 HTML \u0434\u0435\u043b\u0430\u0435\u0442\u00a0<code>CMSApplication::render()<\/code>.<\/p>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f\u00a0<code>$this-&gt;document-&gt;parse(...)<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onBeforeRender<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0442\u0432\u0435\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0<code>setBody()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onAfterRender<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c: \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 HTML-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u00a0<code>libraries\/src\/Document\/Renderer\/Html\/MetasRenderer.php<\/code>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onBeforeCompileHead<\/code>.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><code>onBeforeRender<\/code>\u00a0\u2014 \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u0437\u0434\u043d\u0438\u0439 \u044d\u0442\u0430\u043f \u043f\u0435\u0440\u0435\u0434 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b;<\/p>\n<\/li>\n<li>\n<p><code>onBeforeCompileHead<\/code>\u00a0\u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f\u00a0<code>&lt;head&gt;<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>onAfterRender<\/code>\u00a0\u2014 \u044d\u0442\u0430\u043f, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u044f HTML-\u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0438 \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u00a0<code>CMSApplication::execute()<\/code>\u00a0\u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c \u0441\u0436\u0430\u0442\u0438\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onAfterCompress<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onBeforeRespond<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438 \u0442\u0435\u043b\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onAfterRespond<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><code>onAfterCompress<\/code>\u00a0\u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e. \u0412\u00a0<code>CMSApplication::execute()<\/code>\u00a0\u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u00a0<code>$this-&gt;compress()<\/code>\u00a0\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<code>gzip<\/code>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c PHP \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u00a0<code>zlib.output_compression<\/code>\u00a0\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u00a0<code>output_handler<\/code>\u00a0\u043d\u0435 \u0440\u0430\u0432\u0435\u043d\u00a0<code>ob_gzhandler<\/code>. \u042d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a CMS-\u0446\u0438\u043a\u043b\u0443\u00a0<code>SiteApplication<\/code>,\u00a0<code>AdministratorApplication<\/code>\u00a0\u0438\u00a0<code>ApiApplication<\/code>; \u0443 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e\u00a0<code>WebApplication::execute()<\/code>\u00a0\u0441\u0436\u0430\u0442\u0438\u0435 \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c, \u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<code>onAfterCompress<\/code>\u00a0\u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043d\u0435\u0442.<\/p>\n<p>\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:<\/p>\n<ul>\n<li>\n<p><code>onBeforeRespond<\/code>\u00a0\u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p><code>onAfterRespond<\/code>\u00a0\u2014 \u043d\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u0430, \u0430 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a HTML \u043e\u0442\u0434\u0430\u043d \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u0445\u0435\u043c\u0430 \u0446\u0438\u043a\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h3>\n<h4>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h4>\n<pre><code>index.php  -&gt; SiteApplication::execute()  -&gt; onBeforeExecute  -&gt; initialiseApp()  -&gt; onAfterInitialise  -&gt; route()  -&gt; onAfterRoute  -&gt; dispatch()  -&gt; onAfterInitialiseDocument  -&gt; renderComponent()  -&gt; onAfterDispatch  -&gt; render()  -&gt; onBeforeRender  -&gt; onBeforeCompileHead  -&gt; onAfterRender  -&gt; compress() [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onAfterCompress [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onBeforeRespond  -&gt; respond()  -&gt; onAfterRespond<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0410\u0434\u043c\u0438\u043d\u043a\u0430 Joomla<\/h4>\n<pre><code>administrator\/index.php  -&gt; AdministratorApplication::execute()  -&gt; onBeforeExecute  -&gt; initialiseApp()  -&gt; onAfterInitialise  -&gt; route()  -&gt; onAfterRoute  -&gt; dispatch()  -&gt; onAfterInitialiseDocument  -&gt; renderComponent()  -&gt; onAfterDispatch  -&gt; render()  -&gt; onBeforeRender  -&gt; onBeforeCompileHead  -&gt; onAfterRender  -&gt; compress() [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onAfterCompress [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onBeforeRespond  -&gt; respond()  -&gt; onAfterRespond<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>REST API Joomla<\/h4>\n<pre><code>api\/index.php  -&gt; ApiApplication::execute()  -&gt; onBeforeExecute  -&gt; initialiseApp()  -&gt; onAfterInitialise  -&gt; route()  -&gt; onBeforeApiRoute  -&gt; parseApiRoute()  -&gt; onAfterApiRoute  -&gt; dispatch()  -&gt; onAfterInitialiseDocument  -&gt; component dispatcher  -&gt; onAfterDispatch  -&gt; render()  -&gt; compress() [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onAfterCompress [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onBeforeRespond  -&gt; respond()  -&gt; onAfterRespond<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041f\u043e\u043b\u043d\u0430\u044f \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 Joomla \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h3>\n<p>\u041d\u0438\u0436\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0443\u043a\u0440\u0443\u043f\u043d\u0451\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f. \u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435 \u0432\u0441\u0435 \u0432\u0435\u0442\u0432\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0430\u0441\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTML \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0432 \u043a\u0430\u043a\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>jdoc:include<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0421\u0430\u043c\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 Joomla<\/h4>\n<p>\u0415\u0449\u0451 \u0434\u043e\u00a0<code>onBeforeExecute<\/code>\u00a0\u044f\u0434\u0440\u043e \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>behaviour<\/code>\u00a0\u0438\u00a0<code>system<\/code>.<\/p>\n<p>\u0414\u043b\u044f\u00a0<strong>\u043a\u0430\u0436\u0434\u043e\u0433\u043e<\/strong>\u00a0\u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<code>PluginHelper::importPlugin()<\/code>, \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442:<\/p>\n<ul>\n<li>\n<p><code>onBeforeExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>behaviour<\/code>\u00a0\u0438\u00a0<code>system<\/code>\u00a0\u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>webservices<\/code>\u00a0\u0432 API;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>content<\/code>,\u00a0<code>user<\/code>,\u00a0<code>installer<\/code>,\u00a0<code>extension<\/code>,\u00a0<code>finder<\/code>,\u00a0<code>privacy<\/code>,\u00a0<code>quickicon<\/code>,\u00a0<code>sampledata<\/code>\u00a0\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u0432\u0435\u0442\u043a\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<code>bootComponent()<\/code>\u00a0\u0438\u00a0<code>bootModule()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0\u0438\u00a0<code>onAfterExtensionBoot<\/code>\u00a0\u2014 \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u043d\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.<\/p>\n<h4>\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0430\u0439\u0442\u0430<\/h4>\n<p>\u041d\u0438\u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0441 HTML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c.<\/p>\n<h4>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h4>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>behaviour<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>system<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeExecute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialise<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterRoute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialiseDocument<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>onAfterDispatch<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeRender<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>onAfterRender<\/code><\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c gzip \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 PHP:\u00a0<code>compress()<\/code>\u00a0-&gt;\u00a0<code>onAfterCompress<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeRespond<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterRespond<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043d\u043a\u0442\u0430 \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u00bb<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 HTML-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435\u00a0<code>Joomla\\CMS\\MVC\\View\\HtmlView<\/code>, \u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0435\u0433\u043e\u00a0<code>display()<\/code>\u00a0\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0434\u0443\u0442:<\/p>\n<ul>\n<li>\n<p><code>onBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>onAfterDisplay<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u0438 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451. \u041c\u043d\u043e\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<strong>\u0434\u043e<\/strong>\u00a0<code>parent::display()<\/code>.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u00a0<code>com_content<\/code>\u00a0\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>content<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentPrepare<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterTitle<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterDisplay<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u0438 \u0442\u0435\u0433\u043e\u0432 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e\u0445\u043e\u0436\u0430\u044f, \u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<code>onContentPrepare<\/code>,\u00a0<code>onContentAfterTitle<\/code>,\u00a0<code>onContentBeforeDisplay<\/code>,\u00a0<code>onContentAfterDisplay<\/code>\u00a0\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f\u00a0<strong>\u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong>, \u0430 \u043d\u0435 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443.<\/p>\n<h4>\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0443\u043d\u043a\u0442\u0430 \u00ab\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u00bb<\/h4>\n<p>\u0412\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0443\u0436\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u00a0<code>&lt;head&gt;<\/code>, \u0442\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00a0<code>onBeforeCompileHead<\/code>. \u0415\u0441\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0442\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 Joomla \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u0442\u0430\u043a\u0443\u044e \u0432\u0435\u0442\u043a\u0443:<\/p>\n<ul>\n<li>\n<p><code>onPrepareModuleList<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterModuleList<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterCleanModuleList<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:\u00a0<code>onRenderModule<\/code><\/p>\n<\/li>\n<li>\n<p>\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:\u00a0<code>onAfterRenderModule<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438:\u00a0<code>onAfterRenderModules<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u044f\u0434\u0440\u0430:\u00a0<code>mod_articles_news<\/code>\u00a0\u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p><code>onContentPrepare<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterTitle<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterDisplay<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<code>content<\/code>\u00a0\u043c\u043e\u0433\u0443\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u044f\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0434\u043b\u044f HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 Joomla<\/h3>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u0447\u0442\u0438 \u0442\u043e\u0442 \u0436\u0435:<\/p>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>behaviour<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>system<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeExecute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialise<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterRoute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialiseDocument<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>onAfterDispatch<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeRender<\/code><\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0433\u043e\u043b\u043e\u0432\u044b \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0438 \u043c\u0435\u043d\u044e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/p>\n<\/li>\n<li>\n<p><code>onAfterRender<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c gzip \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 PHP:\u00a0<code>compress()<\/code>\u00a0-&gt;\u00a0<code>onAfterCompress<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeRespond<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterRespond<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043c\u0435\u043d\u044e \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u043d\u044e \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 Joomla, \u0442\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0443\u0437\u043b\u043e\u0432 \u043c\u0435\u043d\u044e \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f\u00a0<code>onPreprocessMenuItems<\/code>. \u041f\u0440\u0438\u0447\u0451\u043c \u044d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u0434\u0435\u0440\u0435\u0432\u0430. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u044b \u0432 \u044f\u0434\u0440\u0435\u00a0<code>com_menus.administrator.module<\/code>\u00a0\u0438\u00a0<code>administrator.module.mod_submenu<\/code>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e \u0432\u00a0<code>com_menus<\/code>, \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0<code>Items<\/code>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onBeforeRenderMenuItems<\/code>. \u0415\u0441\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0438\u043f\u044b \u043c\u0435\u043d\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0441\u044f\u00a0<code>onAfterGetMenuTypeOptions<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u043b\u043d\u0430\u044f \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043d\u043e \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u043d\u044e-\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u043e\u0432.<\/p>\n<h3>\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u043b\u044f API-\u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h3>\n<p>\u0423 API \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0434\u0440\u0443\u0433\u043e\u0439, \u0438 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.<\/p>\n<h4>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h4>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>behaviour<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>system<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeExecute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialise<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>webservices<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeApiRoute<\/code><\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u0431\u043e\u0440 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 API<\/p>\n<\/li>\n<li>\n<p><code>onAfterApiRoute<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterInitialiseDocument<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 API:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f API<\/p>\n<\/li>\n<li>\n<p><code>onAfterDispatch<\/code><\/p>\n<\/li>\n<li>\n<p><code>render()<\/code>\u00a0\u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439\u00a0<code>ApiApplication::render()<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c gzip \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 PHP:\u00a0<code>compress()<\/code>\u00a0-&gt;\u00a0<code>onAfterCompress<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeRespond<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterRespond<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u0442<\/h4>\n<p>\u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u043c API-\u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0447\u0435\u0440\u0435\u0437\u00a0<code>ApiApplication<\/code>\u00a0\u043d\u0435\u0442 \u043e\u0431\u0449\u0435\u0433\u043e HTML-\u0446\u0438\u043a\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435\u0442\u00a0<code>onBeforeRender<\/code>\u00a0\u0438\u0437\u00a0<code>CMSApplication::render()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0442\u00a0<code>onAfterRender<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0442\u00a0<code>onBeforeCompileHead<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f:\u00a0<code>ApiApplication<\/code>\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0<code>render()<\/code>\u00a0\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 HTML-\u0441\u0431\u043e\u0440\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<h4>\u041a\u0430\u043a\u0438\u0435 API-\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0442\u0432\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<code>JsonApiView<\/code>\u00a0\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 Joomla, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0438\u0434\u0442\u0438:<\/p>\n<ul>\n<li>\n<p><code>onApiGetFields<\/code><\/p>\n<\/li>\n<li>\n<p><code>onGetApiAttributes<\/code><\/p>\n<\/li>\n<li>\n<p><code>onGetApiRelation<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u043b\u043e\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 API.<\/p>\n<h3>\u0425\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u043e\u0440\u043c\u044b Joomla<\/h3>\n<h4>\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>\u0422\u0438\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u00a0<code>onAfterRoute<\/code><\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p><code>onContentPrepareData<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentPrepareForm<\/code><\/p>\n<\/li>\n<li>\n<p><code>onBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterDisplay<\/code><\/p>\n<\/li>\n<li>\n<p><code>onAfterDispatch<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u0449\u0430\u044f HTML-\u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0444\u043e\u0440\u043c\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<p>\u0422\u0438\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>onContentNormaliseRequestData<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeValidateData<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeLoad<\/code>\u00a0\u0438\u00a0<code>onTableAfterLoad<\/code>, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0435 \u043d\u043e\u0432\u0430\u044f<\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeBind<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterBind<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableCheck<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeSave<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeStore<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterStore<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterSave<\/code><\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0<code>onBeforeRespond<\/code>\u00a0\u0438\u00a0<code>onAfterRespond<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p><code>onTableBeforeLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u043c\u0435\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f (\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e, \u043d\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e, \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0432 \u043a\u043e\u0440\u0437\u0438\u043d\u0435):<\/p>\n<ul>\n<li>\n<p><code>onContentBeforeChangeState<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforePublish<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterPublish<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentChangeState<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<\/ul>\n<h3>\u0425\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 Joomla \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430, \u0432\u044b\u0445\u043e\u0434\u0430 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h3>\n<p>\u042d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043d\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c.<\/p>\n<h4>\u0412\u0445\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>user<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onUserAuthenticate<\/code><\/p>\n<\/li>\n<li>\n<p><code>onUserAuthorisation<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435:\u00a0<code>onUserAuthorisationFailure<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0438 \u0432\u0445\u043e\u0434\u0430:\u00a0<code>onUserLogin<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435:\u00a0<code>onUserAfterLogin<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u0435:\u00a0<code>onUserLoginFailure<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u0412\u044b\u0445\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>user<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onUserLogout<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435:\u00a0<code>onUserAfterLogout<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u0435:\u00a0<code>onUserLogoutFailure<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p><code>onUserAfterRemind<\/code>\u00a0&#8212; \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u043e\u0440\u043c\u044b &#171;\u0437\u0430\u0431\u044b\u043b\u0438 \u043b\u043e\u0433\u0438\u043d&#187; \u0432\u00a0<code>com_users<\/code>\u00a0Joomla.<\/p>\n<h4>\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f<\/h4>\n<p>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u043e\u0440\u043c\u044b &#171;\u0437\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c&#187; \u0432\u00a0<code>com_users<\/code>\u00a0Joomla:<\/p>\n<ul>\n<li>\n<p><code>onUserBeforeResetRequest<\/code><\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0442\u0430\u043c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<code>onUserAfterSave<\/code>\u00a0\u0438 \u0442.\u0434.)<\/p>\n<\/li>\n<li>\n<p><code>onUserAfterResetRequest<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f<\/h4>\n<ul>\n<li>\n<p><code>onUserBeforeResetComplete<\/code><\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/li>\n<li>\n<p><code>onUserAfterResetComplete<\/code><\/p>\n<\/li>\n<\/ul>\n<h3>\u0425\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f Joomla \u0447\u0435\u0440\u0435\u0437 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a Joomla, \u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0<code>installer<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onInstallerBeforeInstallation<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u043e url \u0430\u0434\u0440\u0435\u0441\u0443 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430:\u00a0<code>onInstallerBeforePackageDownload<\/code><\/p>\n<\/li>\n<li>\n<p><code>onInstallerBeforeInstaller<\/code><\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\u00a0<code>extension<\/code>:\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0-&gt;\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/li>\n<li>\n<p><code>onExtensionBeforeInstall<\/code><\/p>\n<\/li>\n<li>\n<p>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><code>onExtensionAfterInstall<\/code><\/p>\n<\/li>\n<li>\n<p><code>onInstallerAfterInstaller<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><code>onInstallerBeforePackageDownload<\/code>, \u0435\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><code>onExtensionBeforeUpdate<\/code><\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p><code>onExtensionAfterUpdate<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><code>onExtensionBeforeUninstall<\/code><\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p><code>onExtensionAfterUninstall<\/code><\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u0430\u0440\u0442\u0430 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 Joomla<\/h3>\n<p>\u041d\u0435 \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f Joomla \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0446\u0438\u043a\u043b\u0435\u00a0<code>Application<\/code>. \u0427\u0430\u0441\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u0447\u0430\u0441\u0442\u044c \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0444\u043e\u0440\u043c\u044b, \u043c\u043e\u0434\u0435\u043b\u0438, \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u043e\u0447\u043a\u0443 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0432 \u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b Joomla \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0435 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0430 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0440\u043e\u0432\u0435\u043d\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0442\u0443\u0434\u0430 \u0438\u0434\u0442\u0438<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b\u00a0<code>CMSApplication<\/code>,\u00a0<code>SiteApplication<\/code>,\u00a0<code>AdministratorApplication<\/code>,\u00a0<code>ApiApplication<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onBeforeExecute<\/code>,\u00a0<code>onAfterInitialise<\/code>,\u00a0<code>onAfterRoute<\/code>,\u00a0<code>onAfterDispatch<\/code>,\u00a0<code>onBeforeRender<\/code>,\u00a0<code>onAfterRender<\/code>,\u00a0<code>onBeforeRespond<\/code>,\u00a0<code>onAfterRespond<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443: \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 Joomla \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onBeforeExtensionBoot<\/code>,\u00a0<code>onAfterExtensionBoot<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043d\u0430 \u0435\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043d\u0443\u0442\u0440\u0438 MVC-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 HTML-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onBeforeDisplay<\/code>,\u00a0<code>onAfterDisplay<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c, \u043d\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0442\u0435\u043d\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u00a0<code>com_content<\/code>, \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0442\u0435\u043a\u0441\u0442\u0430. \u042d\u0442\u0438 \u0436\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 &#171;Joomla way&#187; \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435.<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentPrepare<\/code>,\u00a0<code>onContentAfterTitle<\/code>,\u00a0<code>onContentBeforeDisplay<\/code>,\u00a0<code>onContentAfterDisplay<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u043e\u043a\u0440\u0443\u0433 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u0442\u0430\u0442\u044c\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0424\u043e\u0440\u043c\u044b \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0444\u043e\u0440\u043c\u044b \u0438 \u043f\u0435\u0440\u0435\u0434 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentPrepareData<\/code>,\u00a0<code>onContentPrepareForm<\/code>,\u00a0<code>onContentNormaliseRequestData<\/code>,\u00a0<code>onContentBeforeValidateData<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044f, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c XML-\u0444\u043e\u0440\u043c\u0443 \u0438\u043b\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0441\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0435\u043b\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u00a0<code>AdminModel<\/code>\u00a0\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0430\u0445 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0438\u0441\u044c\u044e, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0438 \u0441\u043c\u0435\u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentBeforeSave<\/code>,\u00a0<code>onContentAfterSave<\/code>,\u00a0<code>onContentBeforeDelete<\/code>,\u00a0<code>onContentAfterDelete<\/code>,\u00a0<code>onContentBeforeChangeState<\/code>,\u00a0<code>onContentChangeState<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u00a0<code>Table<\/code>\u00a0\u0438\u00a0<code>Nested<\/code>\u00a0\u043f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onTableBeforeBind<\/code>,\u00a0<code>onTableAfterBind<\/code>,\u00a0<code>onTableCheck<\/code>,\u00a0<code>onTableBeforeStore<\/code>,\u00a0<code>onTableAfterStore<\/code>,\u00a0<code>onTableBeforeDelete<\/code>,\u00a0<code>onTableAfterDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u0430 \u0441\u0430\u043c\u0430\u044f \u0431\u043b\u0438\u0437\u043a\u0430\u044f \u043a \u0431\u0430\u0437\u0435 \u0442\u043e\u0447\u043a\u0430 \u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0432\u044b\u0432\u043e\u0434\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onPrepareModuleList<\/code>,\u00a0<code>onAfterModuleList<\/code>,\u00a0<code>onAfterCleanModuleList<\/code>,\u00a0<code>onRenderModule<\/code>,\u00a0<code>onAfterRenderModule<\/code>,\u00a0<code>onAfterRenderModules<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u044f \u0438\u043b\u0438 HTML \u0432\u0441\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u0432\u0445\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0445\u043e\u0434\u0430, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onUserAuthenticate<\/code>,\u00a0<code>onUserAuthorisation<\/code>,\u00a0<code>onUserLogin<\/code>,\u00a0<code>onUserAfterLogin<\/code>,\u00a0<code>onUserBeforeSave<\/code>,\u00a0<code>onUserAfterSave<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e \u0432\u0445\u043e\u0434\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u00a0<code>com_installer<\/code>,\u00a0<code>InstallerHelper<\/code>\u00a0\u0438\u00a0<code>Installer<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onInstallerBeforePackageDownload<\/code>,\u00a0<code>onInstallerBeforeInstallation<\/code>,\u00a0<code>onExtensionBeforeInstall<\/code>,\u00a0<code>onExtensionAfterInstall<\/code>,\u00a0<code>onExtensionBeforeUpdate<\/code>,\u00a0<code>onExtensionAfterUpdate<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onPreprocessMenuItems<\/code>,\u00a0<code>onBeforeRenderMenuItems<\/code>,\u00a0<code>onAfterGetMenuTypeOptions<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u0435\u043d\u044e, \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e \u0438\u043b\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u0438\u043f\u0430 \u043f\u0443\u043d\u043a\u0442\u0430 \u043c\u0435\u043d\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">API-\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043d\u0443\u0442\u0440\u0438 API-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onApiGetFields<\/code>,\u00a0<code>onGetApiAttributes<\/code>,\u00a0<code>onGetApiRelation<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u0440\u043e\u0443\u0442 API \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0438 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u044f, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438\u043b\u0438 \u0441\u0432\u044f\u0437\u0438 JSON:API-\u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0410\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 &#8212; \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438\u00a0<code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onError<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0440\u0435\u0439\u0442\u043e\u0432 \u0438\u043b\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u043e\u0447\u043a\u0438 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0435 \u043c\u044b\u0441\u043b\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>onBeforeExtensionBoot<\/code>\u00a0\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f,\u00a0<code>onTableBeforeStore<\/code>\u00a0\u2014 \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0430\u00a0<code>onContentBeforeSave<\/code>\u00a0\u2014 \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.<\/p>\n<h3>\u0410\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u0432\u044b\u043b\u0435\u0442\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435,\u00a0<code>CMSApplication::execute()<\/code>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onError<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u043d\u0435 \u0448\u0442\u0430\u0442\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430, \u043d\u043e \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0447\u0430\u0441\u0442\u044c \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430.<\/p>\n<h3>\u041a\u0430\u043a \u0432 Joomla 6 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432<\/h3>\n<h3>\u041a\u0430\u043a \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f<\/h3>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u00a0<code>libraries\/src\/Plugin\/PluginHelper.php<\/code>.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f\u0434\u0440\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>PluginHelper::importPlugin('system')<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>PluginHelper::importPlugin('content')<\/code>, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>#__extensions<\/code>\u00a0\u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u043b\u044e\u00a0<code>ordering<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043b\u0430\u0433\u0438\u043d \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0442\u0441\u044e\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430:<\/p>\n<blockquote>\n<p>\u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d \u044f\u0432\u043d\u043e, \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d \u0442\u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u044c\u0448\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d, \u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043e\u043d \u043f\u043e\u00a0<code>ordering<\/code><\/p>\n<\/blockquote>\n<h3>\u041a\u0430\u043a \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0437\u043e\u0432\u0430<\/h3>\n<p>\u0412 Joomla 6 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430.<\/p>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b<\/h4>\n<p>\u041e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f\u00a0<code>ordering<\/code>\u00a0\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.<\/p>\n<h4>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u00a0<code>SubscriberInterface<\/code>, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438\u0437\u00a0<code>getSubscribedEvents()<\/code>\u00a0\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442:<\/p>\n<pre><code class=\"php\">&lt;?phpnamespace Acme\\Plugin\\System\\Example\\Extension;use Joomla\\Event\\Priority;use Joomla\\Event\\SubscriberInterface;final class Example implements SubscriberInterface{    public static function getSubscribedEvents(): array    {        return [            'onAfterRoute'  =&gt; ['onAfterRoute', Priority::HIGH],            'onAfterRender' =&gt; ['onAfterRender', Priority::LOW],        ];    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><code>Priority::HIGH<\/code>\u00a0\u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430;<\/p>\n<\/li>\n<li>\n<p><code>Priority::NORMAL<\/code>\u00a0\u2014 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p><code>Priority::LOW<\/code>\u00a0\u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0431\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043d\u043e\u0432\u0430\u00a0<code>ordering<\/code>.<\/p>\n<h3>\u041a\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/h3>\n<p>\u0412 Joomla 6 \u044f\u0434\u0440\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0437\u0434\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043d\u0435 \u0440\u043e\u0441\u0441\u044b\u043f\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u00a0<code>$event<\/code>.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"php\">&lt;?phpnamespace Acme\\Plugin\\System\\Example\\Extension;use Joomla\\CMS\\Event\\Application\\AfterRouteEvent;final class Example{    public function onAfterRoute(AfterRouteEvent $event): void    {        $app = $event-&gt;getApplication();    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435\u00a0<code>onContentPrepare($context, &amp;$item, &amp;$params, $page = 0)<\/code>\u00a0\u0435\u0449\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0443 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0443\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0432\u043e\u0438\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u043c \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0427\u0442\u043e \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/h3>\n<p>\u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.<\/p>\n<h4>1. \u041c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435\u0441\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, Joomla \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435.<\/p>\n<p>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0444\u043e\u0440\u043c\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0430\u0431\u043b\u0438\u0446\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0440\u043e\u0443\u0442\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \/ \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \/ \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0442.\u0434.;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430: \u0432\u044b \u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u043d\u0435 \u0441\u0430\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e.<\/p>\n<h4>2. \u0414\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438 \u0441\u0442\u0440\u043e\u043a \u0438\u0449\u0438\u0442\u0435\u00a0update*()<\/h4>\n<p>\u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b:<\/p>\n<ul>\n<li>\n<p><code>updateData()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>updateAttributes()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>updateContent()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>updateModules()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>updateUrl()<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>updateHeaders()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043c\u0438.<\/p>\n<h4>3. \u0414\u043b\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0result<\/h4>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438:<\/p>\n<ul>\n<li>\n<p><code>onContentAfterTitle<\/code>,\u00a0<code>onContentBeforeDisplay<\/code>,\u00a0<code>onContentAfterDisplay<\/code>\u00a0\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeSave<\/code>,\u00a0<code>onUserLogin<\/code>,\u00a0<code>onUserLogout<\/code>\u00a0\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e\u00a0<code>false<\/code>\u00a0\u0447\u0430\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u044f\u0434\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>4. \u041d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439\u00a0setArgument()<\/h4>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u044f\u0434\u0440\u0430 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u00a0<code>AbstractImmutableEvent<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439\u00a0<code>update*()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0430\u0440\u044b\u0435 \u0442\u0440\u044e\u043a\u0438 \u0441 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u043e\u0434\u043c\u0435\u043d\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u043e\u0447\u043a\u0438 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0417\u0430\u0434\u0430\u0447\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0443\u0436\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onBeforeExecute<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0443\u0436\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onAfterRoute<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0438\u043b\u0438, \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onAfterInitialiseDocument<\/code>,\u00a0<code>onBeforeCompileHead<\/code>,\u00a0<code>onBeforeRender<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 HTML \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onAfterRender<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentPrepareForm<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b \u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentNormaliseRequestData<\/code>,\u00a0<code>onContentBeforeValidateData<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentBeforeSave<\/code>,\u00a0<code>onUserBeforeSave<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onTableBeforeBind<\/code>,\u00a0<code>onTableCheck<\/code>,\u00a0<code>onTableBeforeStore<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onContentAfterTitle<\/code>,\u00a0<code>onContentBeforeDisplay<\/code>,\u00a0<code>onContentAfterDisplay<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>onPrepareModuleList<\/code>,\u00a0<code>onAfterModuleList<\/code>,\u00a0<code>onAfterCleanModuleList<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0432\u044b\u0437\u043e\u0432\u0430<\/h3>\n<h3>\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u0433\u0434\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0417\u0430\u0447\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeExecute<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\u00a0<code>behaviour<\/code>\u00a0\u0438\u00a0<code>system<\/code>, \u0434\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 CMS \u0435\u0449\u0451\u00a0<code>container<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0440\u0430\u043d\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0447\u0435\u043d\u044c \u0440\u0430\u043d\u043d\u044f\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterInitialise<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::initialiseApp()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u044f\u0437\u044b\u043a\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u044f\u0437\u044b\u043a, \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u043d\u043d\u044f\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0440\u0435\u0434\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterRoute<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>SiteApplication::route()<\/code>,\u00a0<code>AdministratorApplication::route()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430; \u0432\u00a0<code>site<\/code>\u00a0\u0435\u0449\u0451 \u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a\u00a0<code>Itemid<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u044f\u0437\u044b\u043a\u043e\u0432\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u043e\u0433\u0438\u043a\u0430, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0430\u044f \u043e\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeApiRoute<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>ApiApplication::route()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 API<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435,\u00a0<code>router<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0430\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 API<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u0430\u0432\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 API<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterApiRoute<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>ApiApplication::route()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 API, \u043d\u043e \u0434\u043e API-\u043b\u043e\u0433\u0438\u043d\u0430 \u0434\u043b\u044f \u043d\u0435\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u0435\u0440\u0435\u0434 API-\u043b\u043e\u0433\u0438\u043d\u043e\u043c; \u0441\u0430\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u00a0<code>ApiApplication::route()<\/code>\u00a0\u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0437\u0434\u043d\u044f\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 API-\u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterInitialiseDocument<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>SiteApplication::dispatch()<\/code>,\u00a0<code>AdministratorApplication::dispatch()<\/code>,\u00a0<code>ApiApplication::dispatch()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0435\u0449\u0451 \u043d\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435,\u00a0<code>document<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0442\u0438\u043f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterDispatch<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>dispatch()<\/code>\u00a0\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0443\u0436\u0435 \u0434\u0430\u043b \u0432\u044b\u0432\u043e\u0434, \u0431\u0443\u0444\u0435\u0440\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0443\u0444\u0435\u0440\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u0442\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeRender<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::render()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0434 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0431\u0443\u0444\u0435\u0440\u044b, \u0430\u043a\u0442\u0438\u0432\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043e\u0431\u0449\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043e \u0441\u0431\u043e\u0440\u043a\u0438 HTML \u0432\u00a0<code>site<\/code>\u00a0\u0438\u00a0<code>administrator<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeCompileHead<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Document\\\\Renderer\\\\Html\\\\MetasRenderer::render()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438\u00a0<code>&lt;head&gt;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435,\u00a0<code>document<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u00a0<code>&lt;head&gt;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterRender<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::render()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044c HTML \u0432\u00a0<code>site<\/code>\u00a0\u0438\u00a0<code>administrator<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterCompress<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u00a0<code>compress()<\/code>, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u00a0<code>gzip<\/code>\u00a0\u0438 PHP \u043d\u0435 \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0441\u0430\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043b\u043e \u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0441\u0436\u0430\u0442\u0438\u0435; \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430, \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onError<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435,\u00a0<code>application<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043f\u043e\u0434\u043c\u0435\u043d\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u0440\u0435\u0430\u043a\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeRespond<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, cookies, \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterRespond<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>CMSApplication::execute()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u0432\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0443\u0436\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0416\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043e\u0442\u043b\u0430\u0434\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430<\/h3>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438:\u00a0<code>components\/com_content\/src\/View\/Article\/HtmlView.php::display()<\/code>.<\/p>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0430\u043c \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><code>onContentPrepare<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterTitle<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeDisplay<\/code><\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0432\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><code>onContentAfterDisplay<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0431\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><code>context<\/code>\u00a0\u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0438\u0434\u0430\u00a0<code>com_content.article<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>subject<\/code>\u00a0\u2014 \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p><code>params<\/code>\u00a0\u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b;<\/p>\n<\/li>\n<li>\n<p><code>page<\/code>\u00a0\u2014 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentPrepare<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>com_content<\/code>\u00a0\u0438\u00a0<code>HTML\\\\Helpers\\\\Content::prepare()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e\u00a0<code>text<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u0435\u0442\u043e\u043a, \u0437\u0430\u043c\u0435\u043d\u0430 \u0448\u043e\u0440\u0442\u043a\u043e\u0434\u043e\u0432 \u0432\u0438\u0434\u0430\u00a0<code>{SHORT_CODE}<\/code>, \u0430\u0432\u0442\u043e\u0441\u0432\u044f\u0437\u0438, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentAfterTitle<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>com_content<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0431\u043b\u043e\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentBeforeDisplay<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>com_content<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentAfterDisplay<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>com_content<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e:<\/p>\n<ul>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0430\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u0442\u0430\u0442\u044c\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>onContentPrepare<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 HTML-\u0431\u043b\u043e\u043a \u0434\u043e \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u00a0<code>result<\/code>-\u0441\u043e\u0431\u044b\u0442\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u00a0<code>subject<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b \u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0435 \u0437\u0430 \u043f\u043e\u043a\u0430\u0437 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u0439, \u0430 \u0437\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentPrepareData<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>FormBehaviorTrait::preprocessData()<\/code>, \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0437\u00a0<code>loadFormData()<\/code>\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>data<\/code>, \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439\u00a0<code>subject<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>data<\/code>\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0<code>updateData()<\/code>\u00a0\u0438\u043b\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentPrepareForm<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>FormBehaviorTrait::preprocessForm()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0=\u00a0<code>Form<\/code>,\u00a0<code>data<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0444\u043e\u0440\u043c\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0443\u0431\u0440\u0430\u0442\u044c, \u0441\u043a\u0440\u044b\u0442\u044c, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u0438 \u0432\u043a\u043b\u0430\u0434\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentNormaliseRequestData<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>FormController::normalizeRequestData()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>data<\/code>,\u00a0<code>subject<\/code>\u00a0=\u00a0<code>Form<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0435\u043a\u0442\u00a0<code>data<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u044b\u0440\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u044b \u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentBeforeValidateData<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>FormModel::validate()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0=\u00a0<code>Form<\/code>,\u00a0<code>data<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>data<\/code>\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0<code>updateData()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0444\u043e\u0440\u043c\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onContentPrepareData<\/code>, \u043f\u043e\u0442\u043e\u043c \u0441\u0442\u0440\u043e\u0438\u0442 XML-\u0444\u043e\u0440\u043c\u0443 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>onContentPrepareForm<\/code>. \u0410 \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u043e\u0440\u043c\u044b \u0432\u00a0<code>FormController::save()<\/code>\u00a0\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>\u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0444\u043e\u0440\u043c\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onContentNormaliseRequestData<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<code>onContentBeforeValidateData<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0444\u043e\u0440\u043c\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0442\u0435\u043c \u0443\u0436\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p><code>onContentNormaliseRequestData<\/code>\u00a0\u2014 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u044b\u0440\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443;<\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeValidateData<\/code>\u00a0\u2014 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0444\u043e\u0440\u043c\u044b;<\/p>\n<\/li>\n<li>\n<p><code>onContentPrepareForm<\/code>\u00a0\u2014 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0439 \u0444\u043e\u0440\u043c\u044b, \u0430 \u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0434\u0435\u043b\u0438<\/h3>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u00a0<code>libraries\/src\/MVC\/Model\/AdminModel.php<\/code>.<\/p>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u0438\u043f\u043e\u0432\u043e\u0439 \u043f\u0443\u0442\u044c \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><code>onTableBeforeLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::load()<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeBind<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::bind()<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterBind<\/code><\/p>\n<\/li>\n<li>\n<p><code>prepareTable()<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::check()<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u2014\u00a0<code>onTableCheck<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeSave<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::store()<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u2014\u00a0<code>onTableBeforeStore<\/code>\u00a0\u0438\u00a0<code>onTableAfterStore<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterSave<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043d\u044e\u0430\u043d\u0441:<\/p>\n<blockquote>\n<p>\u043a \u043c\u043e\u043c\u0435\u043d\u0442\u0443\u00a0<code>onContentBeforeSave<\/code>\u00a0\u043e\u0431\u044a\u0435\u043a\u0442 Table \u0443\u0436\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0443\u0436\u0435 \u043f\u0440\u043e\u0448\u0451\u043b\u00a0<code>check()<\/code>.  <\/p>\n<\/blockquote>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0435\u0449\u0451 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u0443\u0447\u0448\u0435 \u0431\u0440\u0430\u0442\u044c\u00a0<code>onContentBeforeSave<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>onTableBeforeStore<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438<\/h4>\n<p>\u0412\u00a0<code>AdminModel::delete()<\/code>:<\/p>\n<ul>\n<li>\n<p><code>onTableBeforeLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::load()<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterLoad<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentBeforeDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforeDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::delete()<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentAfterDelete<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/h4>\n<p>\u0412\u00a0<code>AdminModel::publish()<\/code>:<\/p>\n<ul>\n<li>\n<p><code>onContentBeforeChangeState<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableBeforePublish<\/code><\/p>\n<\/li>\n<li>\n<p><code>Table::publish()<\/code><\/p>\n<\/li>\n<li>\n<p><code>onTableAfterPublish<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentChangeState<\/code><\/p>\n<\/li>\n<li>\n<p><code>onContentCleanCache<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 AdminModel<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u0430\u043a \u044f\u0434\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentBeforeSave<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>subject<\/code>\u00a0= \u0442\u0430\u0431\u043b\u0438\u0446\u0430,\u00a0<code>isNew<\/code>,\u00a0<code>data<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b; \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0<code>false<\/code>\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438 \u043b\u044e\u0431\u043e\u043c\u00a0<code>false<\/code>\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentAfterSave<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435 \u0436\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentBeforeDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>subject<\/code>\u00a0= \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b; \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0<code>false<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentAfterDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>subject<\/code>\u00a0= \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentBeforeChangeState<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>context<\/code>,\u00a0<code>subject<\/code>\u00a0= \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439,\u00a0<code>value<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0<code>false<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentChangeState<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435 \u0436\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onBeforeBatch<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0430\u0440\u0442\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onContentCleanCache<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>defaultgroup<\/code>,\u00a0<code>cachebase<\/code>,\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043e\u0447\u0438\u0441\u0442\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0430\u043a\u0446\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430 \u043a\u0435\u0448\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 (\u043a\u043b\u0430\u0441\u0441\u044b Table) Joomla<\/h3>\n<p>\u041a\u043b\u0430\u0441\u0441\u044b Table \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043b\u0430\u0441\u0441\u044b Table \u0432 Joomla \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \/ \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442: \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0437\u0430\u043f\u0438\u0441\u044c, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442, \u0443\u0434\u0430\u043b\u044f\u044e\u0442 \u0438 \u043c\u0435\u043d\u044f\u044e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u041e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u0414 \u043f\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0439 SQL \u0434\u043b\u044f CRUD-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0421\u0430\u043c\u044b\u0439 \u043d\u0438\u0437\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u00a0<code>libraries\/src\/Table\/Table.php<\/code>\u00a0\u0438\u00a0<code>libraries\/src\/Table\/Nested.php<\/code>.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u043b\u0438\u0436\u0435 \u0432\u0441\u0435\u0433\u043e \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0443. \u041e\u043d\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0432 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0430 \u0432 \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 Table \u0434\u043b\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0438\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u043f\u043e\u0440\u043e\u0439 \u0432 \u0441\u0430\u043c\u044b\u0445 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u0432\u043e\u0438\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableObjectCreate<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeLoad<\/code>\u00a0\/\u00a0<code>onTableAfterLoad<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::load()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043b\u044e\u0447\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0444\u043b\u0430\u0433\u00a0<code>reset<\/code>, \u0437\u0430\u0442\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeBind<\/code>\u00a0\/\u00a0<code>onTableAfterBind<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::bind()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>src<\/code>,\u00a0<code>ignore<\/code>,\u00a0<code>subject<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u044f\u044f \u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u043e\u043b\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableCheck<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::check()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0434\u043e\u0441\u0447\u0451\u0442 \u043f\u043e\u043b\u0435\u0439 \u0434\u043e \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeStore<\/code>\u00a0\/\u00a0<code>onTableAfterStore<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::store()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>updateNulls<\/code>, \u043a\u043b\u044e\u0447,\u00a0<code>subject<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0438 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0451<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeDelete<\/code>\u00a0\/\u00a0<code>onTableAfterDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::delete()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447,\u00a0<code>subject<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforePublish<\/code>\u00a0\/\u00a0<code>onTableAfterPublish<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::publish()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043b\u044e\u0447\u0435\u0439, \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435,\u00a0<code>userId<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u0441\u043d\u044f\u0442\u0438\u0435 \u0441 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeCheckout<\/code>\u00a0\/\u00a0<code>onTableAfterCheckout<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::checkout()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeCheckin<\/code>\u00a0\/\u00a0<code>onTableAfterCheckin<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::checkin()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0441\u043d\u044f\u0442\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeHit<\/code>\u00a0\/\u00a0<code>onTableAfterHit<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::hit()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeMove<\/code>\u00a0\/\u00a0<code>onTableAfterMove<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::move()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeReorder<\/code>\u00a0\/\u00a0<code>onTableAfterReorder<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::reorder()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableBeforeReset<\/code>\u00a0\/\u00a0<code>onTableAfterReset<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Table::reset()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0431\u0440\u043e\u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onTableSetNewTags<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>AdminModel::batchTags()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>newTags<\/code>,\u00a0<code>replaceTags<\/code>,\u00a0<code>removeTags<\/code>,\u00a0<code>subject<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c\u0438 Joomla Table:<\/p>\n<ul>\n<li>\n<p>\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u043f\u043e\u043b\u044f \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00a0<code>subject<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043f\u043e\u0434\u043c\u0435\u043d\u0443 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0447\u0430\u0441\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0430 \u043d\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439<\/h3>\n<p>\u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0436\u0438\u0432\u0451\u0442 \u0432\u00a0<code>libraries\/src\/Helper\/ModuleHelper.php<\/code>\u00a0\u0438\u00a0<code>libraries\/src\/Document\/Renderer\/Html\/ModulesRenderer.php<\/code>.<\/p>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p><code>onPrepareModuleList<\/code><\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043d\u0435 \u0434\u0430\u043b\u043e \u0441\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, Joomla \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0430\u043c\u0430<\/p>\n<\/li>\n<li>\n<p><code>onAfterModuleList<\/code><\/p>\n<\/li>\n<li>\n<p>Joomla \u0447\u0438\u0441\u0442\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442 \u0434\u0443\u0431\u043b\u0435\u0439 \u0438 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><code>onAfterCleanModuleList<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<ul>\n<li>\n<p><code>onRenderModule<\/code><\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/li>\n<li>\n<p><code>onAfterRenderModule<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u044b<\/p>\n<\/li>\n<li>\n<p><code>onAfterRenderModules<\/code><\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onPrepareModuleList<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>modules<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0447\u0435\u0440\u0435\u0437\u00a0<code>updateModules()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0432\u043e\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterModuleList<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>modules<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterCleanModuleList<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>modules<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0438\u0441\u0442\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onRenderModule<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043c\u043e\u0434\u0443\u043b\u044c,\u00a0<code>attributes<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u043c\u0435\u043d\u0430 \u0441\u0442\u0438\u043b\u044f, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterRenderModule<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0443\u0436\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c,\u00a0<code>attributes<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onAfterRenderModules<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>content<\/code>,\u00a0<code>attributes<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>updateContent()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0451\u0440\u0442\u043a\u0438, \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u044b, \u043c\u0430\u0441\u0441\u043e\u0432\u0430\u044f \u043f\u0440\u0430\u0432\u043a\u0430 HTML<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/h3>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043d\u0430 \u043f\u043e:<\/p>\n<ul>\n<li>\n<p><code>libraries\/src\/Authentication\/Authentication.php<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>libraries\/src\/Application\/CMSApplication.php<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>libraries\/src\/User\/User.php<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<ul>\n<li>\n<p><code>onUserAuthenticate<\/code><\/p>\n<\/li>\n<li>\n<p><code>onUserAuthorisation<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043e\u0442\u043a\u0430\u0437\u0435\u00a0<code>onUserAuthorisationFailure<\/code><\/p>\n<\/li>\n<li>\n<p><code>onUserLogin<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435\u00a0<code>onUserAfterLogin<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u00a0<code>onUserLoginFailure<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435<\/h4>\n<ul>\n<li>\n<p><code>onUserLogout<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435\u00a0<code>onUserAfterLogout<\/code><\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u00a0<code>onUserLogoutFailure<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p>\u0412\u00a0<code>User::save()<\/code>:<\/p>\n<ul>\n<li>\n<p><code>onUserBeforeSave<\/code><\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/li>\n<li>\n<p><code>onUserAfterSave<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p>\u0412\u00a0<code>User::delete()<\/code>:<\/p>\n<ul>\n<li>\n<p><code>onUserBeforeDelete<\/code><\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/p>\n<\/li>\n<li>\n<p><code>onUserAfterDelete<\/code><\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserAuthenticate<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>credentials<\/code>,\u00a0<code>options<\/code>,\u00a0<code>subject<\/code>\u00a0=\u00a0<code>AuthenticationResponse<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0435\u043a\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserAuthorisation<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0=\u00a0<code>AuthenticationResponse<\/code>,\u00a0<code>options<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0448\u0438\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserLogin<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438,\u00a0<code>options<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0442\u00a0<code>false<\/code>\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0<code>result<\/code>\u00a0\u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u0445\u043e\u0434<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0441\u0435\u0441\u0441\u0438\u044e \u0432 \u0441\u0432\u043e\u0451\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserAfterLogin<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>,\u00a0<code>options<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0416\u0443\u0440\u043d\u0430\u043b\u044b, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserBeforeSave<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f,\u00a0<code>isNew<\/code>,\u00a0<code>data<\/code>\u00a0= \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0<code>false<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserAfterSave<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435,\u00a0<code>isNew<\/code>,\u00a0<code>savingResult<\/code>,\u00a0<code>errorMessage<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserBeforeDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>\u00a0= \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0440\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onUserAfterDelete<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>subject<\/code>,\u00a0<code>deletingResult<\/code>,\u00a0<code>errorMessage<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0431\u043e\u0440\u043a\u0430 \u0441\u043b\u0435\u0434\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430:<\/p>\n<p><code>onUserAuthenticate<\/code>\u00a0\u0438\u00a0<code>onUserAuthorisation<\/code>\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c\u00a0<code>AuthenticationResponse<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u043d\u044f\u044e\u0442 \u043d\u0435 HTML \u0438 \u043d\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u0432\u0445\u043e\u0434\u0435.<\/p>\n<h3>\u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/h3>\n<p>\u042d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u0437\u0435\u0440\u043a\u0430\u043b, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 Joomla.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u043e\u0431\u044b\u0442\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onInstallerBeforePackageDownload<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>InstallerHelper::downloadPackage()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>url<\/code>,\u00a0<code>headers<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0434\u0440\u0435\u0441 \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>updateUrl()<\/code>\u00a0\u0438\u00a0<code>updateHeaders()<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onInstallerBeforeInstallation<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>com_installer<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionBeforeInstall<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::install()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430, \u043f\u0430\u043a\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionAfterInstall<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::install()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430,\u00a0<code>eid<\/code>,\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionBeforeUpdate<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::update()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430, \u043f\u0430\u043a\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionAfterUpdate<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::update()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430,\u00a0<code>eid<\/code>,\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionBeforeUninstall<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::uninstall()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>onExtensionAfterUninstall<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Installer::uninstall()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440,\u00a0<code>result<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u0431\u043e\u0440\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 Joomla 6+ \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0441\u0442\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u0436\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435, \u0447\u0435\u043c \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 Joomla 2.5 \/ Joomla 3:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430\u0437\u0432\u0430\u043d\u044b \u044f\u0432\u043d\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0441\u0451 \u0447\u0430\u0449\u0435 \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u00ab\u043c\u0430\u0433\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u00bb, \u0430 \u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0434\u0438\u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u0434 Joomla \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 &#171;\u043a\u0430\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440&#187;, \u0430 \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 &#171;\u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Joomla \u043c\u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f&#187;. <\/p>\n<p>\u041f\u0440\u0435\u0434\u0447\u0443\u0432\u0441\u0442\u0432\u0443\u044f \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0435\u043c\u0430\u0442\u0438\u043a \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043e\u0442\u0432\u0435\u0447\u0443 \u0441\u0440\u0430\u0437\u0443: \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0431\u044b\u043b\u043e \u0446\u0435\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u043e \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435.  \u0423 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u0446\u0435\u043b\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e-\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u0449\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b Joomla \u0431\u044b\u043b\u0430 \u0431\u044b \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0438 \u043f\u043e\u043c\u043e\u0447\u044c \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1055928\/\">https:\/\/habr.com\/ru\/articles\/1055928\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044f\u0434\u0440\u043e Joomla 6 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (Application)? \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0435\u0441\u0442\u044c \u0432 Joomla \u0438 \u0432 \u0447\u0451\u043c \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0430? \u041a\u0430\u043a\u043e\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Joomla, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432? \u041d\u0430 \u044d\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u043e\u043f\u0438\u0440\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 Joomla 6.1.0.Joomla 6 \u0441\u0442\u0440\u043e\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u0432\u0435\u0442. \u041f\u043b\u0430\u0433\u0438\u043d\u044b \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430.\u0414\u043b\u044f Joomla 3 \u0445\u043e\u0447\u0443 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c\u00a0\u0441\u0442\u0430\u0442\u044c\u044e \u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0420\u0435\u043a\u0443\u043d\u0430 &#171;\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Joomla&#187;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a Joomla \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0440\u0430\u043d\u044c\u0448\u0435.\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 Joomla \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b?\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 HTML \u0432 Joomla \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u00a0index.php\u00a0\u0432 \u043a\u043e\u0440\u043d\u0435 \u0441\u0430\u0439\u0442\u0430 (\u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438).\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b:\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e PHP;\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0_JEXEC, \u0447\u0442\u043e\u0431\u044b \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u044b Joomla \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0defines.php\u00a0\u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u0441\u0430\u0439\u0442\u0430 (\u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442): \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441 \u043f\u0443\u0442\u044f\u043c\u0438 \u043f\u0440\u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 (Joomla \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 web root);\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0includes\/defines.php, \u0433\u0434\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u00a0JPATH_*-\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b;\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u00a0includes\/app.php.\u0412\u00a0includes\/app.php\u00a0Joomla \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0438 \u043f\u0430\u043c\u044f\u0442\u044c, \u0435\u0449\u0451 \u0440\u0430\u0437 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0443\u0442\u0435\u0439, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u00a0includes\/framework.php. \u0412\u043e\u00a0framework.php\u00a0\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f\u00a0libraries\/bootstrap.php, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f\u00a0configuration.php, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0438,\u00a0JDEBUG\u00a0\u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Joomla 6:\u0431\u0435\u0440\u0451\u0442\u0441\u044f DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0447\u0435\u0440\u0435\u0437\u00a0Factory::getContainer();\u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u043b\u0438\u0430\u0441\u044b \u0432\u0435\u0431-\u0441\u0435\u0441\u0441\u0438\u0438;\u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f\u00a0SiteApplication;\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u00a0Factory::$application;\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0$app-&gt;execute().\u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a\u00a0CMSApplication::execute(): \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0436\u0443\u0440\u043d\u0430\u043b, \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0442\u043e\u043c \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u00a0autoload_psr4.php), \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u044b\u00a0behaviour\u00a0\u0438\u00a0system, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0onBeforeExecute, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b.\u0414\u043b\u044f HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0430\u0439\u0442\u0430 \u044d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u043a\u0440\u0430\u0442\u043a\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:index.php  -&gt; includes\/defines.php  -&gt; includes\/app.php  -&gt; includes\/framework.php  -&gt; DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440  -&gt; SiteApplication  -&gt; CMSApplication::execute()  -&gt; onBeforeExecute  -&gt; initialiseApp()  -&gt; onAfterInitialise  -&gt; route()  -&gt; onAfterRoute  -&gt; dispatch()  -&gt; onAfterInitialiseDocument  -&gt; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442  -&gt; onAfterDispatch  -&gt; render()  -&gt; onBeforeRender  -&gt; \u0441\u0431\u043e\u0440\u043a\u0430 HTML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430  -&gt; onAfterRender  -&gt; compress() [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onAfterCompress [\u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d gzip]  -&gt; onBeforeRespond  -&gt; respond()  -&gt; onAfterRespond\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Joomla \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430. \u0410 REST API \u0441\u0432\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440 &#8212; JSON, \u0432\u043c\u0435\u0441\u0442\u043e HTML &#8212; \u0438 \u0441\u0432\u043e\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433. \u0423 CLI &#8212; \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u041d\u0438\u0436\u0435 \u044d\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.\u0422\u0438\u043f\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\u0412 Joomla 6 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0437\u0430\u0434\u0430\u0447.\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438\u041a\u043b\u0430\u0441\u0441:\u00a0Joomla\\CMS\\Application\\AdministratorApplication.\u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430\u00a0\/administrator, \u0432\u0445\u043e\u0434 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u043c\u0435\u043d\u044e \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0444\u043e\u0440\u043c\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430\u041a\u043b\u0430\u0441\u0441:\u00a0Joomla\\CMS\\Application\\SiteApplication.\u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435 \u043d\u0430\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0430\u0439\u0442\u0430: \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u043c\u0435\u043d\u044e, \u043c\u043e\u0434\u0443\u043b\u0438, \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0430\u0439\u0442\u0430, \u043c\u0443\u043b\u044c\u0442\u0438\u044f\u0437\u044b\u0447\u043d\u043e\u0441\u0442\u044c, SEF URL \u0438 \u0442.\u0434.API-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u041a\u043b\u0430\u0441\u0441:\u00a0Joomla\\CMS\\Application\\ApiApplication.Joomla REST API \u0441 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430 \u0432\u00a0\/api. \u0422\u0443\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u0432\u0435\u0442\u0430, \u0440\u043e\u0443\u0442\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a API.\u041a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u041a\u043b\u0430\u0441\u0441:\u00a0Joomla\\CMS\\Application\\ConsoleApplication.CLI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Joomla, \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430:\u00a0cli\/joomla.php. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0442 HTML, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043b\u044f &#171;\u0442\u044f\u0436\u0451\u043b\u044b\u0445 \u0437\u0430\u0434\u0430\u0447&#187; \u0438 \u0434\u043b\u044f &#171;\u0442\u0440\u0443 \u0430\u0434\u043c\u0438\u043d\u043e\u0432&#187;.\u0414\u0435\u043c\u043e\u043d\u041a\u043b\u0430\u0441\u0441:\u00a0Joomla\\CMS\\Application\\DaemonApplication.\u042d\u0442\u043e \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0435\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0441 php \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0447\u0442\u043e\u0431 \u043e\u043d \u0431\u0430\u0442\u0440\u0430\u0447\u0438\u043b \u0441\u0443\u0442\u043a\u0430\u043c\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0430\u0431\u043e\u0442\u0443. \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e.Daemon \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Joomla \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u00a0CliApplication, \u0430 \u043d\u0435 \u043e\u0442\u00a0CMSApplication, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b. \u0412 \u044f\u0434\u0440\u0435 Joomla \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0441\u0430\u043c\u043e\u0433\u043e\u00a0DaemonApplication\u00a0\u043d\u0435\u0442. \u041d\u043e \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432.\u00a0CliApplication\u00a0&#8212; \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u043a\u043b\u0430\u0441\u0441, \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c Daemon \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u043e\u0432\u043e\u0433\u043e\u00a0ConsoleApplication, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u043a\u043e\u0434\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 CliApplication:@deprecated\u00a0 4.0 will be removed in 6.0. \u00a0Use the ConsoleApplication instead\u0418\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Application JoomlaJoomla\\Application\\AbstractApplicationJoomla\\Application\\AbstractWebApplicationJoomla\\CMS\\Application\\WebApplicationJoomla\\CMS\\Application\\CMSApplicationJoomla\\CMS\\Application\\SiteApplicationJoomla\\CMS\\Application\\AdministratorApplicationJoomla\\CMS\\Application\\ApiApplicationJoomla\\CMS\\Installation\\Application\\InstallationApplicationJoomla\\Console\\ApplicationJoomla\\CMS\\Application\\ConsoleApplicationJoomla\\CMS\\Installation\\Application\\CliInstallationApplicationJoomla\\CMS\\Application\\CliApplicationJoomla\\CMS\\Application\\DaemonApplication\u041a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 JoomlaJoomla\\CMS\\Application\\CMSApplicationInterfaceJoomla\\CMS\\Application\\CMSApplicationJoomla\\CMS\\Application\\ConsoleApplicationJoomla\\CMS\\Application\\CliApplicationJoomla\\CMS\\Installation\\Application\\CliInstallationApplicationJoomla\\CMS\\Application\\CMSWebApplicationInterfaceJoomla\\CMS\\Application\\CMSApplicationJoomla\\CMS\\Application\\SiteApplicationJoomla\\CMS\\Application\\AdministratorApplicationJoomla\\CMS\\Application\\ApiApplicationJoomla\\CMS\\Installation\\Application\\InstallationApplication\u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442\u044b Joomla, \u0442\u043e \u0435\u0441\u0442\u044c\u00a0site,\u00a0administrator\u00a0\u0438\u00a0api, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0443\u00a0WebApplication \u2192 CMSApplication.ConsoleApplication\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 CMS-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c.DaemonApplication\u00a0\u043d\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u00a0CMSApplication; \u043e\u043d \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0CliApplication, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b.\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u0434\u043b\u044f\u00a0SiteApplication\u00a0\u0438\u00a0AdministratorApplication. \u0414\u043b\u044f API \u043e\u043d \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043d\u043e \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u043e\u043c.\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0422\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 (index.php,\u00a0administrator\/index.php\u00a0\u0438\u043b\u0438\u00a0api\/index.php) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443:\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u0443\u0442\u0435\u0439;\u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443;\u0441\u043e\u0437\u0434\u0430\u0451\u0442 DI-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439);\u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442 \u0432 \u043d\u0435\u0433\u043e \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043b\u043e\u0433\u0433\u0435\u0440, \u0441\u0435\u0441\u0441\u0438\u044e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b;\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0$app-&gt;execute().\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.\u041e\u0431\u0449\u0438\u0439 \u0446\u0438\u043a\u043b\u00a0CMSApplication::execute()\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0436\u0438\u0432\u0451\u0442 \u0432\u00a0libraries\/src\/Application\/CMSApplication.php::execute().\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0430\u043a\u043e\u0439:\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430.\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d (\u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441\u043e\u0432) \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0behaviour\u00a0(\u0432 \u044f\u0434\u0440\u0435 Joomla \u044d\u0442\u043e: \u043f\u043b\u0430\u0433\u0438\u043d \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u0433\u043e\u0432\u00a0com_tags).\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b\u00a0system.\u0412\u044b\u0437\u043e\u0432\u00a0onBeforeExecute.\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0doExecute().\u0415\u0441\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0432\u044b\u0437\u043e\u0432\u00a0render().\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c GZIP-\u0441\u0436\u0430\u0442\u0438\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 Joomla &#8212; \u0432\u044b\u0437\u043e\u0432\u00a0compress()\u00a0\u0438 \u0437\u0430\u0442\u0435\u043c\u00a0onAfterCompress.\u0412\u044b\u0437\u043e\u0432\u00a0onBeforeRespond.\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0respond().\u0412\u044b\u0437\u043e\u0432\u00a0onAfterRespond.\u0418\u0442\u043e\u0433\u043e:onBeforeExecute\u00a0\u2014 \u0441\u0430\u043c\u0430\u044f \u0440\u0430\u043d\u043d\u044f\u044f \u043e\u0431\u0449\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432;onBeforeRespond\u00a0\u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430;onAfterRespond\u00a0\u2014 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0434\u0430\u0447\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443: \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e: \u0432\u00a0WebApplication\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451\u00a0onAfterExecute, \u043d\u043e \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 Joomla CMS \u043e\u043d \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0CMSApplication\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0execute()\u00a0\u0441\u0432\u043e\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c.\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438\u00a0CMSApplication::initialiseApp(), \u0430 \u0443\u00a0SiteApplication\u00a0\u0438\u00a0AdministratorApplication\u00a0\u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 Joomla:\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0441\u0430\u0439\u0442\u0430 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0442\u043e\u0447\u043d\u044f\u0435\u0442 \u044f\u0437\u044b\u043a \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f;\u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u044f\u0437\u044b\u043a\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (ini-\u0444\u0430\u0439\u043b\u044b \u044f\u0437\u044b\u043a\u043e\u0432);\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f;\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0onAfterInitialise.\u0412\u0430\u0436\u043d\u043e \u043d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0441 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u0435\u0441\u0441\u0438\u0438, \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442\u0441\u044f \u0435\u0449\u0451 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u0440\u0432\u0438\u0441-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0435\u00a0libraries\/src\/Service\/Provider\/Application.php. \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u0441\u0441\u0438\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0WebApplication::afterSessionStart(), \u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438\u00a0initialiseApp().\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u00a0onAfterInitialise\u00a0\u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438:\u0441\u0435\u0441\u0441\u0438\u044f;\u044f\u0437\u044b\u043a;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f;\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.\u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0440\u0435\u0434\u044b: \u044f\u0437\u044b\u043a \u0443\u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u043d, \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u043d\u043e \u043a \u0440\u0435\u043d\u0434\u0435\u0440\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Joomla \u0435\u0449\u0451 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433\u0438\u043a\u0430, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0430\u044f \u043e\u0442 url, \u0437\u0434\u0435\u0441\u044c \u0435\u0449\u0451 \u043f\u0440\u0435\u0436\u0434\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430.\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u0412\u00a0SiteApplication::route():\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u043b\u0438 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439\u00a0Uri;\u0440\u043e\u0443\u0442\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441;\u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f;\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0onAfterRoute;\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443\u00a0Itemid\u00a0(id \u043f\u0443\u043d\u043a\u0442\u0430 \u043c\u0435\u043d\u044e) \u0447\u0435\u0440\u0435\u0437\u00a0authorise().\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e Joomla \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0448\u0430\u0431\u043b\u043e\u043d, \u043c\u0430\u043a\u0435\u0442 \u0438 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u0412\u00a0AdministratorApplication::route()\u00a0\u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0449\u0435:\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0430 HTTPS;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043c\u043d\u043e\u0433\u043e\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438;\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0onAfterRoute.\u0412 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u0430 \u043d\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.API\u0412\u00a0ApiApplication::route()\u00a0\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0440\u0443\u0433\u043e\u0439:\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u044b &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-486297","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=486297"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486297\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=486297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=486297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=486297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}