Создание общего класса контроллера для модульной структуры Zend - PullRequest
1 голос
/ 10 января 2012

Я использую модульную структуру Zend для проекта.У меня ниже структура каталогов

 application/
   modules/
    default/
        controllers/
            IndexController.php
            FooController.php
        models/
        views/
            scripts/
                index/
                foo/
            helpers/
            filters/
    blog/
        controllers/
            IndexController.php
        models/
        views/
            scripts/
                index/
            helpers/
            filters/
    news/
        controllers/
            IndexController.php
            ListController.php
        models/
        views/
            scripts/
                index/
                list/
            helpers/
            filters/

Я хочу создать общий класс контроллера, который я бы расширил в контроллере всего модуля

Например, я хочу создать класс, подобный приведенному ниже

 class My_Common extends Zend_Controller_Action 
 {

  public function init()
  {

  }
}

Во всех контроллерах модуля я хочу расширить его, как

 class News_IndexController extends My_Common
 {
     public function init()
 {

 }

 }

Как мне этого добиться.Пожалуйста помоги .Я пытался создать его в контроллере по умолчанию, но он не работает.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Этого легко добиться, добавив пространство имен my в папку библиотеки. И если вы работаете с библиотекой Zend, структура папок будет выглядеть так:

the_common_folder_structure/ 
.../
library/
    zend/
    myNamespace/
      Controller/
        Common.php

Тогда в ваших модулях просто расширьте MyNamespace_Controller_Common.

0 голосов
/ 15 сентября 2013

Я бы сделал это, добавив папку «My» в каталог библиотеки и затем скопировав структуру класса Zends, например:

Создать файл

library / My / Controller / Action.php с именем класса: My_Controller_Action

Убедитесь, что вы включили: autoloaderNamespaces.my = "My_" в файл application.ini, это включает в себя каталог My для вашего автозагрузчика.

После этого вы сможете расширить My_Controller_Action с любого из ваших контроллеров модулей.

...