Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend Library中同名文件和文件夹的用途是什么?_Zend Framework - Fatal编程技术网

Zend framework Zend Library中同名文件和文件夹的用途是什么?

Zend framework Zend Library中同名文件和文件夹的用途是什么?,zend-framework,Zend Framework,如果打开zend库,您可以看到名为Acl的文件夹以及Acl.php&zend的其他库也是如此。 我想知道Zend为什么这么做?? 这背后的逻辑是什么?这是因为: 类的命名约定 类文件名(路径)关系的约定 如果您有一个与其他类相关的类,那么相应地命名它们是合乎逻辑的,例如Zend\u Form\u Element和Zend\u Form 现在我们来讨论类名和文件名/路径之间的关系。因为规则很简单:用文件路径中的/替换类名中的\,最后得到: Zend\u Form->Zend/Form(.php)

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

  • 类的命名约定
  • 类文件名(路径)关系的约定
  • 如果您有一个与其他类相关的类,那么相应地命名它们是合乎逻辑的,例如
    Zend\u Form\u Element
    Zend\u Form

    现在我们来讨论类名和文件名/路径之间的关系。因为规则很简单:用文件路径中的
    /
    替换类名中的
    \
    ,最后得到:

    Zend\u Form
    ->
    Zend/Form
    (.php)

    Zend\u Form\u Element
    ->
    Zend/Form/Element
    (.php)


    这就是您获取文件
    Form.php
    和目录
    Form

    的方式,这样您就不需要编写代码
    require\u once'Zend/Acl.php'

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

    $acl = new Zend_Acl();
    
    没有要求或包括。Php要求Zend autoloader找到可以找到Zend_Acl类定义的文件。Zend autoloader的回应是将输入“Zend_Acl”替换为带有目录分隔符的“
    ,并在末尾添加“.php”扩展名,然后执行
    include('Zend/Acl.php')本身

    由于库目录是php包含路径的一部分,因此它可以工作。

    请阅读此内容