PHP5.1.x系でseezooを動かしたい場合は?

おそらくサーバー要件できついかもしれないのがjson_encode関数のサポートだと思います。

SimpleXML関数系はPHP5組み込みですが、json_encode関数のサポートはPHP5.2.0以上となっています。

よって、


PHP5.0 < 導入サーバーのPHPバージョン < PHP5.2

の場合、json関連の処理がまったくできない事になってしまいます。

その場合、例外的ではありますが、PEAR::Services_JSONを入れたら何とかなります。

Servieces_JSONのDLとインストール


PEAR::Serveice_JSONからダウンロードできます。

PEARのパッケージマネージャがあれば、コマンドからインストールできます。


# pear install Services_JSON-1.0.2

幸いにしてPEARの依存関係がないので単体で使用できます。

ダウンロードした場合は、解凍してできるJSON.phpをsystem/application/libraries/以下に設置します。

設置方法


この関数はグローバルで使いたいので、CodeIgniterのヘルパーに関数を追加します。
自作ヘルパーを作ってロードしても良いですし、
分からない方はsystem/application/helpers/seezoo_helper.phpに以下のコードを追加すればOKです。


// 念のために関数が存在するかチェック
if ( ! function_exists('json_encode') )
{
 // JSON.phpをincludeしておく
 require_once(APPPATH . 'libraries/JSON.php');

function json_encode($data)
{
// Services_JSONインスタンス生成
$json = new Services_JSON();
// encodeして値を返却
return $json->encode($data);
}
}

perr installコマンドでインストールした場合はinclude_pathはセットされているので、上記requireは


require_once('JSON.php');

でOKとなります。
これでjson_encode関数が擬似的にサポートされます。*1

もしもPHP5.1.xとかでseezooを動かしたい!ということがあればお試しくださいませ。

あ、あとインストーラではPHP5.2以上のチェックを行っているので、そこをスキップしないといけないですね。
後日パッチ配布予定です。


要望が多ければ、次回バージョンアップではService_JSONをデフォルトで組み込んだPHP5.1.x系対応版とする予定です。*2

*1:※Services_JSONと組み込みのjson_encode関数は結果が若干違うようですが、JavaScript側でJSONを扱う際にはハッシュのキーの順は特に関係しないので、問題ないと思います

*2:もしjson_encodeをサポートさせる他のライブラリがあれば教えてください><

MAMPなどの80番ポート以外のインストールもサポートしました

MAMPで8888番ポートを使っている環境にインストールしたいけど、対策方法は?」という要望があり、急遽インストーラを更新しました。
正式リリース版から有効になっています。

変更内容

インストーラが起動する際、80番ポートでなければ


http://localhost:8888/install_directroy

のようにポート番号をつけてインストールする事ができます。
XAMPPやLAMPPのようなデフォルト80番ポートの場合はそのままでOKです。

deployするときは?

テスト環境なら大丈夫ですが、本番にアップする際には問題があるので、設定ファイルを書き換えて設置します。
具体的には、



# root/system/application/config/config.phpの最初の方

$config['base_url'] = 'http://localhost:8888/your/local/settings/';

を、


$config['base_url'] = 'http://ドメイン名/'; // 最後の「/」を忘れないでください


と書き換えれば、システム全体のパスが書き換わります。*1

さらに言えば、データベースの設定も、


# root/system/application/config/database.phpの下の方

$db['default']['hostname'] = 'なんとかかんとか'
.
.
.

と書かれているので、こちらも本番の環境に合わせて書き換えてあげればそのまま動作します。
普段WindowsLinuxで開発しているのでこのあたりの対応を忘れていました。申し訳ありません><

*1:mod_rewriteを動かしていると上手くいかないかもしれません。