2906


当方cakephp初心者です。require_onceに関する

cakephp2.6.0からwebスクレイプを行いたく、goutteを利用しようとしています。

参照① -> <https://github.com/FriendsOfPHP/Goutte>

そこで、

-> <http://www.buildinsider.net/web/bookphplib100/088>

を参考にしつつ、

①path/to/cake/app/Vendor以下に Goutte.pharをおく
②読みたいコントローラーにてrequire_onceでGoutte.pharをひっぱってくる

とすればできると思っているのですが、

[code]

    Error: require() [<a href='http://php.net/function.require'>function.require</a>]: 
    Failed opening required '/Library/WebServer/Documents/yushen/app/Vendor/goutte.phar' 
    (include_path='/Library/WebServer/Documents/yushen/lib:.:') 
    File: /Library/WebServer/Documents/yushen/app/Controller/EditController.php 
    Line: 2
    
[/code]

とエラーが出てきてしまいます。以下実際に書いたコードになります。

[code]

    <?php 
    require "/Library/WebServer/Documents/yushen/app/Vendor/goutte.phar";
    use Goutte\Client;
    
    class EditController extends AppController{
    
        public function add(){
    
            $client = new Client();
        }
    
    }
    
[/code]

①require_onceでズバリどこを指定すればいいのか

②app::importを使って呼ぶ方法はないのか

を質問したいと思っています。

初歩的な質問で申し訳ございません。。。よろしくお願いします！


CC BY-SA 3.0
2015-01-01T11:44:13.887
2905
2015-01-01T13:53:50.963
2015-01-01T13:53:50.963
452
5330
question
php cakephp composer
cakephpでgoutteを使いたい(requireのパス)


Composerを使ってgoutteをインストールする形にするのが良いのではないでしょうか。
Requireする必要もなくパスを解決してAutoloadが行われます。

App:importはCakePHP1などで好まれた古い命令です。 Vendor以下のファイルをどうしても直接読むならば App::usesを使います。
GoutteはPSRに準拠した構造なのでrequireやApp::importなどに頼る必要は無いです。

<http://book.cakephp.org/2.0/ja/core-utility-libraries/app.html#vendor>

とはいえComposerを使えば何もする必要がありませんのでそちらがオススメです。

開発中のアプリのトップディレクトリにあるcomposer.jsonにgoutteを書き足すか、goutteのページにあるようにcomposer
requireコマンドで自動的に追加できます。


CC BY-SA 3.0
2015-01-01T11:50:24.383
2906
2015-01-01T11:50:24.383
452
2905
answer