0

こんばんは!

オートローダーを使用してsymfony2.1.6のカスタムクラスにアクセスするのに少し問題があります。私がする必要があるのは、DefaultController内からMangress / src / Qkprod / Classes / api/APIEntry.phpクラスにアクセスすることです。どうやら私はそれを行うためにautoload.phpを拡張する方法を見つけるにはあまりにも愚かです。今、私は非常に多くのブログ投稿と解決策を読んでいるので、もう何をすべきかわからなくなっています...

私のファイル構造は次のようになります。

マングレス
 -アプリ
 -src
    -Qkprod
      -MangressBundle
      -コントローラー、エンティティ、リソース、テスト
      -クラス
         -api
            -APIEntry.php
         -db
         -安全
    -QkprodMangressBundle.php
 -ベンダー
 -ウェブ
 
Classesフォルダーには、これまでに作成したすべてのクラスが含まれています。

私がこれまで読んだことは、ロードするクラスの名前空間をMangress / app/autoload.phpに登録する必要があるということでした。Symfony2.1でクラスを自動
ロードする

$ loader-> add('Qkprod \ MangressBundle \ api'、 DIR。'/../src/Qkprod/MangressBundle/Classes/api/'); これは間違っているようですが..

symfonyの命名や理解に何か問題がありますか?名前空間「Qkprod\MangressBundle \ api」をオートローダーに登録して、symfonyがいつどこを見ればよいかがわかるようにします

Qkprod \ MangressBundle \ api\APIEntryを使用します;

したがって、Mangress / src / Qkprod / MangressBundle / Classes / api フォルダーを調べる必要があります。間違っていますか?

私は本当にいくつかのガイダンスをいただければ幸いです:)

4

1 に答える 1

1

symfony開発者が推奨するディレクトリ構造を使用しないのはなぜですか?

そして、symfony開発者だけでなく、この構造はPSR-0と呼ばれ、多くのPHPフレームワークで採用されています。

規則を守れば、デフォルトのオートローダーはクラスを問題なくロードし、他の開発者はコードをより簡単に理解できるようになります。

「Classes」ディレクトリを削除し、そこからすべてを1レベル上に移動します。

Mangress
 -app
 -src
    -Qkprod
      -MangressBundle
        -Controller, Entity, Resources, Tests
        -Api
          -APIEntry.php
        -Db
         -security
        -QkprodMangressBundle.php
 -vendor
 -web

あなたが書くときこのように

use Qkprod\MangressBundle\Api\APIEntry

どこを見ればよいかわかります。

于 2013-01-19T17:10:39.157 に答える