Zend Framework 2

Одним из первых переводов на сайте Pixel.com статья Zend в которой упоминалось о Zend Framework. С тех пор в Zend Framework выпустил стабильную вторую версию. Кроме названия, Zend Framework 2 можно сказать что это действительно новый проект если сравнивать со старой версией Zend Framework. Потому что Zend Framework был полностью переписан. В этой статье краткий обзор новых функций и изменений, которые были внесены в Zend Framework 2.

Скачать Zend Framework 2

Существует четыре различных способа скачать Zend Framework 2. Первый, это классический способ, скачав пакет на  странице загрузки  или  packages.zendframework.com . Второй похож, но вы можете скачать его из  репозитория ZF GitHub . Третьим является использование Composer, инструмент для управления зависимостями. Чтобы установить Zend Framework 2 с использованием composer, добавьте следующие строки в ваш файл composer.json:



"repositories": [
  {
    "type": "composer",
    "url": "https://packages.zendframework.com/"
  }
],

"require": {
  "zendframework/zend-config": "2.0.*",
  "zendframework/zend-http": "2.0.*"
}


Четвертый способ заключается в использовании PEAR2_Pyrus , запуск этих команд:



pyrus.phar .
pyrus.phar . channel-discover packages.zendframework.com
pyrus.phar . install zf2/Zend_Framework#Standard


Для второй весии Zend Framework для начала выпущена база  каркас приложения , с помощью которого можно приступить к разработке своего приложения. Вы можете скачать его с GitHub  или с помощью composer вот так:



composer.phar create-project 
--repository-url="http://packages.zendframework.com" 
zendframework/skeleton-application path/to/install


Автоматическая загрузка системы

Zend Framework 2 предоставляет вам множество различных вариантов для каждой новой функции. Автозагрузка системы, например, в настоящее время имеет три различных варианта. Вы увидите, что нет никаких следов линий  require_once , которые широко используются в первой версии. Единственное зачем нужен require_once , для новых авто-загрузок системы. Код для использования должен выглядеть следующим образом:



<!--?php require_once 'Zend/Loader/StandardAutoloader.php'; $autoLoader = new Zend\Loader\StandardAutoloader(array(     'fallback_autoloader' =--> true,
));
$autoLoader->register(); ?>


Этот метод загружает пространства имен классов, используя стандарт PSR-0. Обратите внимание, что установка  'fallback_autoloader' => true  разрешает резерв, который позволяет вызывать PHP по умолчанию включение систем, включая те файлы, которые не падают в пространства имен Zend.

Второй метод основан на class map , файл с ассоциативный массив, где ключами являются имена классов и значения их абсолютного пути. Сlass map представляет собой простой файл, который возвращает абсолютный путь, этот метод может быть быстрее по сравнению с предыдущими, до 20% в стандартном использовании или до 80% при использовании системы опкод кэша, как APC. Утомительно в этой системе является создание самого файла карты, особенно для больших проектов. К счастью, команда Zend Framework 2 создали  генератор Сlass map , который может автоматически построить карту для вас. По умолчанию он будет искать файлы в текущем каталоге и записать вывод в файл, созданный в указанный путь. Пример ее использования:



php classmap_generator.php My/Project


Тем не менее, вы можете настроить скрипт. Для обзора вариантов, посмотрите на документацию генератор Сlass map .
Третий метод очень похож на первый. Отличия только в том случае, если вы можете указать путь к использованию файла заданного пространства имен, как в примерах ниже.



<!--?php require_once 'Zend/Loader/StandardAutoloader.php'; $autoLoader = new Zend\Loader\StandardAutoloader(); $autoLoader--->registerNamespace('ApplicationNamespace', 'Path/to/files');
$autoLoader->register();


Вы можете установить определенный префикс.



<!--?php require_once 'Zend/Loader/StandardAutoloader.php'; $autoLoader = new Zend\Loader\StandardAutoloader(); $autoLoader--->registerNamespace('FilesPrefix_', 'Path/to/files');
$autoLoader->register(); ?>


Управление системой

Разработчики постарались написать код, после инверсии управления (IoC). В  wiki   IoC технология программирования, выражено в терминах объектно-ориентированного программирования, в которой объектом связи обязан во время выполнения ассемблер объекта и, как правило, не известны во время компиляции с использованием статического анализа.

Event-менеджер

Последняя особенность Zend Framework 2 для этой статьи, является новый менеджер событий реализуется классом Zend\ServiceManager, которые заменяют компоненты Zend\Application из предыдущих версий 1.x. Zend Framework 2 теперь событиями. Как вы наверное уже знаете, до фактического запуска действий контроллера, framework делает многое. Во-первых, можно запустить загрузчик, который устанавливает модули app и конфигурации. После загрузки, адрес запроса пользователем анализируется, чтобы направить в правильном направлении (как правило, module/controller/action ), а затем запускает диспетчер. В каждом из этих шагов у вас есть набор событий, вы можете управлять почти любым способом, который вы хотите изменить выполнения приложения.

Вы можете добавить события через метод Attach()  класса EventManager . Он принимает имя события для прослушивания, функция обратного вызова, которая вызывается при запуске события, и (опционально) параметр, определяющий приоритетные события. В последнем задается положительное целое число, по умолчанию равно 1. Чем выше число, тем выше приоритет и раньше выполняется.

События могут быть вызваны с использованием метода trigger() , который также принадлежит EventManager . Его параметры имя событий, в контексте, который обычно представляет собой экземпляр объекта, который имеет событие (или null , если вы используете анонимные функции), и массив, содержащий параметры для передачи в обработчик событий. Простой пример:



attach(
   'myEvent',
   function($event) {
      $parameters = $event->getParams();
      echo 'The given name is ' . $parameters['name'] . ' ' . $parameters['surname'];
   },
   100
);

// Fire the event
$parameters = array('name' => 'Viktor', 'surname' => 'Klim');
$event->trigger('myEvent', null, $parameters); ?>


В заключение

В этой статье вы узнали об основных изменениях в Zend Framework 2:

  • Новая система загрузки, основанная на Composer и Pyrus, для установки.
  • Новые MVC архитектуры, основанной на событиях
  • Более высокая производительность
  • Новый класс автозагрузки системы
  • Zend Framework 2 использует несколько новых шаблонов проектирования, как менеджер событий и зависимостей, которые помогут вам отделить код

В Zend Framework 2 теперь широкий спектр новых возможностей и улучшений, которые были введены в новой версии. Эта статья описывает не всё, а только основное. Вы можете скачать копию Zend Framework 2 и исследовать все изменения самостоятельно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML -теги и атрибуты: <a href= http://pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>