Zend_Amf + Win/Linux compatibility
2009年10月24日 17:22
最近 PHP よりのネタばかりだ。。。
Windows サーバでの開発とかした時が無かったし、Flash デベロッパーのつもりなんであんま気にしてなかったんだけど、Zend Amf Server を設置して Flash と連携しようと思ってはまった。まあ、バックスラッシュとかそういった問題なんだけど一瞬途方に暮れたんでメモ。PHP 専門の人には基本中の基本だろうけど。
Zend Amf Server 単体も個人的には通常の Zend Framework での開発と構成を同じにしたいので、ini_set でライブラリをいつもの様に下記の様に設定。でもこれだと Windows で動かず。
ini_set('include_path',ini_get('include_path').':../_application/libs:');
すべてを吸収するのは不可能だとか途方に暮れてたら、PATH_SEPARATOR とか定数があるんですね。知りませんでした。なので下記の様に変更する事で対応出来ました。これで windows(xampp など)のローカルでの簡単なテストも行けますね。
<?php
if(!defined('PATH_SEPARATOR')) {
if(substr(strtoupper(PHP_OS), 0, 3) == 'WIN') {
define('PATH_SEPARATOR', ';');
} else {
define('PATH_SEPARATOR', ':');
}
}
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . '../_application/libs');
//. .(一部削除) . .
$_envIni = new Zend_Config_Ini(CONFIG_BASE . 'app.ini', 'env');
$_server =& new Zend_Amf_Server();
$_server->setClass('UserController');
$_server->setClassMap('UserVO', 'UserVO');
if($_envIni->status == 'test') {
$_server->setProduction(false);
}
$_response = $_server->handle();
echo $_response;
・・・・・
2011 年初め辺りに日本に復帰するだろう。まだ1年以上あるんだけど、その時期が自分的にはいい時期です。また日本で働ける様に、それまで海外でもっとウェブを鍛錬します。
