PHP fatal error: " Class '...' not found in ... on line
PHP fatal error: " Class '...' not found in ... on line
我正在尝试为学校项目构建一个 API,
我想我一切都正确,但出于某种原因,代码没有读取使用行。
use repository\PDOPersonRepository;
use repository\PDOEventRepository;
use view\PersonJsonView;
use view\EventJsonView;
use controller\PersonController;
$user = 'root';
$password = '';
$database = 'wp1';
$pdo = null;
try {
$pdo = new PDO("mysql:host=127.0.0.1;dbname=wp1",
$user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$personPDORepository = new PDOPersonRepository($pdo);
$personJsonView = new PersonJsonView();
$personController = new PersonController($personPDORepository, $personJsonView);
$eventPDORepository = new PDOEventRepository($pdo);
$eventJSonView = new EventJsonView();
$eventController = new EventJsonView($eventJSonView, $eventPDORepository);
Fatal error: Class 'repository\PDOPersonRepository' not found in C:\xampp\htdocs\Werkpakket1\app.php on line 22
phpstorm 没有在代码中给出错误,所以我真的不明白为什么会这样
use
行包括 类 基于它们的 namespace 而不是它们的物理位置。它不同于 include
或 require
。如果 use
关键字要查找 类,则必须首先包含那些 类 的代码。
另一种方法是使用自定义 autoloader,它可以将命名空间与 类 的目录相匹配,以便仅在您需要 (use
) 时自动加载它们.
换句话说,您上面的代码需要添加类似以下内容的前缀:
inculde 'Person.php';
该文件将包含如下内容:
namespace repository;
class PDOPersonRepository { ... }
您可以在一个文件中使用多个命名空间,但这不是常见的做法。
我正在尝试为学校项目构建一个 API, 我想我一切都正确,但出于某种原因,代码没有读取使用行。
use repository\PDOPersonRepository;
use repository\PDOEventRepository;
use view\PersonJsonView;
use view\EventJsonView;
use controller\PersonController;
$user = 'root';
$password = '';
$database = 'wp1';
$pdo = null;
try {
$pdo = new PDO("mysql:host=127.0.0.1;dbname=wp1",
$user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$personPDORepository = new PDOPersonRepository($pdo);
$personJsonView = new PersonJsonView();
$personController = new PersonController($personPDORepository, $personJsonView);
$eventPDORepository = new PDOEventRepository($pdo);
$eventJSonView = new EventJsonView();
$eventController = new EventJsonView($eventJSonView, $eventPDORepository);
Fatal error: Class 'repository\PDOPersonRepository' not found in C:\xampp\htdocs\Werkpakket1\app.php on line 22
phpstorm 没有在代码中给出错误,所以我真的不明白为什么会这样
use
行包括 类 基于它们的 namespace 而不是它们的物理位置。它不同于 include
或 require
。如果 use
关键字要查找 类,则必须首先包含那些 类 的代码。
另一种方法是使用自定义 autoloader,它可以将命名空间与 类 的目录相匹配,以便仅在您需要 (use
) 时自动加载它们.
换句话说,您上面的代码需要添加类似以下内容的前缀:
inculde 'Person.php';
该文件将包含如下内容:
namespace repository;
class PDOPersonRepository { ... }
您可以在一个文件中使用多个命名空间,但这不是常见的做法。