CakePHP 1 to 2 Migration tips 100 from ichikaway まぁ、100個も紹介する時間は無く、31個まで。残りはどこかで。。。。 ちなみに表紙の写真は、自宅から徒歩10分ぐらいのところにある海。 福岡良いよ、福岡! 今回の会は茅場町のコワーキングスペースCo-Edoで行いました。 会が始まる前からビールが投入され、質疑応答が活発なよい会になったと思います。 Co-Edo良いよ、Co-Edo!
CakePHP 1 to 2 Migration tips 100 from ichikaway まぁ、100個も紹介する時間は無く、31個まで。残りはどこかで。。。。 ちなみに表紙の写真は、自宅から徒歩10分ぐらいのところにある海。 福岡良いよ、福岡! 今回の会は茅場町のコワーキングスペースCo-Edoで行いました。 会が始まる前からビールが投入され、質疑応答が活発なよい会になったと思います。 Co-Edo良いよ、Co-Edo!
CakePHP2.2になったので、1.3, 2.0, 2.1, 2.2で比較しました。 比較したコードは、postsテーブルをbakeしただけの単純なものです。 https://github.com/ichikaway/CakePHP-PerformanceCheckSample この画面のように、ページング処理が入ったindexアクションを対象に計測しました。 DBには25,000件のレコードが入れてあり、その中から同じ20件を抽出して表示するアプリで比較しています。 環境 サーバ構成 サーバ: Dell SC440 Pentium Dual CPU E2180 @ 2.00GHz 2G Memory SATA HDD 7200rpm OS: Ubuntu11 64bit PHP 5.3.5 with APC Apache 2.2.17 MySQL5.1 計測 Siegeというabのよう
cakephp 1.2.2を利用してます。 AuthComponentを使っている場合、ログイン後の遷移先を指定する場合、 UsersコントローラのbeforeFilterなどで $this->Auth->loginRedirect = array('controller' => 'hoge', 'action' => 'view');と指定しますが、セッション情報の中に、Authのリファラ情報が記録されている場合は、このリファラ情報が優先されてしまうため、ログイン後の遷移先を固定したい場合には不向きです。 (CakeBookにはこのことが書いてありませんが、authコンポーネントのソースコードのコメントに下記内容が書いてありましたorz) If this session value is not set, the user will be redirected to the page s
PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ
自分の英語力アップと、技術力アップを兼ねて、好きな開発者の書いた記事をある程度翻訳して載せていこうと思います。今までMarkとかMcurryとかの興味深い記事をざっとは読んでたけど、自分が読むだけだと流し読みになりやすくて、読んだつもりになっただけで何も残らず、いかんなぁと思ってました。 全訳ではなく、自分が記事を理解して、ざっくりと翻訳して発信していくようにすれば、まず記事の内容を理解し、それを分かりやすく短く書くようになるので、良いのではないかと思いました。一人勉強会みたいなもんです。 これを続けていき、ある程度の段階になったら自分も英語で定期的に発信していきたい。 mark-storyの記事 5 signals that can indicate its time to re-factor リファクタリングすべき時期はいつごろか?その指標となる5項目を挙げています。 1. メソッドの
Cakephp1.2.6 追記(2010/12/16): コメントでPHP5.3の動作不具合報告を頂いたので対応しました。報告ありがとうございました。現状、PHP5.2.15, PHP5.3.4で確認し、CakePHPは1.3.6, 1.2.9で確認しました。gitの最新版か、githubにあるダウンロードボタンから0.02というバージョンのコードをダウンロードしてご利用ください。 入力項目が多くなると、確認画面を作るのも時間がかかりますよね、面倒ですし。今までは、確認画面で別途 $form->value使うとか、Postの値をそのまま表示するようにしてたのですが、デザインが入力画面とほぼ同じなのに別に実装するのがなんだかなと思ってました。それに嫌気がさして、フォーム入力画面でも確認画面でも同じメソッドで、フォームタグと値の表示を切り替えるXformHelperを開発しました。 機能は色々
cakephp 1.2.6で開発してます。 Ktaiライブラリを使ってみました。そのメモ お手軽に携帯の対応ができるのでオススメです。ライブラリの公開感謝です! 画面出力はSJIS-winで、Cake側は全てViewファイルも含めてUTF-8です。モバイル用のコントローラは独立させてます。 画面出力の文字コード変換は、ヘルパー側でやるようなので、絵文字使わなくてもヘルパーの設置は必須です。vendorsは/app/vendorsじゃなくて、appと同じ位置にあるvendorsディレクトリなので注意が必要です。 1. ktai libraryをダウンロードして設置 ここからダウンロード。 下記のように設置 /app/app_controller.php ← 既存ファイルがある場合は、redirect()の内容だけをコピー /app/controller/component/ktai.php
自分用メモ findの条件でcurrent_date使う場合。配列のキーを指定せずに、値に全部入れる <php $field = array( 'id' ); $cond = array( 'activeid' => $id, 'status' => 1, 'activeid_expire >= current_date' ); $result = $this->find( 'first', array( 'conditions' => $cond, 'fields' => $field ) ); Findの条件指定は下記に色々と書いてある http://book.cakephp.org/ja/view/74/Complex-Find-Conditions findの第1引数で指定できるもの (all / first / count / neighbors / list / threade
CakePHP1.2.3を利用しています。 今までは「独自のバリデーション関数を追加(日本語の文字数チェック)」で書いたように、独自バリデーションルールをapp_modelとかに書いてモデルで使いまわしてたんですが、そろそろ汎用的なものはプラグインでまとめて複数プロジェクトで統一して使えるようにしたいと思い移行しました。 プラグインのbehaviorに独自バリデーションルールをまとめて、モデルから利用するまでのTipsです。 まずは、プラグインに関してはSlywalkerさんのCakePHP勉強会@tokyo #4の発表資料に目を通しておくと理解が早くなります。 http://d.hatena.ne.jp/slywalker/20090523/1243059244 プラグインの場所は、app/plugins以下が基本ですが、複数プロジェクトで使いまわすので任意のディレクトリにした方が楽です
CakePHP 1.2.2を利用してます。この話は1.2だったらどれでも適用できると思います(cake1.1は分かりません) ーーーーーーーーーーーーーーーーー CakePHP2であれば、Model::query()が、擬似bindではなくPrepared StatementでSQL発行するので安心です http://d.hatena.ne.jp/cakephper/20120204/1328324327 ーーーーーーーーーーーーーーーーー 集計用SQLなど、SQLが複雑になったりする場合や、SQL文を直接書いたほうが開発効率が上がる個所に関しては、Model::query()を利用して、下記のように直接SQL文を発行してます。 $this->Model->query("SELECT `Post`.`id` FROM `posts` AS `Post` WHERE `Post`.`id`
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く