【发布时间】:2014-02-28 03:54:50
【问题描述】:
我从 Laravel 4.1 收到以下错误。
反射异常 Acme\Services\TaskCreatorService 类不存在。
提前感谢您的帮助。
下面是定义类的代码。它位于app\Acme\Services。
<?php namespace Acme\Services;
use \Acme\Validators\TaskValidator;
use \Acme\Validators\ValidationException;
use \Acme\Validators\Validator;
class TaskCreatorService {
protected $validator;
public function __construct(TaskValidator $validator) {
$this->validator = $validator;
}
public function make(array $attributes) {
//determone whether data is valid
if ($this->validator->isValid($attributes)) {
Task::create([
'title' => $attributes['title'],
'body' => $attributes['body'],
'user_id' => $attributes['assign']
]);
return true;
}
throw new ValidationException('Task validation failed', $this->validator-getErrors());
//create the new task
//
//if not throw exception
}
}
我还在自动加载部分将其添加到composer.json。
"psr-0": {
"Acme": "app/"
}
【问题讨论】:
-
似乎任何试图使用您的类的代码都没有配置为自动加载该命名空间
-
正如 Antonio 在下面所说,虽然在使用 PSR-0/4 时通常不需要执行
composer dump-autoload,但您需要在第一次编辑composer.json时执行此操作文件来指定这个,只是为了让 Composer 真正知道这个 PSR 规则。这是这里的问题吗?
标签: php class laravel laravel-4