如果您打开您的 zend 库,您可以看到名为 Acl 的文件夹以及 Acl.php 和 Zend 的其他库也是如此。我想知道为什么 Zend 这样做?这背后的逻辑是什么??
问问题
41 次
2 回答
4
这是因为:
- 类的命名约定
- 类 <-> 文件名(路径)关系的约定
如果您有一个与其他类相关的类,则相应地命名它们是合乎逻辑的,例如Zend_Form_Element
and Zend_Form
。
现在你来看看类名和文件名/路径之间的关系。由于规则很简单:用文件路径替换_
类名/
,你最终得到:
Zend_Form
-> Zend/Form
(.php)
和
Zend_Form_Element
-> Zend/Form/Element
(.php)
这就是您获得文件Form.php
和目录的方式Form
。
于 2012-05-09T11:14:57.013 回答
3
这样你就不需要写代码了require_once'Zend/Acl.php'
Zend 在 spl 自动加载器堆栈上注册它的自动加载器。当你这样做
$acl = new Zend_Acl();
没有 require 或 include 。PHP 要求 Zend 自动加载器找到可以找到 Zend_Acl 类定义的文件。Zend 自动加载器的回应是将输入“Zend_Acl”替换'_'
为目录分隔符并在末尾添加“.php”扩展名并include('Zend/Acl.php') ;
自行执行。
由于库目录是 php include_path 的一部分,因此它可以工作。
于 2012-05-09T11:15:17.830 回答