-1

こんにちは皆さん、コンポーザーでクラスをオートロードする際に問題があります。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-autoloadinstallから行いますが、機能しません。Linuxではこのすべてが完璧に機能しますが、ここではうまくいきません。これを修正する方法、またはどこで間違いを犯すかについてのアイデア。

みんなありがとう!

嫌い:

{
    "autoload": {
        "psr-0": {
            "": "vendor/"
        }
    }
}
4

2 に答える 2

0

まあ、あなたはすべきです

<?php
require_once 'vendor/autoload.php'; 

use Ikac\Mvc\Controller\AbstractController;


$a = new AbstractController();
于 2013-11-17T15:39:04.847 に答える