在composer.json
我有以下数据:
{
"require": {
"slim/slim": "2.*",
},
"autoload": {
"psr-0": {
"lib": "lib/"
}
}
}
lib
文件夹位于vendor
文件夹旁边。在lib里面,我有一个名为Decorator.php
的班级,我的班级名称是Decorator
,如下所示:
namespace lib;
class Decorator
{
public function OutputDecorate()
{
return true;
}
}
我运行php compooser.phar update
并收到消息Nothing to install or update blah blah blah
。
为了更好地理解,这是项目文件夹结构的一部分:
现在,当我想要实例化我的课程时,我无法访问我的课程。
use lib;
class Collection {
public $decorator;
public function __construct() {
$this->decorator = new Decorator();
}
答案 0 :(得分:5)
我使用的是psr-4,然后我的课程完全加载了。
这是我的composer.json。
{
"autoload": {
"psr-4": {
"ComposerTest\\Models\\": "App/Models",
},
}
}
文件夹结构是
- >应用
- >模型
-->Product.php
答案 1 :(得分:3)
你应该这样做:
use lib\Decorator;
如果您希望能够在代码中执行new Decorator();
。
PHP use语句只包含一个类,它不会导入整个名称空间。
您是一名正在恢复的Java程序员吗?
对于PSR-0,composer.json中的类声明需要指向包含目录而不是顶级命名空间。例如我认为应该是:
"psr-0": {
"lib": "./"
}
或
"psr-0": {
"lib": ""
}