Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Php ZF2:自动加载不带名称空间的库_Php_Zend Framework2_Composer Php_Autoloader - Fatal编程技术网

Php ZF2:自动加载不带名称空间的库

Php ZF2:自动加载不带名称空间的库,php,zend-framework2,composer-php,autoloader,Php,Zend Framework2,Composer Php,Autoloader,以前,我只使用与Zend Framework 2一起使用名称空间的第三方库。现在我需要使用不使用名称空间的,我似乎无法使它工作。我通过Composer安装了它,它很好地安装在供应商目录中。我尝试使用它如下: $obj=new\SEOstats() 结果是一个致命错误,表明找不到该类。我曾尝试手动配置标准自动加载器,但到目前为止运气不佳。我原以为通过Composer安装时自动加载会自动完成,但我想如果没有名称空间,情况就不是这样了?在Composer生成的自动加载文件中,我没有看到任何对库的引用。

以前,我只使用与Zend Framework 2一起使用名称空间的第三方库。现在我需要使用不使用名称空间的,我似乎无法使它工作。我通过Composer安装了它,它很好地安装在
供应商
目录中。我尝试使用它如下:

$obj=new\SEOstats()

结果是一个致命错误,表明找不到该类。我曾尝试手动配置
标准自动加载器
,但到目前为止运气不佳。我原以为通过Composer安装时自动加载会自动完成,但我想如果没有名称空间,情况就不是这样了?在Composer生成的自动加载文件中,我没有看到任何对库的引用。我想我必须手动操作,但是怎么做呢


提前感谢。

您可以使用文件类映射

作为一个例子来考虑这个作曲家JSON:

{
    "require": {
        "vendor-example/non-psr0-libraries": "dev-master",
    },
    "autoload":{
        "files": ["vendor/vendor-example/non-psr0-libraries/Library01.php"]
    }
}
使用文件密钥,然后可以使用

$lib = new \Library01();
当需要加载包含类的多个文件时,请使用classmap键。composer.json将是:

{
    "require": {
        "vendor-example/non-psr0-libraries": "dev-master",
    },
    "autoload":{
        "classmap": ["vendor/vendor-example/non-psr0-libraries/"]
    }
}
Composer将在为每个文件/类配置自动加载程序的指定目录中扫描.php和.inc文件

欲了解更多信息,请查看和

如果在创建对象时位于命名空间下,则必须使用“\”(根命名空间),否则将在当前命名空间下使用Library01类(如果有,如果没有,则会出现错误)