【问题标题】:PHP autoload can't find the class in php projectPHP 自动加载无法在 php 项目中找到类
【发布时间】:2022-11-15 16:56:27
【问题描述】:

Project file structure 我越来越

 127.0.0.1:52368 [500]: GET /controllers/login - Uncaught Error: Class "App\Core\Database" not found in /path/to/my/Php/project/src/controllers/index.php:9
Stack trace:
#0 {main}
  thrown in  /path/to/my/Php/project/src/controllers/index.php on line 9

并且该类引发错误

<?php

namespace App\controllers;

use App\Core\Database;

//$conn = Database::getConnection();
try {
    $conn = new Database(__DIR__ . './../config.php');
} catch (\Exception $e) {
}
$query = "SELECT id, username, image, aboutme
            FROM users
                 LEFT JOIN persons on users.id = persons.user_id
            LIMIT 24";
$tbh = $conn->prepare($query);
$tbh->execute();
$persons = $tbh->fetchAll();
require_once basename("/") . 'views/index.view.php';

还有我的 autoload_classmap.php

return array(
    'App\\Core\\Database' => $baseDir . '/src/Core/Database.php',
    'App\\Core\\DotEnv' => $baseDir . '/src/Core/DotEnv.php',
    'App\\Core\\Router' => $baseDir . '/src/Core/Router.php',
    'App\\Entity\\Person' => $baseDir . '/src/Entity/Person.php',
    'App\\Entity\\User' => $baseDir . '/src/Entity/User.php',

我正在启动服务器来源目录 : php -S localhost:8000 任何帮助,将不胜感激。谢谢你。

【问题讨论】:

  • 你尝试过什么来解决这个问题?你卡在哪儿了?你怎么称呼那个index.php?我没有看到你在哪里包含自动加载器
  • App\Core\Database 类的命名空间呢?检查了吗?

标签: php class autoload psr-4


【解决方案1】:

您必须创建一个类并在其中添加数据。

准备($查询); $tbh->执行(); $persons = $tbh->fetchAll(); require_once 基名(“/”)。 'views/index.view.php'; }

【讨论】:

  • “你必须创建一个类”——这是什么意思?请在您的答案中添加一些解释和格式,以便其他人可以从中学习
猜你喜欢
  • 2016-05-06
  • 2020-11-03
  • 2012-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 2017-02-01
  • 2019-05-16
相关资源
最近更新 更多