如何自定义Zend_Tool输出?

时间:2009-08-09 20:34:40

标签: php zend-framework zend-tool

我想在我的项目中使用 Zend_Tool (ZF 1.9),但我希望能够自定义新文件的默认输出。例如,所有控制器都应该使用phpdoc标记和许可信息为输出预先设置一个特定的标题,以避免我不得不将其添加为额外的步骤。

此外,对于这个特定项目(但不是所有其他项目),我需要控制器扩展除默认Zend控制器之外的其他东西,因为我已经扩展了某些特定功能。

文档提到了做这些事情的能力,但它没有说清楚。

据我所知,我可以设置一个〜/ .zf目录(在基于*** nix的系统上)并在那里包含自定义提供程序。但是,这将是机器范围的,而不是仅限于单个项目范围。此外,虽然这将添加新的提供商,但它(似乎)不允许我自定义现有提供商的功能。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

基本上就是雅各所得到的:你说的话似乎是简单的课堂延伸。这里有一个非常简单的幻灯片介绍来扩展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实例构建多个applcation扩展。

答案 1 :(得分:0)

当您定义特定类时,您自然可以继续覆盖。您可以声明它们是基于您的类,而不是ZF类。

对于特定项目,您可以将类路径修改为ZF的自定义版本,或者可能具有自定义覆盖文件夹。使用自定义文件夹,您的更改不是机器范围的,但您的zend框架也不是。在基于*** nix的系统上,您可以利用符号链接将自己保留在ZF的一个副本中。

您是否尝试修改源代码以包含许可证标头和PHPdoc?如果是这样,我过去所做的就是有一个简单的构建步骤,可以添加您需要的信息。每种文件类型都可以包含适当的标头信息。你可以使用漂亮的标签告诉系统忽略文件,或只在控制器上运行。

祝你好运, 雅各布

相关问题