以前我一直在使用,共同使用的命名空间与Zend框架2.现在我需要使用第三方库只去过图书馆不使用的命名空间,我似乎不能使它工作。 我通过作曲家安装了它,它安装罚款到vendor
目录。 我想,如下所示使用它:
$obj = new \SEOstats();
结果表明类找不到一个致命的错误。 我曾尝试手动配置StandardAutoloader
,但至今没有任何的运气。 我认为,自动加载将自动为我作曲,通过安装时完成,但我想这也不是没有命名空间的情况下? 我还没有看到在自动加载磁带库的参考文件生成的作曲家。 我想我必须做手工 - 但如何?
提前致谢。
您可以使用文件和类映射按键。
例如,考虑这个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类(如果你有一个,如果你没有一个你会得到一个错误)。