Как настроить вывод Zend_Tool?

Я хотел бы использовать Zend_Tool (ZF 1.9) с моим проектом, но я хотел бы иметь возможность настроить вывод новых файлов по умолчанию. Например, все контроллеры должны иметь специальный заголовок, предварительно добавленный к выводу с разметкой phpdoc и информацией о лицензировании, чтобы избежать необходимости добавлять это в качестве дополнительного шага.

Кроме того, для этого конкретного проекта (но не для всех других проектов) мне нужно, чтобы контроллеры расширяли что-то отличное от стандартного контроллера Zend, поскольку я расширил его для некоторых конкретных функций.

Документация намекает на способность делать эти вещи, но это не очень понятно.

Из того, что я могу сказать, я могу настроить каталог ~/.zf (в системах на основе ***nix) и включить туда собственных провайдеров. Однако это будет охватывать всю машину, а не ограничиваться одним проектом. Кроме того, хотя это добавит новых провайдеров, это (на первый взгляд) не позволяет мне настраивать функциональность существующих провайдеров.

Любая помощь здесь будет принята с благодарностью!

2 ответа

По сути, то, что достиг Джейкоб: то, о чем ты говоришь, похоже на простое расширение класса. Здесь есть очень простое введение в расширение Zend Framework:

http://www.slideshare.net/PHPBelgium/extending-zend-framework-presentation

Есть также много других ресурсов, доступных онлайн для расширения Zend Framework. Вы можете создавать отдельные исходные деревья для разных проектов, а функциональные возможности, общие для разных проектов, могут быть добавлены к абстрактным классам в общих папках. Нечто подобное встречается редко, но я обнаружил, что оно работает в таких ситуациях:

class My_Component_HelloProvider extends My_Common_Component_HelloProvider
{
    public function say()
    {
        echo 'Hello from my provider!';
    }

    // public function do() is inherited

}

class My_Common_Component_HelloProvider
    implements Zend_Tool_Framework_Provider_Interface
{
    public function do()
    {
        // do something
    }
}

Дайте мне знать, если это отличается от того, что вы пытаетесь сделать, но нет никаких причин, по которым вы не можете создать несколько расширений приложения из одного экземпляра ZF.

Естественно, вы можете продолжать переопределять при определении определенных классов. Вы можете объявить, что они основаны на вашем классе, а не на классе ZF.

Для конкретных проектов вы можете изменить ваш classpath, чтобы он был пользовательской версией ZF или, возможно, иметь собственную папку переопределения. В случае с пользовательской папкой ваши изменения не распространяются на всю машину, но и ваша Zend Framework. в системах, основанных на ***nix, вы можете использовать символические ссылки, чтобы сохранить себя в одной копии ZF.

Вы пытаетесь изменить свой исходный код, включив заголовки лицензий и PHPdoc? Если так, то, что я сделал в прошлом, это простой шаг сборки, который добавляет необходимую информацию. Каждый тип файла может иметь соответствующую информацию заголовка. Вы можете иметь хорошие теги, чтобы система игнорировала файлы или работала только на контроллерах.

Удачи, Джейкоб

Другие вопросы по тегам