これは私の最初の質問です。それに加えて、私は英語を母国語としないので、初心者の間違いについては事前に申し訳ありません...
私は 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
よろしくお願いします。