Zend Library中具有相同名称的文件和文件夹的用途是什么?

时间:2012-05-09 10:25:11

标签: zend-framework

如果您打开zend库,您可以看到名为Acl的文件夹以及Acl.php& Zend的其他库也是如此。 我很奇怪为什么Zend这样做? 什么是这背后的逻辑?

2 个答案:

答案 0 :(得分:4)

这是因为:

  1. 类的命名约定
  2. 类的约定< - >文件名(路径)关系
  3. 如果您有一个与其他类相关的类,则相应地命名它们是合乎逻辑的,例如Zend_Form_ElementZend_Form

    现在你来看一下类名和文件名/路径之间的关系。由于规则很简单:在文件路径中使用_替换类名中的/,最终得到:

    Zend_Form - > Zend/Form(PHP)

    Zend_Form_Element - > Zend/Form/Element(PHP)

    这是您获取文件Form.php和目录Form的方式。

答案 1 :(得分:3)

这样做不需要编写代码require_once'Zend/Acl.php'

Zend在spl自动加载器堆栈上注册其自动加载器。当你这样做

$acl = new Zend_Acl();

没有要求或包含。 Php要求Zend自动加载器找到可以找到类Zend_Acl定义的文件。 Zend自动加载器回复的做法是将输入'Zend_Acl'替换'_'替换为目录分隔符,并在末尾添加'.php'扩展名并单独执行include('Zend/Acl.php') ;

因为库目录是php include_path的一部分所以它可以工作。