yuu_nkjm blog
2009-11-21(Sat) 編集
[Apache][w2box] w2boxでTimezoneのエラー
apacheを更新したら,w2boxが動作しなくなった.apacheのログを見ると
PHP Fatal error: ereg(): Timezone database is corrupt - this should *never* happen! in w2box/lang/index.php on line 12
というエラー.w2boxのlangファイルに
date_default_timezone_set('Asia/Tokyo');
と追記したら直った.本当は,phpの設定ファイルにデフォルトのタイムゾーンを設定するべきなんだろうなとは思う,がまあいいや.
2009-11-30追記.頻発するのでphp.iniに下記の通り記述した.
[Date] ; Defines the default timezone used by the date functions ;date.timezone = date.timezone = 'Asia/Tokyo'
2011-11-21(Mon) 編集
[openSUSE] WHEELグループのユーザしか管理者権限を取得できないようにする
rootになれるユーザを限定したいので,wheelを使う.以下,openSUSE11.4 (64bit)の時の設定.
/etc/pam.d/su /etc/pam.d/su-l auth required pam_wheel.so use_uid group=wheel /etc/group wheel:x:10:root,hoge,fuga (rootはいらないかも) /etc/login.defs 設定を変えない. (openSUSE10.3の時は入れていた様だ.SU_WHEEL_ONLY yesを入れない)
参考ページ
2014-11-21(Fri) 編集
[CakePHP][PHP] CakePHPではまったこと,ちょっと分かったこと
まずはメモ
idという属性名以外の属性を主キーにする
以下のような指定が必要.
class User extends AppModel { public $primaryKey = 'user_id';
ctpファイルって沢山つくらなあかんの?
public function resumeRecentState($session_id) {$this->render('/Play/monitor');}
他のレンダラを指定してやればOK.
validation
saveから切り出して,CakePHP 2.x | コントローラ内でバリデーション処理を呼び出す方法.
Composerのインストール
zypper in php5-openssl php5-phar php5-mcrypt curl -sS https://getcomposer.org/installer | php # composer.jsonがあるディレクトリで以下を実行すると,依存ライブラリがダウンロードされる. php composer.phar install
debug関数
$this->log(print_r($obj, true));としてログを見ていた.グローバル関数としてdebug($obj)を呼び出すと,debugログが画面上に表示された.Config/??.phpのdebug logの指定の影響を受けるらしい.グローバル関数としてpr($obj)というのもあるようだ.Cakeで使うならdebugの方が良さそうだった.
DebugKit
便利そう.ただ,画面毎のデバッグになるので,リダイレクトを使うとログが見られなさそう.
save
saveの前に暗黙的にバリデーションが呼ばれる.改修前のプログラムがリダイレクトを多用しているせいで,バリデーションエラーなどが追いかけづらかった.
バリデーション
バリデーションにおいて,rule’ キーは必須です.
'mail' => array( array( 'rule' => 'email', ’required’ => false, ’allowEmpty’ => false, 'message' => array("validate_format", "label_mailaddress") ), array( 'rule' => array('maxLength', '100'), 'message' => array("validate_length", "label_mailaddress", "100") ) )
「rule」キーはバリデーションメソッドを定義します。単一の値と配列、いずれも使用できます。「rule」の指定は、モデル中に作成したメソッド名か、コアのバリデーションクラスのメソッド名、もしくは正規表現である必要があります。