2010-10-02 4 views
4

от того, что я знаю, есть только помощник действий & Просмотреть вспомогательный доступ в zend framework.Model Helper Zend

Есть ли какая-нибудь вспомогательная модель?

или как мы можем реализовать вспомогательную модель?

ответ

2

В ZF нет ничего, что действительно называется помощником модели, но если ваша модель обращается к таблице базы данных, вы можете создать ее как класс, который расширяет Zend_Db_Table_Abstract. См. Примеры в руководстве ZF: http://framework.zend.com/manual/en/zend.db.table.html

0

Сначала я добавляю эту строку в свой файл конфигурации, т.е. application.ini:

includePaths.library     = APPLICATION_PATH "/../library" 

Тогда я добавить класс

class App_Model_Helper { 
    public static function resultAggregation($results) {} 
    //.... all the helper you need 
} 

в файле, помещенного в ..library\App\Model\Helper.php

Это единственный способ я нашел фактор код, я использую в модели.

Вспомогательный метод может быть вызван из модели:

App_Model_Helper::resultAggregation($results); 

Я знаю, это нарушает ООД, так что если кто имеет лучшее и чистое решение я бы очень признателен.

1

В Zend Framework нет ничего определенного для помощников моделей, например, для помощников представлений, однако вы можете обойти его и по-прежнему сохранять дизайн приложения (не используйте библиотечную папку).

Как мне это сделать, добавляя папку с Helper внутри моделей один. Затем вы должны назвать свой класс следующим образом:

class Application_Model_Helper_DateHelper 
{ 
... 
} 

Тогда автозагрузчик позаботится о том, чтобы найти его и загрузить.

К сожалению, это именование немного отличается от того, как вы делаете это в папке видов. В просмотрах папки можно создать папку с именем хелпер и использовать именование как:

class Zend_View_Helper_DarkBlueMenu extends Zend_View_Helper_Abstract 
{ 
... 
} 

Однако, если имя папки внутри моделей как хелпер то классов внутри него есть называться следующим образом:

class Application_Model_helpers_DateHelper 
{ 
... 
}