5

これは私の最初の質問です。それに加えて、私は英語を母国語としないので、初心者の間違いについては事前に申し訳ありません...

私は Symfony2 から始めていますが、オートロードの問題に数日間直面しています。

AppBundle の DefaultController 内で PHP クラスを使用しようとしています。これを行う方法は、config.yml でサービスを作成し、一致するそのクラスに名前空間を与えることです。

Symfony は、ファイルは見つかったが、クラスがそこにないことを教えてくれます。正確なエラーは次のとおりです。

オートローダーは、クラス「Priceget\CollectorBundle\Crawler\Amazon」がファイル「/srv/www/lol.com/public_html/priceget/symfony/src/Priceget/CollectorBundle/Crawler/Amazon.php」で定義されることを予期していました。ファイルは見つかりましたが、その中にクラスがありませんでした。クラス名または名前空間にタイプミスがある可能性があります。

そして、私のクラスはこれだけです:

<?php

namespace Priceget\CollectorBundle\Crawler\Amazon;

use Symfony\Component\HttpFoundation\Response;

class Amazon
{

    public function getAll()
    {
        return new Response('l0l');
    }
}

私の DefaultController では、次のように呼び出しています。

<?php

namespace Priceget\CollectorBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Guzzle\Http\Client;
use Symfony\Component\DomCrawler\Crawler;
use Priceget\CollectorBundle\Crawler\Amazon;

class DefaultController extends Controller
{

    public function indexAction()
    {
        $amazon = $this->get('amazon.crawler');
    }
}

そして私のconfig.ymlピース:

services:
    amazon.crawler:
        class: Priceget\CollectorBundle\Crawler\Amazon

私はすでにしようとしました:

  • キャッシュを空にする
  • Apacheを再起動します
  • クラスをコントローラーに拡張しますか? :-Z

よろしくお願いします。

4

4 に答える 4

12

名前空間が間違っています。名前を変更してください:

から:namespace Priceget\CollectorBundle\Crawler\Amazon;

に:namespace Priceget\CollectorBundle\Crawler;

于 2013-09-29T18:30:38.940 に答える