如何在zend框架中添加新类和自动加载

时间:2011-09-30 14:06:37

标签: zend-framework

我是Zend框架的新手并且第一次使用它。我正在寻找简单的基础教程,我可以在很短的时间内阅读。如果我想在Zend库中添加新类,我也坚持下去。当我制作任何新的控制器时它也应该自动加载。

如果有,请发表意见。

此致

2 个答案:

答案 0 :(得分:7)

这帮助了我一开始:

http://www.zendcasts.com/

http://devzone.zend.com/search/results?q=autoload(只是搜索)

自动加载你的课程,这是我的方式:

将文件夹'My'创建到库/  在它创建文件夹'Utils'和Utils文件'Utils.php'所以路径是库/ My / Utils / Utils.php

对于此路径您必须调用class:class My_Utils_Utils {...}

并在configs / application.ini中添加

appnamespace =“申请”

autoloaderNamespaces.my =“我的_”

然后您可以使用名称空间My_和类My_Utils_Utils

在控制器中:$ test = new My_Utils_Utils();

答案 1 :(得分:0)

  • 我正在寻找简单的基础教程

    以下是我在Google上搜索时发现的一些教程:

    1. Official quickstart tutorial
    2. ZF-contributer常见的PadráicBrady的一本好书:Survive the deep end!
    3. http://akrabat.com/zend-framework-tutorial/
    4. 包含不同教程的页面:ZFTutorials.com
  • 如果我想在Zend库中添加新类

    ,我也坚持了下来

    您不应该向库本身添加新类,而是创建自己的库或在“models”文件夹/文件夹中添加类(如果使用模块化项目布局)。使用Zend_Loader_Autoloader及其子类实现自动加载。只要你遵循PEAR约定,即如果你有一个类MyLib_Database_Table,那么它应该在文件夹MyLib/Database内,文件名应该是Table.php。 (还要确保MyLib的父文件夹位于项目包含路径。

    要自动加载,只需使用new MyLib_Database_Table,如有必要,自动加载器将在后台加载该类。从1.10开始(我认为),自动加载器也完全支持PHP 5.3命名空间。即:

    // Filepath: lib\MyLib\Database\Table.php
    
    namespace MyLib\Database;
    class Table {
    }
    

    将使用相同的文件夹结构。代码示例:

    use MyLib\Database\Table;
    class IndexController extends Zend_Controller_Action
    {
       public function indexAction ()
       {
          $myTable = new Table();
       }
    }
    
  • 制作任何新控制器时自动加载

    我不太清楚你的意思。 ZF默认情况下没有任何依赖注入设置。但是如果这就是你的意思,你可以先实例化你的类而不要求它们。