• 締切済み

Cakephp2.0で、PhantomJs

Cakephp 2.0のConsole/Commandで、スクレイピングを行う処理を実装しようとしています。 PhantomJsを使おうとしていますがどうもうまくいきません。 composerを利用してPhantomJsを、 /XAMPP/xamppfiles/htdocs/cakephp/app/Vendor にインストールしました。 ”/XAMPP/xamppfiles/htdocs/cakephp/app/” に test.phpとして、 <?PHP require_once('vendor/autoload.php' ); use JonnyW\PhantomJs\Client; $client = Client::getInstance(); $client->getEngine()->setPath('vendor/bin/phantomjs'); $request = $client->getMessageFactory()->createRequest(); $response = $client->getMessageFactory()->createResponse(); $request->setMethod('GET'); $request->setUrl('https://pg.kdtk.net/sample/phamtomjs_test.html'); $client->send($request, $response); echo "request url: " . $request->getUrl() . "\n"; echo "response: " . $response->getStatus() . "\n"; if($response->getStatus() === 200) { echo "content: \n"; echo $response->getContent(); } ?> というサンプルプログラムを実行するとうまくいきました。 これを、Console/Commandで実装したいのですが、どのように実装したら良いかわかりません。 例えば /XAMPP/xamppfiles/htdocs/cakephp/app/Console/Command に、 SampleShell.php として保存し、 <?php class SampleShell extends AppShell { public function startup() { parent::startup(); App::import('Vendor', 'Client', array('file' => 'JonnyW/PhantomJs/Client.php')); } // メイン実行関数 public function main() { $client = Client::getInstance(); } } ?> php cake.php Sample を実装すると、 PHP Fatal error: Class 'Client' not found ・・・ とエラーとなります。 インスタンスを生成できるようにするにはどのようにすれば良いのでしょうか? ご教示いただきますよう、何卒宜しくお願い申し上げます。

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1
peachpichi
質問者

補足

こちらの質問は、ご指摘いただきましたURL、知恵袋で解決しました。 お騒がせし、申し訳ございませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CakePHPでスキーマファイルが読み込めない

    お世話になります。 現在WindowsのXAMPP上でCakePHPを使ってアプリケーションの開発を行っております。 スキーマファイルを作成し、cakeコマンドからテーブルの作成をしようとしているのですが、 cakeコマンドを実行すると以下の様なエラーが表示されます。 C:\xampp\htdocs\firstcake\app\Console>cake schema create Welcome to CakePHP v2.3.10 Console --------------------------------------------------------------- App : Console Path: C:\xampp\htdocs\firstcake\app\Console\ --------------------------------------------------------------- Cake Schema Shell --------------------------------------------------------------- The chosen schema could not be loaded. Attempted to load: File: C:\xampp\htdocs\firstcake\app\Console\Config\Schema\schema.php Name: 通常schema.phpファイルは~app\Config\Schemaフォルダに配置するのですが上述のエラーが表示され読み込まれなかったため、~app\Console\Config\Schemaフォルダを作成し配置しました。 それでも上記のエラーメッセージが表示されます。 そこでCakePHPにおいてスキーマファイルが読み込めなかった際の対処法についてご教示頂きたく投稿しました。 長文となりましたが、ご協力宜しくお願い致します。 ★環境 OS : Windows 7 Home Premium (システムドライブ:C) XAMPP : ver1.8.3(インストールせず、C:\xamppフォルダへコピペで配置)。 CakePHP: ver2.3.10 ★フォルダ構造 ・XAMPPのインストールフォルダ: C:\xampp ・アプリケーションルート: C:\xampp\htdocs\firstcake(CakePHPを配置) ・schema.phpのデフォルトの配置場所: C:\xampp\htdocs\firstcake\app\Config\Schema\schema.php ・schema.phpを別途配置した場所: C:\xampp\htdocs\firstcake\app\Console\Config\Schema\schema.php ・環境変数 PATH = C:\xampp\htdocs\firstcake\app\、C:\xampp\php

    • ベストアンサー
    • PHP
  • CakePHPでbakeを利用したい

    CakePHPでbakeを利用したいと考えています。 OSはcentOS5.6です。 cakePHPをディレクトリに放り込み、データベース設定までは手動で設定しました。 (mySQLの設定だけでなく、cakePHPの設定も済み) ここから、viewなどをbakeをしていきたいと考えたわけですが、ここで問題が生じました。 /cake/consolephp まで行き、「cake.php bake」 と入力すると ****************************************************** Welcome to CakePHP v1.3.12 Console --------------------------------------------------------------- App : app Path: /home/worldstoughestblog.com/public_html/app --------------------------------------------------------------- Interactive Bake Shell --------------------------------------------------------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) ******************************************************** までは出てきます。 しかしながら、MやVと入力すると > M bash: M: command not found > V bash: V: command not found となってしまいます。 「CAKEPHP1.3によるWebアプリケーション開発」という本を読むと、「PHPのある場所とbakeがある場所を環境変数に組み込む必要がある」と書かれていました。これを設定していないのが原因かもしれません。(本の環境はwindows+XAMPP環境だったのでCentOSで環境変数に組み込む方法が分からず無視していました)。 ただ、webで調べる限り、「Welcome to CakePHP v1.3.12 Console」さえ出れば、後は皆問題なく進んでいるようなので、事前設定は必要ないのではないかとも思っています。 どなたか解決策をご教授頂けませんでしょうか?

    • ベストアンサー
    • PHP
  • Cakephp AppControllerについて

    CakePHPにて、 AppControllerクラスに処理を記述しようと思い、 app/app_controller.php を設置したのですが、 app/app_controller.php がどうしても呼び出されません。 色々調べてるのですが、どうしても原因が分かりません。 原因等分かる方がおりましたら教えて頂けますでしょうか? ---------------------- ■cakephpのバージョンは1.3です。 ■app/app_controller.phpの中身は↓です。 class AppController extends Controller { function __construct() { parent::__construct(); } function beforeFilter() { echo "test"; ←これが呼ばれない。 } } ----------------------

    • ベストアンサー
    • PHP
  • cakephpで作成ShellをXPで動かしたい

    現在、Cakephpを使用して開発を行っています。 開発環境:WindowsXP 本番環境:CentOS5.6 今回、初めてCakephpを使用します。 バッチ処理を作成したく、shellを作成していますが 開発中の為、Windows環境で動作させたいのですが 上手く実行してくれません。 対象ファイル:C:\Apache2.2\htdocs\プロジェクト名\app\vendors\shells\daily_process.php コマンドプロンプトからの実行例  php C:\Apache2.2\htdocs\プロジェクト名\cake\console\cake.php -app iukdb daily_procees 実行結果  Error: Class DailyProceesShell could not be loaded. 何が悪いのかさっぱり分からずに困っています。 ネットで検索するのですが、Linux環境の例ばかりで。。。 やはり、Cygwinをインストールする必要が有るのでしょうか? どなたか助けて下さい。

    • 締切済み
    • PHP
  • cakephpのビューの使い方

    cakephpのビューの使い方 windowsxp環境にxamppをインストール php:5.3.1 cakephp:1.2.6 書籍を読みながらcakephpを始めました。 フォームを利用するサンプルを試しています。 コントローラーで変数に値をセットし ビューでの変数の表示方法の記述がよくわかりません。 コントローラで $this->set("result",$result); とし ビューctpで <html> <body> <h1>送信結果</h1> <p><?=$result ?></p> </body> </html> と記述されているのですが、ブラウザには変数が表示されません。 <?php echo $result ?>と書けば表示されるのですが <?=$result ?>という書き方ですとなにも表示されません。 どなたかアドバイスをいただけると助かります。 作成日: 2010年4月2日(金) 21時05分

    • ベストアンサー
    • PHP
  • cakephp1.3によるbatch

    php5.3.1 cakephp1.3 win-vista (他LAPP/LAMP環境整備) を使用し、eclipse3.6でphpソースおよびhtmlソースを作成しています。 すでに、この環境においてcakephpで作成したwebページは表示されていますので、php/apache/DB等々の基本的な設定は問題ないとお考えください。 batchPGの評価を行うべく、サンプルPGを"APP/venders/shells"に配置しました。 batchsample.php <?php class BatchsampleShell extends Shell { function main() { $this->out('hogehoge'); } } ?> cakeコマンドでcli実行しますと、 Error: Class BatchsampleShell could not be loaded. と表示され、実行がかないません。 バッチ実行用に追加設定等が必要なのか、それとも何かコツが必要なのか。 ご存知の方、教えていただけますでしょうか。 よろしくお願いします。 ※cakeコマンドの実行方法 cd APP/venders/shells (pg配置ディレクトリに移動) c:\hogehoge\(cake1.3本体格納ディレクトリ)\cake\console\cake batchsample ちなみに、win-vistaからフォルダをそのまま移行したlinux環境(PHP 5.2.17)でも、webは表示、batchは同様のエラーとなっています。

    • ベストアンサー
    • PHP
  • cakephpからのPXDocの利用方法。

    cakephpからのPXDocの利用方法。 windowsxp環境にxamppをインストール php:5.3.1 cakephp:1.2.6 mysql:5.1.41 PXDoc:http://www.pxdoc.com/ cakepphpを勉強しております。 データの印刷でPXDocを利用して 印刷を行いたいと思っております。 サンプルを試してなんとかPXDocが 一瞬起動するとろこまでは進んだのですが、 xml解析エラーで終了してしまいす。 cakephpからのPXDocの利用について すでに利用されている方、ドキュメントなど ご存じの方がいらっしゃれば アドバイスいただけると助かります。 宜しくお願い致します。

    • 締切済み
    • PHP
  • CakePHPのredirect()関数について

    <?php App::uses('AppController', 'Controller'); class DayController extends AppController{ public function index(){ $this->autoRender = false; $date = new DateTime(); $date->setTimeZone(new DateTimeZone('Asia/Tokyo')); $str = $date->format("H:i:s"); $this->redirect("./other/".urlencode($str)); } public function other($param){ $this->autoRender = false; $str = urldecode($param); echo '<html><head><title>現在時刻</title>'; echo '<meta charset="UTF-8"></head>'; echo '<body>'; echo '<h1>現在の時刻は、'.$str. 'です。</h1>'; echo '</body></html>'; } } ?> 上記のようなスクリプトをApacheのhtdodos./cakephp/App/Controller フォルダに入れて 動作させると、下記のようなエラーが出力されます。 redirect() 関数の引数がおかしいようですが、どこがどうおかしいのか 教えていただけませんか。 Warning (2): Missing argument 1 for DayController::other() [APP\Controller\DayController.php, line 14] Notice (8): Undefined variable: param [APP\Controller\DayController.php, line 16]

    • 締切済み
    • PHP
  • cakephp1.2で画像が出力できない!

    お世話になります。cakephp1.2で解決できないことがあります。 それは画像の出力です。 app/webroot/img配下にtest.jpgがある場合、 どのように表記したらビューで出力できるでしょうか? <?php echo $html->image('test.jpg') ; ?> や絶対パス、cake.power.pngなどの出力テスト をいろいろ試しましたが、どうしても解決できません>< どうかみなさま宜しくお願い致します。 暫くプログラマの方と連携がとれないので、 こちらに質問させて頂きました。。。

    • ベストアンサー
    • PHP
  • CakePHP redirect関数の文法

    <?php App::uses('AppController', 'Controller'); class DayController extends AppController{ public function index(){ $this->autoRender = false; $date = new DateTime(); $date->setTimeZone(new DateTimeZone('Asia/Tokyo')); $str = $date->format("H:i:s"); $this->redirect("./other/".urlencode($str)); } public function other($param){ $this->autoRender = false; $str = urldecode($param); echo '<html><head><title>現在時刻</title>'; echo '<meta charset="UTF-8"></head>'; echo '<body>'; echo '<h1>現在の時刻は、'.$str. 'です。</h1>'; echo '</body></html>'; } } ?> 上記のようなCakePHPのスクリプトにおいて、下記のようなエラーが返ってきます。 Warning (2): Missing argument 1 for DayController::other() [APP\Controller\DayController.php, Notice (8): Undefined variable: param [APP\Controller\DayController.php, redirect()関数の引数がおかしいのでしょうか。