引き続き、CodeIgniterでアプリケーションを制作中です。実際の制作過程で感じたことなどを書いてみます。
CodeIgniterで管理ページを作成するにはどうすればよいのか、「CodeIgniter徹底入門」を参考にしながら作ってみます。
CodeIgniterでアプリケーションを制作するついでに、自分がよく使いそうなものをメモしていきます。まずは、「CakePHPでURIの形式を統一する」と同じようにURIの統一からです。
シンプルかつ高速なPHPフレームワーク、CodeIgniterの解説本、CodeIgniter徹底入門が発売されました。
PHPで、あらかじめ変数に代入しているクラス名を使って、そのクラスのインスタンスを生成するにはどうすればよいか調べてみました。
APIが提供されていないサービスから欲しい情報だけを取得するには、HTMLなどから自前でスクレイピングを行うしかありません。PHPでのスクレイピングに役立つライブラリなどをまとめてみました。
PHPで、ある関数が存在するかどうかを調べるためにはfunction_exists関数を使います。しかし、この関数ではメソッドの存在は調べることはできません。メソッドが存在するかどうかを調べるにはmethod_exists関数を使います。
PHPのオンラインマニュアルをよく使う人におすすめのブックマークレットを紹介します。検索の手間をちょっとだけ軽減してくれるブックマークレットです。
「CakePHPでアプリケーションの設定を編集するページを作りたい」で、一画面で複数のレコードを編集するためにモデルクラスのgenerateList()を使ってビューを作成しました。この場合、フォームから送信されたデータをそのままでは保存できないので、これをモデルデータ形式の配列に戻すメソッドを作ってみます。
「CakePHPでアプリケーションの設定をデータベースに保存する」で書いた方法でアプリケーションの設定を編集するページを作っています。
技術評論社のLLフレームワークBOOKSシリーズ Fast CakePHPが発売されました。
CakePHPで制作中のアプリケーションで設定をデータベースに保存する処理を書いていたのですが、「"アプリケーションの設定の保存方法" フォーラム - CakePHP Users in Japan」経由で簡単な方法があることを知りました。
CakePHPでアプリケーションを作成する場合、注意しておかないと外部から容易にデータを改竄できるアプリケーションができあがってしまいます。この問題はCakePHPガイドブックにも書かれています。
PHPにはコールバック関数を受け入れるためのcallbackという擬似的な型があります(PHP: 本ドキュメントにおける疑似的な型および変数 - Manual)。コールバック関数を引数にとる関数を定義するにはどうしたらよいかというと、通常の関数と同じように定義するだけです。
array_map()などのコールバック関数を引数にとる関数にメソッドを指定したい場合、PHPではどんな風に書けばよいかわからなかったので調べてみました。
CakePHPのURIは、通常、コントローラ名/アクション名/パラメータという形になりますが、実際には、コントローラ名/アクション名/パラメータとコントローラ名/アクション名/パラメータ/のどちらでも同じようにアクセスできます。とても気持ち悪いので一つのURIに統一するようにしています。