質問編集履歴

1 バージョン情報を追加

noripi

noripi score 28

2016/03/07 13:12  投稿

CakePHPのコンソールを拡張したいのですが上手くいきません。
###前提・実現したいこと
ComposerでインストールしたCakePHPのコンソールを拡張して、独自コマンドを実行したいです。
###発生している問題・エラーメッセージ
コマンドを実行するとエラーになります。
なお、Composerを使わずに手動インストールしたものでは動作します。
```ここに言語を入力
$ ./cake scraper
Error: Plugin Scraper could not be found.
#0 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Core/App.php(227): CakePlugin::path('Scraper')
#1 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Core/App.php(549): App::path('Console/Command', 'Scraper')
#2 [internal function]: App::load('ScraperShell')
#3 [internal function]: spl_autoload_call('ScraperShell')
#4 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Console/ShellDispatcher.php(257): class_exists('ScraperShell')
#5 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Console/ShellDispatcher.php(203): ShellDispatcher->_getShell('scraper')
#6 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Console/ShellDispatcher.php(66): ShellDispatcher->dispatch()
#7 /home/scraper/public_html/ec_scraper/Vendor/cakephp/cakephp/lib/Cake/Console/cake.php(54): ShellDispatcher::run(Array)
#8 {main}
```
###ソースコード
ec_scraper/Console/Command/ScraperShell.php
```ここに言語を入力
<?php
App::uses('ComponentCollection', 'Controller');
App::uses('ScrapingComponent', 'Controller/Component');
class ScraperShell extends AppShell {
   public function startup() {
       $collection = new ComponentCollection();
       $this->Scraping = new ScrapingComponent($collection);
       parent::startup();
   }
   public function main(){
       $this->Scraping->test();
   }
}
?>
```
ec_scraper/Controller/Component/ScrapingComponent.php
```ここに言語を入力
<?php
class ScrapingComponent extends Component {
   public function test(){
       debug("Hello");
   }
}
?>
```
###補足情報(言語/FW/ツール等のバージョンなど)
###補足情報(言語/FW/ツール等のバージョンなど)
CakePHPは2.8.1です。
  • CakePHP

    2688 questions

    CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

  • composer

    228 questions

    Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る