Php 在Zend Framework中,带句点的目录是否会中断基于命名空间的自动加载解析?

Php 在Zend Framework中,带句点的目录是否会中断基于命名空间的自动加载解析?,php,zend-framework,namespaces,zend-autoloader,Php,Zend Framework,Namespaces,Zend Autoloader,我的图书馆文件夹中有一个以我的网站命名的文件夹。文件夹路径类似于: ~\www\library\myWebsite.com 如果我使用Zend autoloader加载库路径中所有内容的名称空间,那么从该文件自动加载名称空间如下的类时会遇到任何问题: \myWebsite.com\myClass::myFunction 我在网上查找了有关这方面的文档,但找不到任何关于以这种方式使用句点的信息。最简单的方法是尝试一下 如果它不起作用,你可以编写一个自定义的自动加载器来让它起作用。我对php名称空间

我的图书馆文件夹中有一个以我的网站命名的文件夹。文件夹路径类似于:

~\www\library\myWebsite.com

如果我使用Zend autoloader加载库路径中所有内容的名称空间,那么从该文件自动加载名称空间如下的类时会遇到任何问题:

\myWebsite.com\myClass::myFunction


我在网上查找了有关这方面的文档,但找不到任何关于以这种方式使用句点的信息。

最简单的方法是尝试一下

如果它不起作用,你可以编写一个自定义的自动加载器来让它起作用。我对php名称空间没有太多经验,但是autoloader看起来像这样,我想您需要稍微修改一下,以确定给定类名的正确文件路径:

<?php
class My_Loader_Autoloader_MyWebsite implements Zend_Loader_Autoloader_Interface {

    /**
     * (non-PHPdoc)
     * @see Zend_Loader_Autoloader_Interface::autoload()
     */
    public function autoload($class) {

        if (strtolower(substr($class, 0, 9)) == 'mywebsite') {
            $file = realpath(APPLICATION_PATH . '/../library/myWebsite.com/' . $class);
            if ($file) {
                require_once $file;
                return $class;
            }
        }
        return false;
    }
}
如果这个类必须在myWebsite.com目录中,那么你可以作弊并在其中加入一个require:

 require_once(APPLICATION_PATH . '/../library/myWebsite.com/Loader/Autoloader/MyWebsite.php');

我试过了,复杂的是PHP。我认为Zend注册名称空间很好,因为当我调用\Zend\u Load\u Autoloader::getRegisteredNamespaces时,它表明它已注册。但是当我从完全限定的名称空间调用静态方法时,php给出了一个错误:

Fatal error: Undefined constant 'myWebsite' in /home/jesse/www/application/controllers/MyController.php on line 15 
在解析过程中,PHP似乎正在终止命名空间标识符。句号字符。这是令人失望的,因为对我来说,拥有一个以网站命名的图书馆对我的设计很重要

我将把目录重命名为myWebsitecom,或者可能将.com作为自己的子目录


myWebsite\com并将其合并到我的命名空间树中,如:\MyNamespace\com\MyClass::myFunction

试一试怎么样?我现在不记得了,但我想它应该有用。。是串联运算符。在PHP的任何标识符中,它都不是合法字符。
Fatal error: Undefined constant 'myWebsite' in /home/jesse/www/application/controllers/MyController.php on line 15