0
我正在学习所有关于PHP中的命名空间,但我没有弄清楚我在做什么错误?PHP致命错误:未捕获错误:类'Acme RegisterUser'未找到
这里是我的目录结构:
/review
├── index.php
├── RegisterUser.php
└── AuthController.php
的index.php
<?php
$registration = new Acme\RegisterUser;
$authController = new Acme\AuthController($registration);
$authController->register();
RegisterUser.php
<?php namespace Acme;
class RegisterUser
{
public function execute(array $data, $listener)
{
var_dump('registering the user');
$listener->userRegisteredSuccessfully();
}
}
和AuthController.php
<?php namespace Acme;
class AuthController {
protected $registration;
public function __construct(RegisterUser $registration, $listener) {
$this->registration = $registration;
}
public function register() {
$this->registration->execute([], $this);
}
public function userRegisteredSuccessfully() {
var_dump('created successsfully. redirect somewhere');
}
public function userRegisteredFailed() {
var_dump('created unsuccessfully. redirect back');
}
}
我在做什么错?
我使用的PHP版本PHP 7.1.0RC6 (cli) (built: Nov 9 2016 04:45:59) (NTS)
错误:
> $ php index.php [±master ●]
PHP Fatal error: Uncaught Error: Class 'Acme\RegisterUser' not found in /Users/dan/Desktop/oop/src/review/index.php:2
Stack trace:
#0 {main}
thrown in /Users/dan/Desktop/oop/src/review/index.php on line 2
Fatal error: Uncaught Error: Class 'Acme\RegisterUser' not found in /Users/dan/Desktop/oop/src/review/index.php:2
Stack trace:
#0 {main}
thrown in /Users/dan/Desktop/oop/src/review/index.php on line 2
如果您在完全限定的类名之前加上斜线(例如:new \ Acme \ RegisterUser),会发生什么情况? –
你如何包含包含这些类的文件?手动?自动加载磁带机? – Clive
您需要加载相应的类:http://php.net/manual/en/language.oop5.autoload.php –