Какой у вас самый распространенный универсальный класс, который вам приходилось писать для ZF? - PullRequest
0 голосов
/ 20 августа 2009

Я только что перешел с ZF 1.6 на ZF 1.9, с тех пор, как я начал с него, произошли многочисленные изменения, и я должен провести рефакторинг некоторых своих библиотек.

Чтобы ничего не забыть и иметь отличную универсальную библиотеку, в которой я могу выбирать элементы, мне было интересно, какие ваши наиболее используемые универсальные классы вы должны были написать для ZF?

Я думаю, например, о классическом помощнике baseUrl или о некотором внедрении модели предметной области / Active Record / Collection.

Для меня (и, возможно, для кого-то другого) будет очень полезно подготовить некоторые инструменты, которые я мог бы забыть в будущем!

спасибо

Ответы [ 2 ]

1 голос
/ 20 августа 2009

ммм общие классы? Ну, я использую адаптер Auth, ACL, Module Controller и класс DataGrid, это моя верхняя часть списка классов, которые я часто использую в своих проектах, и они достаточно универсальны, и отлично работают на всех версиях ZF протестировали.

0 голосов
/ 01 сентября 2009

Вещи, которые я использую снова и снова, - это некоторые помощники в действии. Один загружает и кэширует Модели, другой проверяет параметры, другой управляет предупреждением об ошибках и информационными сообщениями (аналогично flashMessenger, за исключением того, что он работает независимо от того, перенаправляете ли вы _forward или перенаправляете их или обращаетесь к ним внутри текущего запроса). Также некоторые настраиваемые элементы управления формой (например, кнопка «Сохранить» и «Отмена», которые появляются рядом друг с другом без метки) и некоторые помощники представления, которые возвращают href, если у пользователя есть права доступа ACL для посещения модуля / представления / действия. Они являются общими и находятся в общей директории включения, используемой всеми проектами.

У меня была целая куча универсальных классов (например, расширение Zend_Controller_Action), но по мере созревания инфраструктуры они стали реже и реже, потому что поведение можно переносить на более мелкие, более общие помощники и утилиты, которые можно загружать по запросу, по требованию. [Я использую ZF с 0,9]

Модель помощника ниже

//-------------------------------------------------------------------------
/*! \brief loads and caches models

    usage in an Action controller: eg
    $users = $this->_helper->model( 'User' );
    loads MODEL_PATH . User.php

    Idea stolen from
    http://fedecarg.com/wiki/Module-specific_Models
*/
class LSS_Controller_Action_Helper_Model extends Zend_Controller_Action_Helper_Abstract
{
    const PREFIX = 'MODEL_';

    //-------------------------------------------------------------------------
    /*! \brief return a global instance of the specified model.
        Uses Zend_registry to store a cached instance of the model so we don't have to load it
        in each function. 
        You can use sub directories by passing in the class name eg Customer_Session
        \param $type string type of value to return
        \return model instance
    */
    function direct( $name )
    {
        $regName = self::PREFIX . $name;
        if (Zend_Registry::isRegistered( $regName )) return Zend_Registry::get( $regName );

        require_once( MODEL_PATH . str_replace( '_', '/', $name ) . '.php' );
        $instance = new $name;
        Zend_Registry::set( $regName, $instance );
        return $instance;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...