在Zend Framework中使用任何类/命名空间

时间:2009-10-15 16:29:02

标签: php zend-framework import namespaces zend-autoloader

  

编辑:其他问题:

     
      
  • 我必须在new NAMSPACE_CLASSNAME
  • 的末尾添加'.php'   
  • 我可以访问控制器/模型中的任何Zend包吗?   例如:
  •   
     
    

/ *控制器//方法//在* /

中          

方法$ client = new     一个Zend_Http_Client( 'http://example.org',     阵列(         'maxredirects'=> 0,         'timeout'=> 30));

  

你好,

正如我已经问过How to add 3rd party lib to the ZendFramework,我也想问一下,我的图书馆是否可用于controllersmodelsviews等。 注册命名空间并自动加载其类意味着,如果我注册'MyClassXY_'启用了使用'MyClassXY_someMethod'

我的问题的另一部分是关于在我的控制器中使用任何Zend内部类/组件/方法。 正如我从CakePHP所知,我可以App::import('appIwantToLoad')或使用component在我的控制器/模型中提供任何CakePHP类/组件。 ZendFramework似乎有点不同: 我听说'factory'方法使用放入工厂方法的参数数组来实例化Cache Object

如果您仍然不明白我的问题是什么,我会尝试给您一个简单的例子:

我坐在我的控制器前面,我想访问ZendFramework的ACL或Cache模块。 我没有设置任何特定的命名空间来加载(只是'Default_'加载),我没有设置任何特定的资源加载(除了FrontController和所有其他基本的MVC资源)。

现在我可以使用($Namespace_Module_AdditionalStuff$ZendModuleXY = $Zend_Module_AdditionalStuff::constructionMethod全局访问此类或该类或方法?

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果为MyClassXY lib设置自动加载,则可以使用该目录下的任何类。 E.g:

//if there is library/MyClassXY/Foo.php with class MyClassXY_Foo
new MyClassXY_Foo
//is valid

b)您可以将引导资源存储在Zend_Registry

Zend_Registry::set('dbConnection', $resource);

class App_Another_Class
{
    /* */
    $resource = Zend_Registry::get('dbConnection');
}