Php 使用名称空间和“未找到类”时出错;使用「;

Php 使用名称空间和“未找到类”时出错;使用「;,php,class,import,namespaces,Php,Class,Import,Namespaces,我是PHP新手,我正在学习一门在线课程(出于这个原因,我没有使用自动加载或任何其他方式加载类) 我的问题是我的控制器类(我在其中使用“use”)无法看到我的模型类(我在其中声明了名称空间) 错误是: 致命错误:未捕获错误:在第20行的C:\xampp\u php729\htdocs\Freeblog\App\Controllers\postController.php中找不到类“App\Models\Post” 这是我的密码: PostController.php namespace App\

我是PHP新手,我正在学习一门在线课程(出于这个原因,我没有使用自动加载或任何其他方式加载类)

我的问题是我的控制器类(我在其中使用“use”)无法看到我的模型类(我在其中声明了名称空间)

错误是:

致命错误:未捕获错误:在第20行的C:\xampp\u php729\htdocs\Freeblog\App\Controllers\postController.php中找不到类“App\Models\Post”

这是我的密码:

PostController.php


namespace App\Controllers;

use App\Models\Post;

class PostController {

    protected $layout = __DIR__ . '/../../Layout/index.template.php';
    protected $conn;
    public $content;
    public $posts;
    protected $myPost;

    public function __construct(\PDO $conn) {
        $this->conn = $conn;

        try {

            $this->myPost = new Post($conn);
        } catch (Exception $e) {
            die($e->getMessage());
        }
        $this->content = $this->process();
    }
....
} 

Post.php:

namespace App\Models;
use \PDO;


class Post {

    protected $conn;

    public function __construct(PDO $conn){
        $this->conn = $conn;

    } 
...
}
这是项目结构:


由于您没有使用自动加载,所以不会加载除控制器以外的目录中的文件

所以,如果您不想使用自动加载,您应该使用include语句或require语句手动包含文件(位于其他目录中的文件)。(在PostController.php文件中包含Post.php文件)


正如您在评论中提到的,必须加载正在工作的其他文件,因为它们存在于同一目录中(相同的软件包在这里并不重要,但相同的目录对加载其他文件很重要)。

那么您希望如何包含(加载)文件如果你不使用任何自动加载?我不知道我参加了一个课程来学习:)在其他两个php文件中,我做了同样的事情,它工作了。。唯一的区别是它们在同一个包中(但我尝试在同一个包中移动Post和PostController,但不起作用),非常感谢!我在index.php中缺少了“require”部分。不幸的是,我关注的是这两个文件,而不是其他文件:(