More Related Content Similar to 受託開発のPhalcon (7) 受託開発のPhalcon4. 基本情報 平岡 雅俊 28歳 独身
IT歴 9年くらい
PHP歴 5年くらい
趣味 スノーボード
生息地 千葉県浦安市
好きな食べ物 オムライス
嫌いな食べ物 ホルモン
株式会社ソニックムーブ(http://www.sonicmoov.com)
に入社してはや3年目。
入社当初はソーシャルゲーム開発をSymfony1系で、ソ
リューション事業部に移動してからはWordPressや
PhalconなどのFWを用いてシステム開発を行う。
インフラがちょっと苦手。
似顔絵アイコンは弊社デザイナーにお願いして書いてもらい
ました!似てると評判。本人はちょっと複雑。
6. • C拡張で実装された爆速PHPフレームワーク
• 拡張性が高いので、結構自由な構成で開発できる
• DIコンテナ、Event Dispatcherなどで汎用性が高い
• 謹製テンプレート言語 “Volt”
• 公式ドキュメントがしっかりしている(英語だけど)
• ドキュメントの日本語化もすすんでます!(サボっててすみません_ノ乙(、ン、)_)
• incubator や phalcon eye などのサンプルソースが豊富
• FW自体の開発もどんどん進んでます(Zephir)
http://blog.phalconphp.com/post/57161129440/phalcon-2-0-
the-future
• Vagrant にも対応
http://phalconphp.com/en/download/vagrant
11. 502 Bad Gateway
ページを表示しようとすると、“502 Bad Gateway”が発生。
事象発生初期では、別チームからVoltのテンプレートでエスケープ処理
を多様すると起こるとの情報があったが、Viewの処理直前で強制的に中
断させても起き続けた。 php-fpm が吐き出す core dump ファイルを解
析するも、原因が分からず。。
調べるなかで、どうやら pagination まわりが怪しいことが判明。
そこで、“全知全能の神”とか“先生”とか呼ばれている、とある友人に聞
いてみました!
環境
• nginx 1.4.7
• php + php-fpm 5.4.22
• Phalcon 1.2.4
• Mysql 5.6.17
16. Pagination + group by
502 Bad Gatewayにならなくなって小躍りしていたところに新たな問題。
pagination を使ったページング処理中に group by を絡めた場合、なに
やら結果セットの様子がおかしい。。
早速、友人に聞いてみると、以下回答が返ってきた。
https://github.com/phalcon/cphalcon/issues/2065
どうやらこれもバグらしい。※2014年8月現在では修正されている模様(FBが早いのもイ
イ!)
内容としては、paginationが返す結果セット数がgroup byによってグ
ルーピングされる以前の数字なっているというもの。
仕方がないので、paginationのオブジェクトをちょっと拡張、ついでに
behaviorっぽくしてみた。
19. QueryBuilder + Join
Phalcon では QueryBuilder を使ってSQLを構築したりできます。
ただ、このドキュメントを見てそのまま利用しようとすると、Model が見つ
からない旨のエラーメッセージが表示されます。
Join 等でモデルを指定する時は必ず Namespace 込みのフルパス
(?)で指定する必要があります。
例えば Namespace が Sonicmoov であれば次のようになります。
22. Validation + StringLength + UTF-8
参考
https://github.com/phalcon/cphalcon/issues/971
PhalconのStringLengthValidationでは、mbstringモジュールが有効な
場合は内部的にmb_strlen()を利用するように書かれています。
が、mb_internal_encoding(“utf-8”);を指定しないと、文字数カウントがう
まくいかず、正常なバリデーション結果が得られません。
23. その他
他にも色々とハマりましたが、全体的に Model の実装周りでつまづいた
ことが多かったように思います。
元々 Symfony を使っていて、Propel に慣れていたせいもあってか、「で
きるだろう」と思ったことができなかったり、やり方を見つけるまでに時間
がかかりました。。
確かに公式マニュアルは充実していますが、要所々をかいつまんだ説
明になっていることも多く、Cの実装部分を覗いたり、他に同じことを実装
しているソースコードを読んだりして、気づく点が多かったと思います。
そういった意味でも、これからどんどん Phalcon ユーザーが増えて、自
分の為これから Phalcon を始めよう!って人の為に情報を共有してもら
えると良いかと思います!
※あと公式マニュアルの翻訳ガンバります _ノ乙(、ン、)_