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できないんじゃなかったの?
普通にできたけど…