こんにちは皆さん、コンポーザーでクラスをオートロードする際に問題があります。Linuxではすべて完璧に動作しますが、今では上司がenvを変更してWindowsを設定しています。これはすべてLinuxで機能しますが、Windowsには初心者向けの致命的なエラーが表示されます:
致命的なエラー: 7 行目の D:\xampp\htdocs\ikacFw\frontController.php にクラス 'AbstractController' が見つかりません
問題をよりよく理解するために、私のcomposer.jsonと構造を見るのが一般的です。
構造は次のとおりです。
frontController.php
-- vendor
----- Doctrine
----- Ikac
--------- Components
---------- Mvc
------------- Controller
vendor ディレクトリからすべてのデータを読み込もうとしています。
Composer.json
{
"autoload": {
"psr-0": {
"vendor": ""
}
}
}
また、新しいコンポーネントはマニュアルを追加します。このような :
$loader = require_once 'vendor/autoload.php';
$loader->add('vendor', "Ikac");
次に電話しようとすると、次のようになります。
<?php
require_once 'vendor/autoload.php';
use Ikac\Mvc\Controller;
$a = new AbstractController();
「見つかりませんでした」というエラーが表示されます。
私のクラス AbstractController には定義済みの名前空間が含まれていますが、再び機能しません。テストのように、私はこれを行います:
<?php
//vendor/Ikac/Mvc/Controller/AbstractController.php
namespace Ikac\Mvc\Controller;
class AbstractController {
function __construct() {
echo __CLASS__;
}
}
?>
cmd composer dump-autoload、installから行いますが、機能しません。Linuxではこのすべてが完璧に機能しますが、ここではうまくいきません。これを修正する方法、またはどこで間違いを犯すかについてのアイデア。
みんなありがとう!
嫌い:
{
"autoload": {
"psr-0": {
"": "vendor/"
}
}
}