ソースを参照

[DOCUMENTATION] Russian:
- EN-Revision tag updated
- Fixed filename error

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23803 44c647ce-9c0f-0410-b52a-842ac1e357ba

xerkus 15 年 前
コミット
7556ae4bde

+ 0 - 791
documentation/manual/ru/module_specs/Zend_Controller-Migration.xml

@@ -1,791 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Reviewed: no -->
-<sect1 id="zend.controller.migration">
-    <title>Переход с предыдущих версий</title>
-
-    <para>
-        API компонент системы MVC претерпевал изменения со временем. Если вы
-        начали использование Zend Framework с его ранних версий, то следуйте
-        приведенным ниже рекомендациям по переносу вашего кода на новую
-        архитектуру.
-    </para>
-
-    <sect2 id="zend.controller.migration.fromoneseventooneeight">
-        <title>Переход с 1.7.x на 1.8.0 и более поздние версии</title>
-
-        <sect3 id="zend.controller.migration.fromoneseventooneeight.router">
-            <title>Изменения в стандартном маршруте</title>
-
-            <para>
-                Поскольку в новый стандартный маршрут были добавлены
-                переводимые сегменты, символ <code>@</code> стал
-                специальным символом в начале сегмента маршрута.
-                Для того, чтобы можно было использовать его в статических
-                сегментах, вы должны экранировать его путем добавления второго
-                символа <code>@</code>. То же самое правило теперь применяется
-                и к символу <code>:</code>.
-            </para>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromonesixtooneseven">
-        <title>Переход с 1.6.x на 1.7.0 и более поздние версии</title>
-
-        <sect3 id="zend.controller.migration.fromonesixtooneseven.dispatcher">
-            <title>Изменения в интерфейсе диспетчера</title>
-
-            <para>
-                Пользователи обратили наше внимание на тот факт, что
-                <classname>Zend_Controller_Action_Helper_ViewRenderer</classname>
-                использует не присутствующий в интерфейсе метод из
-                абстрактного класса диспетчера. Мы добавили
-                этот метод в интерфейс диспетчера для того,
-                чтобы гарантировать работу созданного вами диспетчера с
-                классами, входящими в поставку Zend Framework:
-            </para>
-
-            <itemizedlist>
-                <listitem><para>
-                    <code>formatModuleName()</code>: должен принимать
-                    необработанное имя контроллера (в том виде, в котором оно
-                    хранится в объекте запроса) и преобразовывать его в имя
-                    класса контроллера, наследующего от
-                    <classname>Zend_Controller_Action</classname>.
-                </para></listitem>
-            </itemizedlist>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromoneohtoonesix">
-        <title>Переход с 1.5.x на 1.6.0 и более поздние версии</title>
-
-        <sect3 id="zend.controller.migration.fromoneohtoonesix.dispatcher">
-            <title>Изменения в интерфейсе диспетчера</title>
-
-            <para>
-                Пользователи обратили наше внимание на тот факт, что
-                <classname>Zend_Controller_Front</classname> и
-                <classname>Zend_Controller_Router_Route_Module</classname> используют
-                методы диспетчера, которые не определены в его интерфейсе.
-                Мы добавили следующие три метода в его интерфейс для того,
-                чтобы гарантировать работу созданного вами диспетчера с
-                классами, входящими в поставку Zend Framework:
-            </para>
-
-            <itemizedlist>
-                <listitem><para>
-                    <code>getDefaultModule()</code>: должен возвращать имя
-                    используемого по умолчанию модуля.
-                </para></listitem>
-
-                <listitem><para>
-                    <code>getDefaultControllerName()</code>: должен возвращать
-                    имя используемого по умолчанию контроллера.
-                </para></listitem>
-
-                <listitem><para>
-                    <code>getDefaultAction()</code>: должен возвращать имя
-                    используемого по умолчанию действия.
-                </para></listitem>
-            </itemizedlist>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromoneohtoonefive">
-        <title>Переход с 1.0.x на 1.5.0 и более поздние версии</title>
-
-        <para>
-            Хотя основной набор функциональных возможностей остался тем же, и
-            все документированные возможности не претерпели изменений, есть одна
-            <emphasis>недокументированная</emphasis> "возможность", которая была
-            изменена.
-        </para>
-
-        <para>
-            При написании URL-ов, документированным способом написания имен
-            действий в формате camelCase является использование разделителей
-            слов. По умолчанию это '.' или '-', но они могут быть заменены на
-            другие символы путем настройки диспетчера. Диспетчер внутри себя
-            приводит имена действий к нижнему регистру и использует эти
-            разделители слов для "пересборки" имен действий с использованием
-            формата camelCase. Но из-за того, что функции PHP не чувствительны к
-            регистру, вы <emphasis>могли</emphasis> по-прежнему писать URL-ы в
-            формате camelCasе, и результатом был запуск тех же методов
-            действий. Например, 'camel-cased' должен был преобразовываться
-            диспетчером в 'camelCasedAction', а 'camelCased' - в
-            'camelcasedAction', но из-за нечувствительности PHP к регистру имен
-            функций в обоих случаях будет произведен вызов одного и того же
-            метода.
-        </para>
-
-        <para>
-            Это вызывало проблемы с ViewRenderer при определении имени скрипта
-            вида. Документированный способ состоит в том, что все разделители
-            слов преобразуются в тире, и слова приводятся к нижнему регистру.
-            Это создает семантическую связь между действиями и скриптами видов,
-            а нормализация гарантирует, что скрипты могут быть найдены. Тем не
-            менее, если вызывается действие с именем 'camelCased' и благополучно
-            обработано, то разделитель слов более не присутствует в имени, и
-            ViewRenderer пытается вызвать другой скрипт вида -
-            'camelcased.phtml' вместо 'camel-cased.phtml'.
-        </para>
-
-        <para>
-            Некоторые разработчики полагались на эту незапланированную
-            "возможность". Тем не менее, некоторые изменения в дереве 1.5.0,
-            привели к тому, что ViewRenderer более не ищет такие пути;
-            семантическая связь теперь усилена. Главное, диспетчер
-            теперь чувствителен к регистру в именах действий. Это значит, что
-            ссылка на действие через URL с использованием формата camelCase
-            не будет приводить к вызову того же метода, что и с использованием
-            разделителей слов (т.е. 'camel-casing').
-        </para>
-
-        <para>
-            Если получилось, что вы используете эту "возможность", то в имеете
-            несколько вариантов решения:
-        </para>
-
-        <itemizedlist>
-            <listitem><para>
-                    Наилучший вариант: переименуйте ваши скрипты вида. Плюсы:
-                    будущая совместимость. Минусы: если вы имеете много скриптов
-                    вида, которые полагаются на старое, незапланированное
-                    поведение, то вам придется сделать много переименований.
-            </para></listitem>
-
-            <listitem>
-                <para>
-                    Второй лучший вариант: ViewRenderer теперь делегирует
-                    определение скриптов вида инфлектору
-                    <classname>Zend_Filter_Inflector</classname>; вы можете изменить
-                    правила инфлектора так, чтобы он более не разделял слова в
-                    имени действия знаком тире:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$viewRenderer =
-    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-$inflector = $viewRenderer->getInflector();
-$inflector->setFilterRule(':action', array(
-    new Zend_Filter_PregReplace(
-        '#[^a-z0-9' . preg_quote(DIRECTORY_SEPARATOR, '#') . ']+#i',
-        ''
-    ),
-    'StringToLower'
-));
-]]></programlisting>
-
-                <para>
-                    Приведенный выше код изменит инфлектор таким образом, чтобы
-                    он более не разделял слова в имени действия знаком тире; вы
-                    можете также убрать фильтр 'StringToLower', если хотите,
-                    чтобы реальные имена скриптов вида тоже были в формате
-                    camelCase.
-                </para>
-
-                <para>
-                    Если переименование скриптов вида слишком утомительно или
-                    требует много времени, то этот вариант будет наилучшим
-                    решением на тот период, пока вы не найдете время на
-                    переименование.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Менее желательное решение: Вы можете заставить диспетчер
-                    принимать имена действий в формате camelCase, установив
-                    новый флаг фронт-контроллера 'useCaseSensitiveActions':
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$front->setParam('useCaseSensitiveActions', true);
-]]></programlisting>
-
-                <para>
-                    Это позволит вам использовать camelCase в URL-ах и они будут
-                    приводить к запуску тех действий, что и при использовании
-                    разделителей слов. Тем не менее, это будет означать, что
-                    исходная проблема может повлечь за собой другие; возможно,
-                    вам потребуется также использовать описанный выше второй
-                    вариант, чтобы все работало наверняка.
-                </para>
-
-                <para>
-                    Также заметьте, что использование этого флага приведет к
-                    появлению предупреждения (notice) о том, что его
-                    использование не рекомендуется.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzeroninethree">
-        <title>Переход с 0.9.3 на 1.0.0RC1 и более поздние версии</title>
-
-        <para>
-            Основные изменения, появившиеся в 1.0.0RC1 - это добавление
-            включенного по умолчанию плагина
-            <link linkend="zend.controller.plugins.standard.errorhandler">ErrorHandler</link>
-            и помощника действий <link linkend="zend.controller.actionhelpers.viewrenderer">ViewRenderer</link>.
-            Пожалуйста, прочитайте внимательно документацию к ним, чтобы понять,
-            как они работают, и как они могут повлиять на работу ваших
-            приложений.
-        </para>
-
-        <para>
-            Плагин <code>ErrorHandler</code> производит в методе
-            <code>postDispatch()</code> проверку на предмет исключений и
-            переход (forwarding) к определенному контроллеру-обработчику
-            исключений. Вы можете отключить его путем установки параметра
-            <code>noErrorHandler</code> во фронт-контроллере:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$front->setParam('noErrorHandler', true);
-]]></programlisting>
-
-        <para>
-            Помощник действий <code>ViewRenderer</code> автоматизирует
-            добавление вида в контроллеры действий и производит авторендеринг
-            скрипта вида, выбранного по текущему действию. Первая проблема, с
-            которой вы можете встретиться - у вас есть действия,
-            которые не производят рендеринг скриптов вида и не производят
-            переход или перенаправление, поскольку <code>ViewRenderer</code>
-            будет пытаться запустить скрипт вида, выбранного по имени действия.
-        </para>
-
-        <para>
-            Есть несколько стратегий, используя которые, вы можете обновить свой
-            код. В краткострочной перспективе решением может быть глобальное
-            отключение <code>ViewRenderer</code> во фронт-контроллере до
-            начала процесса диспетчеризации:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-// $front является экземпляром Zend_Controller_Front
-$front->setParam('noViewRenderer', true);
-]]></programlisting>
-
-        <para>
-            Но в долгосрочной перспективе это не лучшее решение, поскольку
-            оно означает, что вам в будущем придется писать больше кода.
-        </para>
-
-        <para>
-            Когда вы будете готовы начать использование функционала
-            <code>ViewRenderer</code>, то необходимо проверить некоторые места в
-            коде контроллеров. Первое, просмотрите методы действий (методы,
-            заканчивающиеся на 'Action') и определите, что делает каждый метод.
-            Если не происходит ничего из следующего, то нужно произвести
-            изменения:
-        </para>
-
-        <itemizedlist>
-            <listitem><para>
-                Вызов <varname>$this-&gt;render()</varname>
-            </para></listitem>
-            <listitem><para>
-                Вызов <varname>$this-&gt;_forward()</varname>
-            </para></listitem>
-            <listitem><para>
-                Вызов <varname>$this-&gt;_redirect()</varname>
-            </para></listitem>
-            <listitem><para>
-                Вызов помощника действий <code>Redirector</code>
-            </para></listitem>
-        </itemizedlist>
-
-        <para>
-            Наиболее легким способом будет отключение авторендеринга в данном
-            методе:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-$this->_helper->viewRenderer->setNoRender();
-]]></programlisting>
-
-        <para>
-            Если вы обнаружили, что ни один из методов действий не производит
-            рендеринг, переход или перенаправление, то, скорее всего, нужно
-            поместить эту строку в методы
-            <code>preDispatch()</code> или <code>init()</code>:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-public function preDispatch()
-{
-    // отключение авторендеринга скриптов вида
-    $this->_helper->viewRenderer->setNoRender()
-    // ... еще код ..
-}
-]]></programlisting>
-
-        <para>
-            Если вы вызываете <code>render()</code> и используете
-            <link linkend="zend.controller.modular">определенную соглашением
-            модульную структуру директорий</link>, то нужно
-            изменить свой код так, чтобы использовался авторендеринг:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Если производится рендеринг нескольких скриптов вида в
-                    одном действии, то не нужно ничего изменять.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Если производится простой вызов метода
-                    <code>render()</code> без аргументов, то можете удалить
-                    соответствующие строки.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Если вызывается <code>render()</code> с аргументами и не
-                    производится впоследствии каких-либо действий или рендеринга
-                    нескольких скриптов вида, то можно заменить эти вызовы на
-                    чтение <varname>$this-&gt;_helper-&gt;viewRenderer()</varname>.
-                </para>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            На тот случай, если вы не используете определенную соглашением
-            модульную структуру директорий, есть набор методов для
-            установки базового пути к видам и спецификаций пути ко скрипту,
-            поэтому вы сможете и в этом случае использовать
-            <code>ViewRenderer</code>. Информацию об этих методах вы найдете в
-            <link linkend="zend.controller.actionhelpers.viewrenderer">документации
-            по ViewRenderer</link>
-        </para>
-
-        <para>
-            Если вы используете объект вида из реестра, создали свой объект
-            вида, либо используете другие реализации встроенного, то может
-            потребоваться добавить этот объект в <code>ViewRenderer</code>. Это
-            легко можно сделать в любой момент времени.
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    До начала диспетчеризации экземпляра фронт-контроллера:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-// Предполагается, что $view уже определен
-$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
-Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
-]]></programlisting>
-            </listitem>
-
-            <listitem>
-                <para>
-                    В любой точке процесса загрузки (bootstrap process):
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$viewRenderer =
-    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
-$viewRenderer->setView($view);
-]]></programlisting>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Есть много способов модификации <code>ViewRenderer</code>, включая
-            установку других скриптов вида для рендеринга, определение замещений
-            для всех замещаемых элементов пути ко скрипту вида (включая
-            суффикс), выбор именованного сегмента ответа в качестве
-            используемого и др. Если вы не используете определенную соглашением
-            модульную структуру директорий, то можете ассоциировать с
-            <code>ViewRenderer</code> другие спецификации путей.
-        </para>
-
-        <para>
-            Рекомендуется адаптировать свой код для использования
-            <code>ErrorHandler</code> и <code>ViewRenderer</code>, так как
-            сейчас это лежащий в основе фреймворка функционал.
-        </para>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzeroninetwo">
-        <title>Переход с 0.9.2 на 0.9.3 и более поздние версии</title>
-
-        <para>
-            В версии 0.9.3 были добавлены <link
-            linkend="zend.controller.actionhelpers">помощники действий</link>
-            (action helpers).
-            Это изменение включает в себя удаление перечисленных ниже методов
-            из-за того, что сейчас они инкапсулированы в
-            <link linkend="zend.controller.actionhelpers.redirector">помощнике
-            перенаправлений</link> (redirector action helper):
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <code>setRedirectCode()</code>; используйте
-                    <code>Zend_Controller_Action_Helper_Redirector::setCode()</code>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <code>setRedirectPrependBase()</code>; используйте
-                    <code>Zend_Controller_Action_Helper_Redirector::setPrependBase()</code>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <code>setRedirectExit()</code>; используйте
-                    <code>Zend_Controller_Action_Helper_Redirector::setExit()</code>.
-                </para>
-            </listitem>
-        </itemizedlist>
-
-        <para>
-            Более подробную информацию о том, как извлекать и работать с
-            объектами действий, читайте в <link
-            linkend="zend.controller.actionhelpers">документации по помощникам
-            действий</link>. Об установке опций перенаправления и альтернативных
-            методах перенаправления читайте в <link
-            linkend="zend.controller.actionhelpers.redirector">документации по
-            помощнику перенаправлений</link>.
-        </para>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzerosix">
-        <title>Переход с 0.6.0 на 0.8.0 и более поздние версии</title>
-
-        <para>
-            Базовое использование компонент MVC не изменилось:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-Zend_Controller_Front::run('/path/to/controllers');
-]]></programlisting>
-
-        <para>
-            Тем не менее, структура директорий была подвергнута пересмотру,
-            некоторые компоненты были удалены, другие добавлены или
-            переименованы. Изменения включают в себя следующее:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Router</classname> удален в пользу
-                    использования Rewrite Router.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_RewriteRouter</classname> переименован в
-                    <classname>Zend_Controller_Router_Rewrite</classname>, теперь это
-                    стандартный маршрутизатор, поставляемый с фреймворком.
-                    <classname>Zend_Controller_Front</classname> будет использовать его по
-                    умолчанию, если не был установлен другой маршрутизатор.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Добавлен новый класс маршрута для использования с Rewrite
-                    Router - <classname>Zend_Controller_Router_Route_Module</classname>.
-                    Он включает в себя маршрут по умолчанию, используемый
-                    MVC, и поддерживает <link
-                        linkend="zend.controller.modular">модули
-                        контроллеров</link>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Router_StaticRoute</classname> переименован
-                    в <classname>Zend_Controller_Router_Route_Static</classname>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    <classname>Zend_Controller_Dispatcher</classname> переименован в
-                    <classname>Zend_Controller_Dispatcher_Standard</classname>.
-                </para>
-            </listitem>
-
-            <listitem>
-                <para>
-                    Аргументы метода
-                    <code>Zend_Controller_Action::_forward()</code> изменились.
-                    Его сигнатура теперь:
-                </para>
-
-                <programlisting language="php"><![CDATA[
-final protected function _forward($action,
-                                  $controller = null,
-                                  $module = null,
-                                  array $params = null);
-]]></programlisting>
-
-                <para>
-                    <varname>$action</varname> - обязательный аргумент. Если не был
-                    определен контроллер, то предполагается, что вызывается
-                    действие в текущем контроллере. <varname>$module</varname> всегда
-                    игнорируется, если не определен контроллер. Все переданные в
-                    аргументе <varname>$params</varname> параметры будут добавлены в
-                    объект запроса. Если вы не запрашиваете контроллер или
-                    модуль, но нужно передать параметры, то просто укажите null
-                    на месте соответствующих аргументов.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </sect2>
-
-    <sect2 id="zend.controller.migration.fromzerotwo">
-        <title>Переход с 0.2.0 и более ранних версий на 0.6.0</title>
-
-        <para>
-            Базовое использование компонент системы MVC не изменилось,
-            следующий код будет корректно выполняться и в версии 0.6.0:
-        </para>
-
-        <programlisting language="php"><![CDATA[
-Zend_Controller_Front::run('/path/to/controllers');
-]]></programlisting>
-
-        <programlisting language="php"><![CDATA[
-/* -- создание маршрутизатора -- */
-$router = new Zend_Controller_RewriteRouter();
-$router->addRoute('user',
-                  'user/:username',
-                  array('controller' => 'user', 'action' => 'info')
-);
-
-/* -- установка его во фронт-контроллере -- */
-$ctrl = Zend_Controller_Front::getInstance();
-$ctrl->setRouter($router);
-
-/* -- установка директории контроллеров и запуск диспетчеризации -- */
-$ctrl->setControllerDirectory('/path/to/controllers');
-$ctrl->dispatch();
-]]></programlisting>
-
-        <para>
-            Рекомендуется использовать объект ответа для сбора содержимого и
-            заголовков. Это дает большую гибкость при переключении
-            между разными форматами вывода (например, JSON или XML вместо XHTML)
-            в приложениях. По умолчанию <code>dispatch()</code> будет возвращать
-            ответ, отправляя заголовки и выводя весь контент. Можно также
-            сделать так, чтобы фронт-контроллер возвращал ответ, используя метод
-            <code>returnResponse()</code>, и затем выводить ответ так, как нужно
-            вам. Будущая версия фронт-контроллер может принуждать к
-            использованию объекта ответа посредством буферизации вывода.
-        </para>
-
-        <para>
-            Также добавлено много новых функциональных возможностей,
-            расширяющих существующий API, они описаны в документации.
-        </para>
-
-        <para>
-            Основные изменения, о которых следует знать, касаются расширения
-            существующих компонент. Наиболее важные из них следующие:
-        </para>
-
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <code>Zend_Controller_Front::dispatch()</code> по умолчанию
-                    отлавливает все исключения в объекте ответа и не отображает
-                    их для предотвращения раскрытия данных о системе. Вы
-                    можете переопределить это поведение несколькими способами:
-                </para>
-
-                <itemizedlist>
-                    <listitem>
-                        <para>
-                            Установка <code>throwExceptions()</code> во
-                            фронт-контроллере:
-                        </para>
-                        <programlisting language="php"><![CDATA[
-$front->throwExceptions(true);
-]]></programlisting>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            Установка <code>renderExceptions()</code> в объекте
-                            ответа:
-                        </para>
-                        <programlisting language="php"><![CDATA[
-$response->renderExceptions(true);
-$front->setResponse($response);
-$front->dispatch();
-
-// или:
-$front->returnResponse(true);
-$response = $front->dispatch();
-$response->renderExceptions(true);
-echo $response;
-]]></programlisting>
-                    </listitem>
-                </itemizedlist>
-            </listitem>
-
-            <listitem><para>
-                <code>Zend_Controller_Dispatcher_Interface::dispatch()</code>
-                теперь принимает и возвращает объект запроса
-                <xref linkend="zend.controller.request" />
-                вместо метки <classname>Zend_Controller_Dispatcher_Token</classname>.
-            </para></listitem>
-
-            <listitem><para>
-                <code>Zend_Controller_Router_Interface::route()</code>
-                теперь принимает и возвращает объект ответа
-                <xref linkend="zend.controller.request" />
-                вместо метки <classname>Zend_Controller_Dispatcher_Token</classname>
-            </para></listitem>
-
-            <listitem>
-                <para>
-                    Изменения <classname>Zend_Controller_Action</classname> включают в
-                    себя следующее:
-                </para>
-
-                <itemizedlist>
-                    <listitem><para>
-                        Его конструктор теперь включает в себя три аргумента:
-                        <code>Zend_Controller_Request_Abstract $request</code>,
-                        <code>Zend_Controller_Response_Abstract $response</code>
-                        и <code>array $params</code> (необязательный).
-                        <code>Zend_Controller_Action::__construct()</code>
-                        использует их для установки запроса, ответа и свойств
-                        объекта (аргументов вызова); переопределяя конструктор,
-                        вам следует реализовать те же операции.
-                        Но лучше использовать метод <code>init()</code> для
-                        выполнения любого конфигурирования экземпляра класса,
-                        так как этот метод вызывается в конце конструктора.
-                    </para></listitem>
-
-                    <listitem><para>
-                        Метод <code>run()</code> теперь не определен с ключевым
-                        словом <code>final</code>, но он также и не используется
-                        во фронт-контроллере; единственным его назначением
-                        является использование класса как контроллера страниц.
-                        Теперь он принимает два необязательных аргумента –
-                        <code>Zend_Controller_Request_Abstract $request</code>
-                        и <code>Zend_Controller_Response_Abstract $response</code>.
-                    </para></listitem>
-
-                    <listitem><para>
-                        <code>indexAction()</code> уже не обязателен для
-                        определения, но все же рекомендуется определять его в
-                        качестве действия по умолчанию. Это позволяет
-                        использовать RewriteRouter и контроллеры действий для
-                        указания других используемых по умолчанию методов
-                        действий.
-                    </para></listitem>
-
-                    <listitem><para>
-                        <code>__call()</code> должен переопределяться для
-                        автоматической обработки вызовов действий, не
-                        определенных в классе контроллера.
-                    </para></listitem>
-
-                    <listitem><para>
-                        Метод <code>_redirect()</code> теперь принимает второй
-                        необязательный аргумент, HTTP-код, который должен
-                        возвращаться при перенаправлении, и третий
-                        необязательный аргумент, <varname>$prependBase</varname>,
-                        который указывает, что базовый URL, зарегистрированный в
-                        объекте запроса, должен предшествовать URL, переданному
-                        в первом аргументе.
-                    </para></listitem>
-
-                    <listitem>
-                        <para>
-                            Свойство <code>_action</code> больще не
-                            устанавливается. Это свойство было объектом класса
-                            <classname>Zend_Controller_Dispatcher_Token</classname>,
-                            которй больше не существует в текущем воплощении.
-                            Единственным назначением метки (token) было
-                            предоставление информации о запрошенных контроллере,
-                            действии и параметрах URL. Эта информация теперь
-                            доступна в объекте запроса, и доступ к ней можно
-                            получить следующим образом:
-                        </para>
-
-                        <programlisting language="php"><![CDATA[
-// Извлечение имени запрошенного контроллера
-// Ранее доступ был через $this->_action->getControllerName().
-// Пример ниже использует getRequest(), хотя вы можете обращаться напрямую
-// ко свойству $_request; рекомендуется использовать getRequest(), поскольку
-// родительский класс может переопределить доступ к объекту запроса.
-$controller = $this->getRequest()->getControllerName();
-
-// Извлечение имени запрошенного действия
-// Ранее доступ был через $this->_action->getActionName().
-$action = $this->getRequest()->getActionName();
-
-// Извлечение параметров запроса
-// Оно не изменилось; _getParams() и _getParam() просто вызывают аналогичные
-// методы объекта запроса
-$params = $this->_getParams();
-
-// запрашивается параметр 'foo', если параметр не найден,
-// то используется значение по умолчанию 'default'
-$foo = $this->_getParam('foo', 'default');
-]]></programlisting>
-                    </listitem>
-
-                    <listitem>
-                        <para>
-                            Удален метод <code>noRouteAction()</code>.
-                            Подходящим способом обработки несуществующих методов
-                            действий будет перенаправление к действию по
-                            умолчанию через <code>__call()</code>:
-                        </para>
-
-                        <programlisting language="php"><![CDATA[
-public function __call($method, $args)
-{
-    // Если запрошен несуществующий метод действия, то вызывается метод
-    // действия по умолчанию:
-    if ('Action' == substr($method, -6)) {
-        return $this->defaultAction();
-    }
-
-    throw new Zend_Controller_Exception('Invalid method called');
-}
-]]></programlisting>
-                    </listitem>
-                </itemizedlist>
-            </listitem>
-
-            <listitem><para>
-                Удален метод
-                <code>Zend_Controller_RewriteRouter::setRewriteBase()</code>.
-                Вместо него используйте
-                <code>Zend_Controller_Front::setBaseUrl()</code> (или
-                <code>Zend_Controller_Request_Http::setBaseUrl()</code>,
-                если используется класс запроса).
-            </para></listitem>
-
-            <listitem><para>
-                <classname>Zend_Controller_Plugin_Interface</classname> был заменен на
-                <classname>Zend_Controller_Plugin_Abstract</classname>. Все методы теперь
-                принимают и возвращают объект ответа
-                <xref linkend="zend.controller.request" /> вместо метки
-                диспетчеризации.
-            </para></listitem>
-        </itemizedlist>
-    </sect2>
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 8 - 5
documentation/manual/ru/module_specs/Zend_Dom.xml

@@ -1,12 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 21358 -->
+<!-- Reviewed: no -->
 <sect1 id="zend.dom.introduction">
     <title>Введение</title>
 
     <para>
-        Компонента <code>Zend_Dom</code> предоставляет инструменты для
-        работы с документами и структурами DOM. В настоящее время мы предлагаем
-        инструмент <code>Zend_Dom_Query</code>, который дает
-        унифицированный интерфейс для запросов к документам DOM с использованием
-        селекторов XPath и CSS.
+        Компонента <classname>Zend_Dom</classname> предоставляет инструменты для
+        работы с документами и структурами <acronym>DOM</acronym>. В настоящее время мы предлагаем
+        инструмент <classname>Zend_Dom_Query</classname>, который дает
+        унифицированный интерфейс для запросов к документам <acronym>DOM</acronym> с использованием
+        селекторов XPath и <acronym>CSS</acronym>.
     </para>
 </sect1>
 <!--

+ 4 - 3
documentation/manual/ru/module_specs/Zend_Mail-StmpSecure.xml → documentation/manual/ru/module_specs/Zend_Mail-SmtpSecure.xml

@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 20819 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.mail.smtp-secure">
     <title>Защищенное SMTP-соединение</title>
@@ -9,7 +10,7 @@
         SMTP-соединения. Защита может быть включена путем передачи параметра
         'ssl' со значениями 'ssl' или 'tls' в конфигурационном массиве
         конструктору <classname>Zend_Mail_Transport_Smtp</classname>.
-        Опционально может быть передан порт, по умолчанию это будет 25 для
+        Опционально может быть указан порт, иначе по умолчанию будут использованы значения 25 для
         <acronym>TLS</acronym> или 465 для <acronym>SSL</acronym>.
     </para>
 
@@ -18,7 +19,7 @@
 
         <programlisting language="php"><![CDATA[
 $config = array('ssl' => 'tls',
-                'port' => 25);
+                'port' => 25); //необязательный параметр
 
 $transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config);
 
@@ -29,7 +30,7 @@ $mail->addTo('recipient@test.com', 'Some Recipient');
 $mail->setSubject('TestSubject');
 $mail->send($transport);
 ]]></programlisting>
-  </example>
+    </example>
 </sect1>
 <!--
 vim:se ts=4 sw=4 et:

+ 1 - 1
documentation/manual/ru/ref/coding_standard.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 21740 -->
+<!-- EN-Revision: 23772 -->
 <!-- Reviewed: no -->
 <appendix id="coding-standard">
   <title>Стандарт кодирования на PHP в Zend Framework'е</title>