Архив за месяц: Июнь 2013

PhpStorm Best Practices

Я уже несколько лет использую Jetbrains PhpStorm, начиная с самой первой версии. С каждым новым релизом он становится все лучше и радует все больше. (Последнее утверждение не касалось третьей версии, тогда пришлось вернуться обратно на двойку.) На мой взгляд это лучшая среда для разработки на PHP. Но на деле я не использовал ее даже на четверть. Но вот я увидел один замечательный вебинар, который рекомендую посмотреть и вам.

Upd. Смотрите также видео-туториалы по PhpStorm.

Отдельный лейаут для модуля в Zend Framework 2

Эта заметка является вольным (и неполным) переводом поста Эвана Коури «Module-specific layouts in Zend Framework 2«.

Нужно заметить, что название данного поста не совсем корректно, так как в ZF2 не существует ничего отдельного (специального) для модуля. На деле же речь идет об основном пространстве имен контроллера, которое совпадает с названием модуля.

Поэтому есть очень простой способ переключить лейаут для контроллеров отдельного модуля:

<?php
namespace MyModule;

use Zend\ModuleManager\ModuleManager;

class Module
{
    public function init(ModuleManager $moduleManager)
    {
        $sharedEvents = $moduleManager->getEventManager()->getSharedManager();
        $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
            // Это событие будет происходить только для контроллеров в MyModule
            $controller = $e->getTarget();
            $controller->layout('layout/alternativelayout');
        }, 100);
    }
}

Данное событие произойдет только при диспатче ActionController, который находится в пространстве имен MyModule, поэтому нет необходимости проверять, какой именно это модуль.