Posts tagged date
PHP5 マジックメソッド
3PHP5 のマジックメソッドに関して調べたメモ
マジックメソッドとは
PHP5 でクラスを作成すると自動的に作成されているメソッドのこと。PHPマニュアルによると
PHP クラスにおける特殊関数の名前です。 これらの関数に関連する特別な機能を使用する場合を除き、 クラス内にこれらの名前を有する関数を作成してはいけません。
と説明されています。
getter や setter にあたるのがマジックメソッドの __get, __set です。
(続きを読む…)
Firefox3 インストール
5Firefox3 が公開されました。24 時間最多ダウンロードソフトとしての世界記録挑戦ということで貢献するためにも、早速ダウンロードしてインストールしてみました。
うわさ通り、表示はかなり速くなっているのが体感できます。
あと、ロケーションバーから履歴を検索できるのが便利です。
(続きを読む…)
jQuery でクッキーを扱う方法
1jQuery でクッキーを扱うのを下記サイトを参考にやってみました。
javascriptライブラリjQueryでcookieを超簡単に扱う方法 : 4GALAXYのメモ
Klaus Hartl – Stilbüro : Cookie Plugin for jQuery
jquery.cookie.js の準備
jquery.cookie.js をダウンロードして HTML で使えるようにします。
<script type="text/javascript" src="jquery.cookie.js"></script>
CakePHP1.2 SimpleTest でテストケースを作成する
6CakePHP1.2 に SimpleTest をインストール で SimpleTest をインストールするところまでやったので、今度は実際にテストケースを作成してみます。
空のテストケースを作成する
app/test/cases/models に user.test.php を作成して以下のコードで保存する。
<?php class UserTest extends User { } ?>
CakePHP1.2 「新規時のみ」or「更新時のみ」のバリデーション指定
0CakePHP1.2 からバリデーションがかなり強力になっていますが、レコードを追加するときまたはレコードを更新するときのみにバリデーションルールを適用する指定方法がありました。
var $validate = array( 'name' => array( 'required' => true, 'allowEmpty' => false, 'on' => 'update' 'message' => '名前を入力してください', ), );
CakePHP1.2 で追加される3つのバリデーション
1次に公開される CakePHP 1.2 に3つのバリデーションが追加されるようです。
Three new validation rules – cakebaker
真偽値か
var $validate = array('is_enabled' => array('rule' => array('boolean')));
WordPress の設定を使ってデータベースにアクセスする方法
8WordPress をプラグインの作成やカスタマイズするときに WordPress のデータベースの設定を使用してアクセスする方法です。
WordPress では wpdb のオブジェクトが $wpdb というグローバル変数に入っています。この wpdb クラスを使用してデータベースにアクセスします。wpdb クラスは wp-includes/wp-db.php で定義されています。
SQL を発行する
$wpdb->query('SQL文');
CakePHP 1.2 Form ヘルパーで input タグとエラーメッセージを別々に表示する方法
2CakePHP1.2 では Form ヘルパーの input メソッドでエラーメッセージを自動的に表示することが可能です。 自動的にエラーメッセージを表示するためには CakePHP1.2 のバリデーション で書いたようにモデルのバリデーションでエラーメッセージを設定しておきます。
/* モデルのバリデーション */ var $validate = array( 'email' => array( 'required' => array( 'rule'=>VALID_NOT_EMPTY , 'message' => '必須項目です' ), ); /* View の Form ヘルパー */ echo $form->input('User/email', array('type'=>'text'));
WordPress API フックの使い方
2API フックとは
プラグインやテーマの動作を WordPress 本体に連動させることができます。WordPress 本体に修正を加えなくてもカスタマイズできます。
アクションとフィルタ
API フックにはアクションとフィルタがあります。アクションは WordPress で発生するイベントによって実行されます。イベントは投稿やテンプレートの変更などユーザが行う行動です。フィルタはテーマなどで出力するテキストデータを変更するものです。
(続きを読む…)
CakePHP1.2 バリデーションで共通ルールを作成するときに便利な userDefined
0CakePHP1.2 バリデーションのルールを調べているときに気になっていた Validation クラスにある userDefined に関して調べてみました。
cake/libs/validation.php
function userDefined($check, $object, $method, $args = null) { return call_user_func_array(array(&$object, $method), array($check, $args)); }
と定義されています。
call_user_func_array は PHP の関数で、関数やクラスのメソッドをコールすることができます。
つまり独自バリデーションがこれを使用して実装できるということです。
使用方法はモデルに以下のようにバリデーションを定義します。
var $validate = array( 'field' => array('rule' => array('userDefined', 'Model', 'method_name')), ); function method_name ($data) { /* バリデーションのチェック エラーなら false 、エラーなしなら true を返す */ }
ただこれだと下記のように書けるのであまりありがたみがない。
var $validate = array( 'field' => array('rule' => array('method_name'), );
何に使えばいいのかと考えたところ、クラス名、メソッド名が指定できるのでシステムで共通のバリデーションを設定するときに使えるのではと思いました。多分これが一番うれしいところではないかと思います。
※ただ、app_model.php に共通にしたいバリデーションチェック用のメソッド名を書けばそれでいけるような気もする。