gpt4 book ai didi

即使我已经指定了使用类,也找不到 PHP 命名空间和使用 fatal error 类

转载 作者:行者123 更新时间:2023-12-04 17:01:19 25 4
gpt4 key购买 nike

我在 PHP 中遇到命名空间的问题。例如,我有一个这样的文件

namespace App\Models\Abstracts;
abstract class Country{}
然后是另一个这样的文件
namespace App\Models;

use App\Models\Abstracts\Country;

class City extends Country{}
我总是得到

Fatal error: Uncaught Error: Class ... not found in ...


谁能帮我?
多谢。

最佳答案

为此,我建议您使用 PSR (psr-4)。
首先,让我们创建一个文件结构如下:
enter image description here
现在让我们初始化 Composer 来配置 psr-4。
跳转到项目的根目录(在这个例子中是 src 的根目录),然后运行:
你会被要求填写一些项目信息,跳过它

composer init


根目录下会创建一个名为composer.json的文件,我们来配置里面的psr-4。
{
"name": "root/project",
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
了解更多 psr-4
要悬停,我们只是告诉 PSR 将名称 App 指向目录 src,然后子文件夹的名称应该是您命名空间中的姓氏。
示例:
App => src directory 
App\Models => src/Models directory
等等
接下来,您应该通过以下方式生成自动加载
composer dump-autoload
最终的项目文件结构似乎是这样的:
enter image description here
我在根目录中创建了一个名为 index.php 的文件来测试我的代码,但首先,您应该需要我们刚刚执行的配置生成的自动加载。
<?php  
use App\Models\City;
require __DIR__.'/vendor/autoload.php';
$city = new City();
var_dump($city);
结果:
/var/www/myfm/index.php:9:
class App\Models\City#3 (0) {
}
我希望这可以帮助你。

关于即使我已经指定了使用类,也找不到 PHP 命名空间和使用 fatal error 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62485522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com