Akelosでつまづかない準備

Akelosの触り始めでツマづかないための、リファレンスとログの収集方法。

Akelosをダウンロードして展開すれば、すぐに、Railsでできることはだいたいできます。HTTPサーバ+PHPの設定(と勉強)は、別途必要。

 > php script/migrate
 > php script/generate model User
 > php script/console
 > php script/generate scaffold User
 > php script/test

Creating a Blog in 20 Minutes using the Akelos PHP Framework

↑なにはともあれ、まずは、これを眺めること。
そして、「ああ、Railsと同じだぁ」と感じたら、既に勝ちです。

リファレンス

次に、APIリファレンスが必要。AkelosのAPIリファレンスは、Rails並みに充実しています(というか、このあたりも忠実にコピーしてるw)。

 > phpdoc -d lib/ -t docs/api

Viewテンプレートは、SinTagsという言語を使うこともできます。別に強制力のあるしくみではなく、生PHPで書いてもいいです。便利そうだったら使ってみましょう。

リファレンスは、この2つをいつでも参照できるようにしておきます。
これ以外のドキュメントは今のところあまりナイので、私の場合は、
Railsのアレは、Akelosのドレだろう。。と、リファレンスを探して進めています。CakePHPからの移行を考えてる方には、チュートリアルがあります(私はやってません)。

ログについて

デフォルトのままでは、イベントログやデバッグログが出力されないので、ちょっと設定と改造が必要。

Akelosのバージョンは0.7.1です。

■イベントログを出力するには、

SQL+HTTPをサーバログに出力させて、画面から余計なログを消す。

 /config/config.php

 define('AK_LOG_EVENTS', true);
 define('AK_ERROR_REPORTING', E_ERROR|E_PARSE );
                  //画面ログレベル。
                  //デフォルトはE_ALL

■デバックログを出力するには、

 $this->Logger->debug($obj);

としますが、ControllerではLoggerが未実装なので、次のように追加しました。

 /lib/AkApplicationController.php

 function handleRequest($options = array()){
   $this->Logger = Ak::getLogger();

とにかくロガーは、Ak::getLogger()でいつでも使える、と覚えておけばよし。

■配列とActiveRecordを展開してロギングするには、

ログ出力する変数が配列の場合、展開表示されないバグ(?)があります。これではリクエストパラメータも表示できないので不便。
あと、ActiveRecordオブジェクトをログに放り込んでデバックしたいので、その分も追加しておきます。
Windowsの場合はログが改行しないので、\n → \r\n とします。

以上3点、AKLogger::_getLogFormatedAsStringを改造。

 /lib/AkLogger.php

 //line:186
 function _getLogFormatedAsString(・・・){
   //++ 3行追加
   if( $error_message instanceof AkActiveRecord )
     $error_message = $error_message->getAttributes();
   $error_message = var_export($error_message,true);
   //++

   //line: 196
   //-- $details .= "\n\t\t- ".$k.": $v";
   //++
   $details .= "\r\n\t\t- {$k}: ". var_export($v,true);

この辺りを準備したら、もうハマることはなくなったかも。今はかなりサクサク開発できてます。

ログも画面もウンともスンとも言わなくなったら、

 define('AK_ERROR_REPORTING', E_ALL );

と、たまに戻したりしてます。


コメント
椹.jp
2011/04/25
akelos関連を検索すると武田さんのサイトだけが出てきます。
ローカルでxammpでのインストール、運営の仕方などを特集で組んでいただければ…
よろしくお願い致します。

コメントしてください

closed.