Концепции ООП:
- Абстракция
- Инкапсуляция
- Полиморфизм
- Наследование
Для примера мы имеем 2 url похожих на эти:
http://zf-tutorial/album/add – 200 – работает
http://zf-tutorial/album/add/ – 404 – запрос не может найти маршрут
Читать далее
Для примера создадим модуль с именем ZfCommons, который будет инициализировать переменную в Layout содержащую namespace модуля…
Читать далее
Создаём файл плагина module/MyModule/src/MyModule/Controller/Plugin/MyFirstPlugin.php
1 2 3 4 5 6 7 8 9 | <?php namespace MyModule\Controller\Plugin; use Zend\Mvc\Controller\Plugin\AbstractPlugin; class MyFirstPlugin extends AbstractPlugin { public function doSomething() { // ... } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | namespace Mod2; use Zend\ModuleManager\Feature\DependencyIndicatorInterface; class Module implements DependencyIndicatorInterface { public function getModuleDependencies() { return array('Mod1'); } public function getConfig() { /* common code here */ } public function getAutoloaderConfig() { /* common code here */ } } |
Если модуль Mod1 не был загружен перед модулем Mod2, то фреймфорк выведет сообщение исключения: Module “Mod2″ depends on module “Mod1″
Для примера, нам нужен модуль предоставляющий только контент Ajax, и не нужен слой(макет) во всех действиях. Мы можем сделать трюк, сократив в каждом контролере/действии избыточный код.