スポンサーサイト
一定期間更新がないため広告を表示しています
- 2014.12.23 Tuesday
- -
- -
- -
- -
- -
- by スポンサードリンク
※Nagoya.phpは名古屋でだいたい隔月開催しているPHPの勉強会です。勉強会ですが、LTや発表にはそれほど重点はありません。プログラム問題を課題に皆で黙々と時にわいわいとPHPのコードを書いている勉強会です。
今日の反省点:再帰は思った以上にハードル高い。ピザがすぐ無くなった。#nagoyaphp
— Takashi Kanemoto (@qckanemoto) 2014, 11月 16
参考 “再帰能力は人間の言語器官の基本的構成要素である。再帰能力は人間の言語を規定する唯一の特徴である。再帰はヒトの言語器官だけに固有の特徴である。再帰構造はあらゆる自然言語に備わっている。再帰構造処理は人間に固有の能力である。” http://t.co/Loxqg80ebQ
— Hidenori Goto (@hidenorigoto) 2014, 11月 19
@77web 多分プログラマ的思考の分岐点なんだと思うんですよね。なので是非ハノイの塔を。。。
— Hidenori Goto (@hidenorigoto) 2014, 11月 18
昨年に引き続き、PHPカンファレンス関西に行ってきました。
http://conference.kphpug.jp/2014
今年はLTではなく、フレームワーク四本勝負というもの(東京のPHPカンファレンスで毎年(?)行われるフレームワークアップデートの関西版のようなもの)でSymfonyについて話をしました。
発表に使ったスライドはこちら。
@koriymさんの基調講演に感銘を受け、お話の中にあった「継続」という言葉をどうしても入れたくなって、登壇直前までスライドを書き直して臨みました。
言うはずのことを言い忘れたり、言わなくて良いことも言ったりと個人的な失敗は色々ありましたが、聞いてくださった方に、基調講演からのつながり(つなぐ力!)を少しでも感じてもらえたら嬉しいです。
<愚痴>
しかし、運営スタッフの方からの発表依頼の際にはレギュレーションが指定されていたにも関わらず、指定を守ったのが私とLTの『遅れて来た5番目のフレームワーク』だけだったという(ーー;)
一言で表すと〜のために何日も悩んだのはなんだったのでしょう…。
</愚痴>
懇親会で、今後Symfony Componentを使うオープンソースプロジェクトの方や、Symfonyに興味があるという方から声をかけていただき、それぞれ少しお話ししました。はからずも、Symfonyが重い・難しいという印象が浸透してしまっているのを痛感することになりました。
ファイル数が多いというのを気にする向きもありましたが、軽量と言われるフレームワークでもcomposerを使うのがスタンダードになってきた以上、そこは気にしなくていいのではないでしょうか。
幸い、Symfonyは、浮気しても待っててくれる心が広い嫁なので、食わず嫌いせずに一度は付き合ってみてほしいと思います!(付き合ってみたら、ギャップ萌えもあるかもしれませんよ?)
今日一日おつきあいくださった皆様、ありがとうございましたm(_ _)m
スタッフの皆様もお疲れさまでした。ぜひ来年も来たいです!
$crawler = new Crawler(); $crawler->addContent('', 'text/html; charset=UTF-8'); $this->assertEquals('foo', $crawler->filterXPath('//div')->attr('class'), '->addContent() adds nodes from an HTML string');
一人で開発
開発機のOSはWindows7 professional(メモリが64GBというモンスターマシン^p^)
gitはmsysgit利用
主に使うフレームワークはsymfony1又はSymfony2 たまにwordpressとかcakeとか
visual c++等の自力でphp及びその拡張モジュールをビルドできる環境は無い
新規開発案件(PHP5.4/5.5)と保守案件(PHP5.3)を使い分けたい
開発に使うIDEはphpstorm
原則としてTDDするのでphpunitを使いたい(symfony1の場合はlime使う)
*プロジェクトルートをsynced_folderにする
*コードはホスト側のphpstormで書き、テストはゲスト側のコンソールで手動実行(作業中は、phpstormとmsysgitのGit Bashとvagrant sshの三窓を行ったり来たり)
*Symfony2のassets:installは常に--symlinkなしで使う
(*symfony1のplugin:publish-assetsはホスト側で実行する)
*composer installはゲスト側で実行(synced_folderでホスト側にも共有されてくるので、IDEはそれを参照できる)
*本番とのphpバージョン差異に悩まされることがなくなった
*windows版php特有の問題(strftimeのフォーマット文字列とか)に悩まされることがなくなった
*よく言われる速度問題はホスト側の超性能でカバーできてた(と、思う。特に速度で不満感じたことなし)
*jsやcssを更新したときにassets:installを手動実行するのが面倒 *シンボリックリンクが必須のバンドルが使えない
*プロジェクトルートをtype: "rsync"でsynced_folderとして指定
*ホスト側のwindowsはcwrsyncを利用してrsyncコマンドを使えるようにしておく
*.git .idea app/cache/* app/log/* bin vendor web/bundlesを:rsync__excludeに指定(assetic使う場合はweb/assetic web/js web/cssも除外した方が良いかも)
*利用するboxにもよるが、hashicorp/precise64の場合は、初回vagrant up時にいったんVagrantfile上のsynced_folder設定とprovision設定をコメントアウトし、ゲスト側rsyncのバージョンをホスト側rsyncのバージョンと合わせてから、synced_folder設定とprovision設定を再度有効化してvagrant reload --provisionを実行する
*作業中に必要なウィンドウがphpstormとmsysgitのGit Bashとvagrant sshの三窓から、rsync-auto専用のGit Bashも加えた四窓に増えた
*composer installはゲスト側のプロジェクトルートで実行後、--no-scriptつきでゲスト側の/vagrantでも実行する(IDEで補完を利用するために必要)
*シンボリックリンクが必須の一部のバンドルを使っていてもwindowsホストで問題なく開発できるようになった
*rsync-autoにしておくと、excludeにしているにも関わらず時々ゲスト側だけにあってホスト側にないファイル・ディレクトリ(vendorなど)が削除されてしまうことがある
Vagrant1.5.2以下でrsyncしたディレクトリのパーミッションがおかしい場合→https://github.com/mitchellh/vagrant/issues/3256
Vagrant1.5.2以下でrsyncがNo such file or directoryで失敗する場合→https://github.com/mitchellh/vagrant/issues/3230(4/21 12:40訂正1.5.3でも発生してました)
- "symfony/symfony": "2.3.*" + "symfony/symfony": "~2.3"
$ composer update symfony/symfonyあとは、自分の書いたバンドルについて2.4でエラーが出るようなら修正しましょう。
Argument 1 passed to Knp¥Component¥Pager¥Paginator::__construct() must be an instance of Symfony¥Component¥EventDispatcher¥EventDispatcher, instance of Symfony¥Component¥HttpKernel¥Debug¥TraceableEventDispatcher given,
- "knplabs/knp-paginator-bundle": "2.3.*", + "knplabs/knp-components": "~1.2.4", + "knplabs/knp-paginator-bundle": "dev-master",
- "minimum-stability": "stable", + "minimum-stability": "dev", + "prefer-stable": true,