php - 找不到类 - 当我使用命名空间时
问题描述
我学习使用命名空间,当我想使用这些名称时遇到错误:
Fatal error: Uncaught Error: Class 'Mehdi\Blog\Model\PDO' not found in C:\Users\Mehdi\Desktop\PROJETS Perso\PHP - EXO\Blog- Commentaires PHP\model\Manager.php on line 9
我将它用于我的模型和控制器:
- 控制器
- frontend.php -> 他需要我的 PostManager 类和 CommentManager 类,代码如下:
use Mehdi\Blog\Model\PostManager; use Mehdi\Blog\Model\CommentManager; require_once('model/PostManager.php'); require_once('model/CommentManager.php');
模型
- CommentManager.php -> 需要数据库,这里是代码:
namespace Mehdi\Blog\Model; use Mehdi\Blog\Model\Manager; require_once('Manager.php');
- Manager.php -> 有我的数据库,这里是代码:
namespace Mehdi\Blog\Model;
- PostManager.php -> 需要数据库,这里是代码:
namespace Mehdi\Blog\Model; use Mehdi\Blog\Model\Manager; require_once('Manager.php');
我的数据库 PDO 代码:
<?php
namespace Mehdi\Blog\Model;
class Manager
{
protected function dbConnect()
{
$bdd = new \PDO('mysql:host=localhost;dbname=lhairdut_newsletter;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
return $bdd;
}
}
解决方案
一切看起来都很乱。
- 尝试遵循文件夹结构,
\
并在每个 PDO 类之前加上反斜杠,我希望这是 的名称,因为您位于命名空间 something\blog\something 中。系统会认为这个类也属于这个命名空间,它不属于。使用反斜杠表示它属于它真正属于的根名称空间。
代码:
$bdd = new \PDO('mysql:host=localhost;dbname=lhairdut_newsletter;charset=utf8', 'root', '', array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION));
推荐阅读
- powershell - Set-ADuser extensionAttribute 不起作用,但标题之类的东西会
- c# - 为什么我的 Razor 'RenderSection' 不会被孙子视图继承?
- neo4j - Neo4j 可以在 MERGE 语句后添加 WHERE 子句吗?
- azure-functions - Azure 函数无法在 Azure 门户中下载 PowerShell Core 的托管依赖项
- c++ - 关闭对话框而不显示用户“exe 已停止工作”消息
- javascript - 如何访问另一个对象内的对象的属性
- html - 带有链接的 div 中的图像
- python - 结合两个图 i tensorflow 并仅优化中间模型
- java - 从服务器端单体到微服务的方式
- python-3.x - 无法使用点子