どういうわけか、作曲家のオートローダーに問題があります。ORMフレームワークとしてPropelを使用しています。私のフォルダ構造は次のようになります。
src/BestFreeSites/App
- /Map
- /Base
src/BestFreeSites/Auth
src/BestFreeSites/Framework
composer autoload を使用してすべてのファイルをインクルードしたい。composer.json ファイルは次のようになります。
"autoload": {
"classmap": [
"src/BestFreeSites/App/",
"src/BestFreeSites/App/Base/",
"src/BestFreeSites/App/Map/",
"src/BestFreeSites/Auth/",
"src/BestFreeSites/Framework/"
]
}
最初の 3 つのフォルダーのクラスにはアクセスできますが、Auth および Framework (私が作成した) のクラスにはアクセスできません。また、正しい名前空間を設定しました。例として AuthController.php (Auth フォルダー内) を見てみましょう。
namespace BestFreeSites\Auth;
public class AuthController
{
public function register($args)
{
return $args;
}
}
そして、次のように「use」でファイルをインクルードしようとしています。
use \BestFreeSites\App\SiteQuery;
use \BestFreeSites\App\UserQuery;
use \BestFreeSites\App\RatingQuery;
use \BestFreeSites\Auth\AuthController as Auth;
use \BestFreeSites\Framework\Abstract;
最後の 2 つのインポートのみが機能していません。すでにオートロードをダンプしてリロードしました ( composer dump-autoload )
誰かが私を正しい方向に導いてくれますか?
前もって感謝します :)
よろしく、デビッド
あなたの本当の\BestFreeSites\Auth\AuthController
クラスはどこにありますか? スクリプト レベルのディレクトリ階層を提供できますか。
そして、あなたのvendor/autoload.php
ファイルを正しく要求しましたか?
または、psr4 オートローダーを設定するだけの場合は、composer.json
ファイルに対して次のコードに従います。
{
"autoload": {
"psr-4": {
"BestFreeSites\\": "src/BestFreeSites"
}
}
}
//use your AuthController class
$autoController = new \BestFreeSites\Auth\AuthController();
それはかなり簡単です。役に立つと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加