A free and open-source book on ZF3 for beginners


1.12. Отличия от Zend Framework 2

Для читателей, которые имеют опыт работы с Zend Framework 2, в этом разделе мы дадим некоторую информацию о том, что изменилось в Zend Framework 3.

1.12.1. Обратная совместимость

ZF3 - это эволюционный релиз, и таким образом обратная совместимость сохраняется в большинстве случаев. Однако, некоторая работа по миграции все равно необходима, если вы использовали интерфейс ServiceLocatorAwareInterface в своем коде (что вы, вероятно, делали). В ZF3 этот интерфейс был удален, и теперь все зависимости должны передаваться посредством фабрик. Так что вам придется написать фабрики для всех ваших контроллеров, сервисов, помощников вида и плагинов контроллеров.

1.12.2. Компоненты

В ZF2 компоненты хранились в едином репозитарии под названием zendframework/zf2. В ZF3 компоненты теперь хранятся в своих собственных репозитариях, по одному GIT репозитарию на компонент (например, zendframework/zend-mvc, zendframework/zend-servicemanager, zendframework/zend-form, и т.д.). Это позволяет разрабатывать и выпускать компоненты независимо друг от друга.

Теперь компоненты еще более независимы друг от друга, чем раньше. Например, компонент Zend\Mvc был разделен на несколько компонентов, и для маршрутизации теперь используется компонент Zend\Router.

Теперь в composer.json рекомендуется указывать названия компонентов, от которых зависит приложение, хотя все еще можно указать зависимость от пакета zendframework/zendframework, который устанавливает все доступные компоненты.

1.12.3. Установщик компонентов

В ZF3 введен новый плагин для Composer, называемый component installer. Он позволяет устанавливать компоненты как модули ZF. Установщик вставляет информацию о компоненте в файл конфигурации приложения.

1.12.4. Производительность ServiceManager и EventManager

Создатели ZF3 проделали отличную работу по улучшению производительности компонентов Zend\ServiceManager и Zend\EventManager. Теперь они в несколько раз более быстры, чем раньше. Недостаток - вам придется проделать некоторую работу по миграции. Названия контроллеров и сервисов теперь рекомендуется писать с использованием конструкции PHP 5.5 ::class. Например, если раньше вы регистрировали свой контроллер как Application\Controller\Index, теперь вам нужно регистрировать его как IndexController::class.

1.12.5. PSR-4

В ZF2 рекомендуемая структура директорий подчинялась стандарту PSR-0, в то время как в ZF3 используется стандарт PSR-4. Это требует от вас (небольшой) работы по миграции.

1.12.6. Middleware

В компании Zend считают, что будущее PHP за middleware. "Middleware - это просто код, выполняющийся между входящим HTTP запросом и выходным HTTP ответом." Теперь вы можете регистрировать middleware listener в своем MVC приложении.

1.12.7. Фокус на документации

Теперь каждый компонент фреймворка содержит свою собственную документацию. Документация теперь написана в формате Markdown и гораздо лучше продумана.


Top