ここでは、Zend Framework1 において、フレームワークのバージョン情報を取得するサンプルスクリプトを掲載しています。
スポンサーリンク
Zend_Version クラス
Zend_Version クラスでは、フレームワークのバージョンの取得、比較および 最新の Zend Framework のバージョンが取得可能です。使用用途としては、バージョンの異なるフレームワークをサポートするアプリケーション開発が主なものになると思います。
// 現在使用しているフレームワークのバージョンを取得する var_dump(Zend_Version::VERSION); // 1.11.3 /* * 現在使用しているフレームワークのバージョンと比較 * 内部では、version_compare() 関数を使用している */ var_dump(Zend_Version::compareVersion('1.11.1')); // -1 var_dump(Zend_Version::compareVersion('1.11.3')); // 0 var_dump(Zend_Version::compareVersion('1.11.10')); // 1 /* * 現在利用可能なフレームワークのバージョンを取得 */ var_dump(Zend_Version::getLatest()); // ex. 1.11.5
プロキシ環境で最新バージョンを取得する(動作未確認)
Zend Framework-1.11.3 では、現在利用可能なフレームワークの最新バージョンの取得に fopen() 関数を使用して http://framework.zend.com/api/zf-version の内容を取得しています。そのため、プロキシサーバーを経由している環境や、php.ini において allow_url_fopen を Off にしている場合は、最新バージョンの取得に失敗します。
例)プロキシ環境で最新バージョンを取得しようとした場合のエラー内容
Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: そのようなホストは不明です。
動作未確認ではありますが、Zend_Version::getLatest() を使用せずに、直接 http://framework.zend.com/api/zf-version を取得することで、バージョン情報を取得できるようになると思います。
間違ってたら、ごめんなさい
サンプルその1(stream_context_create)
$url = 'http://framework.zend.com/api/zf-version'; $proxy = array( 'http' => array( 'proxy' => 'tcp://proxy_addr:8080', // プロキシサーバ 'request_fulluri' => true, // プロキシサーバによっては必要 'proxy_user' => 'user', // ユーザ名(プロキシ依存) 'proxy_pass' => 'password' // パスワード(プロキシ依存) ) ); $sc = stream_context_create($proxy); echo file_get_contents($url, false, $sc);
サンプルその2(Zend_Http_Client_Adapter_Proxy)
// Zend_Http_Clientの設定 $url = 'http://framework.zend.com/api/zf-version'; $proxy = array( 'adapter' => 'Zend_Http_Client_Adapter_Proxy', 'proxy_host' => 'proxy_addr', // proxyサーバ 'proxy_port' => 8080, // ポート番号 'proxy_user' => 'user', // ユーザー 'proxy_pass' => 'password' // パスワード ); // プロキシにリクエスト送信 $client = new Zend_Http_Client($url, $proxy); $response = $client->request(); // レスポンスの内容を取得 echo $response->getBody();