我正在尝试为Codeigniter 4创建我的第一个composer包。但是,我总是得到一个错误Class 'Myapp\Settings\Greet' not found
。我完全迷路了。
我在ThirdParty文件夹中创建了一个名为myapp-settings的文件夹。该文件夹中还有一个名为src和composer.json
的文件夹。
这是composer.json
的内容
{
"name": "myapp/settings",
"description": ".",
"license": "MIT",
"minimum-stability": "dev",
"autoload": {
"psr-4": {
"Myapp\\Settings\\": "src"
}
},
"require": {}
}
我在src文件夹中创建了一个名为Greet.php
的测试文件
<?php namespace Myapp\Settings;
class Greet
{
public function hello()
{
return 'Hey, there!';
}
}
codeigniter 的App\Config\Autoload.php
上
public $psr4 = [
'Myapp\Settings' => APPPATH . 'ThirdParty/myapp-settings/src'
];
然后我在codegliiter的默认控制器上调用了它。
<?php namespace App\Controllers;
use Myapp\Settings\Greet;
class Home extends BaseController
{
public function index()
{
$h = new Greet();
echo $h->hello();
}
//--------------------------------------------------------------------
}
运行后出现错误Class 'Myapp\Settings\Greet' not found
. APPPATH\Controllers\Home.php at line 9
。如何修复此错误?
1条答案
按热度按时间ttp71kqs1#
不要编辑codeigniter的
app/Config/Autoload.php
,而是将其还原并将以下行添加到项目composer.json
中:然后运行
composer require myapp/settings
因为我也遇到了这个问题,所以我们专门为它创建了一个GitHub repository。你可以检查和克隆,观察提交来理解步骤。