ZF2:自动加载库没有命名空间(ZF2: autoloading libraries without

2019-09-01 22:46发布

以前我一直在使用,共同使用的命名空间与Zend框架2.现在我需要使用第三方库只去过图书馆不使用的命名空间,我似乎不能使它工作。 我通过作曲家安装了它,它安装罚款到vendor目录。 我想,如下所示使用它:

$obj = new \SEOstats();

结果表明类找不到一个致命的错误。 我曾尝试手动配置StandardAutoloader ,但至今没有任何的运气。 我认为,自动加载将自动为我作曲,通过安装时完成,但我想这也不是没有命名空间的情况下? 我还没有看到在自动加载磁带库的参考文件生成的作曲家。 我想我必须做手工 - 但如何?

提前致谢。

Answer 1:

您可以使用文件类映射按键。

例如,考虑这个composer.json:

{
    "require": {
        "vendor-example/non-psr0-libraries": "dev-master",
    },
    "autoload":{
        "files": ["vendor/vendor-example/non-psr0-libraries/Library01.php"]
    }
}

使用文件的关键,那么你可以使用

$lib = new \Library01();

当你需要加载包含类的多个文件使用类映射键。 该composer.json是:

{
    "require": {
        "vendor-example/non-psr0-libraries": "dev-master",
    },
    "autoload":{
        "classmap": ["vendor/vendor-example/non-psr0-libraries/"]
    }
}

作曲家将扫描.php然后.inc文件指定的目录配置为每个文件/类自动加载机内。

欲了解更多信息,您可以检查http://getcomposer.org/doc/04-schema.md#files和http://getcomposer.org/doc/04-schema.md#classmap

如果你是一个命名空间下在创建对象时,必须使用“\”(根命名空间),否则你将使用当前命名空间下的Library01类(如果你有一个,如果你没有一个你会得到一个错误)。



文章来源: ZF2: autoloading libraries without namespaces