小枝から幹をめざして

今は小枝しか拾えてないけどいつか幹にたどり着くんだ。個人的な勉強の忘備録PHP,MySQL,javascript

CakePHPとComposerにやられる

とりあえず今日の目標

①Composerを使えるようになる

http://codezine.jp/article/detail/7827?mode=print

① > cd c:\xampp\php
② > php -r "readfile('https://getcomposer.org/installer');" | php
③ > echo @php "%~dp0composer.phar" %*>composer.bat

②「 https://getcomposer.org/installer 」のレスポンスがPHPコードなのでそれを読み込んで「 | php 」の部分で実行「 php -r 」(-rはphpのコマンド)は読み込むだけ(wgetと同じような動作)
③composer.bat



CakePHPからGoutteを使う、などライブラリからライブラリを呼ぶ方法を調べる。
(別ファイルの別クラスから別ファイルの別クラスを呼ぶ方法を調べる。)
CakePHPから自作クラスをnewして実行してみる
●(全部自作)a.phpファイルの自作クラスAclassからb.phpファイルのBclassを呼ぶ
●Aclassを継承したAclildClassからBclassを呼ぶ
●AchildClassからBclassを継承したBclildClassを呼ぶ。
参考

App::useで読み込む

>CakePHP2ではVendorディレクトリを再帰的に検索しなくなりましたので、ディレクトリ名を指定する必要があります。
http://www.monoreview.com/?p=35

>クラス名でなくファイル名を読み込み??
http://www.tailtension.com/cakephp/891/

ここにはやっぱりクラス名をロードすると書いてある
// app/Vendor/Hoge.php内のHogeクラスをロードする。
App::uses('Hoge', 'Vendor');
>サブディレクトリ内のクラスをロードするには、それらのパスを App::build() で追加する
http://qiita.com/katsukii/items/8d2126177446d23ab37d


Goutteの$client->requestっていうのはSymfonyのBrowserKitコンポーネントのrequestらしい。
http://blog.sarabande.jp/post/85496683393

>あぁ…これだ!CakePHPでライブラリを使うときは
Composerを使えってのはこれだ!
http://dim5.net/cakephp/picture-resize-library.html


これで一応上手くいった
http://cakephp.hooooooney.com/posts/view/268

App::uses('AppController', 'Controller');
//App::uses('ComponentCollection', 'Controller'); //遅延読み込み?なくても作動
//http://api.cakephp.org/2.3/class-ComponentCollection.html

use Goutte\Client;   //スラッシュではない。\マーク。
use Symfony\Component\DomCrawler\Crawler; //これが重要!!

clas AaaaContorller extends AppController{//以下略

    public function index() {
$client = new Client();

        $crawler = $client->request('GET','http://www.yahoo.co.jp ');

        $crawler->filter('a')->each(function($v,$key)
        {
            if ($key < 3){
                echo h($v->text());
                echo h($v->html());
            }
        });

        $this->autoRender = false;
                
                
    }


要するに
C:\xampp\htdocs\zenkan-cakephp\url_app\Vendor\goutte\vendor\symfony\dom-crawler\Symfony\Component\DomCrawler\Crawler.php
を読み込まないといけなかったらしい。
でもCakePHPでない普通のphpファイルなら
use Symfony\Component\DomCrawler\Crawler;
は必要ない。なんでだ

それからclass内から別classをnewできないんじゃなかったの?
普通にできたけど…