PHP 5.1.6 を搭載した企業クライアントの RHEL サーバーに展開するために、1.10 を使用して ZF アプリを構築しました。実行されません。
私はググったところ、それがPHPのバージョンであることがわかりました。ZF に PHP 5.2.4 の最小要件があることを認識していませんでした。また、HeadLink への呼び出しが致命的なエラー「未定義メソッド Zend_View_Helper_Placeholder_Container::ksort() への呼び出し」を引き起こしているようです。
PHP Fatal error: Call to undefined method Zend_View_Helper_Placeholder_Container::ksort() in /library/ Zend/View/Helper/HeadLink.php on line 321
クライアントは PHP をアップグレードしません。ZF なしでアプリを書き直したくないし、ZF を大幅に以前のバージョンにダウングレードしたくありません。
これを回避するために、ksort() を ZF 1.10 に追加するために使用できるパッチはありますか? 他にも問題があるかもしれませんが、これが私が今行き詰まっているところです。
どんなアドバイスでも歓迎
どうもありがとう
イアン
編集: 以下のコメントで述べているように、RHEL5 は企業環境の標準になるため、多くの人が以前にこれを実行したことがあると思います。ゼロから考案するのではなく、既存のソリューションへのリンクを望んでいました。
更新:受け入れられた回答にリンクされているパッチを使用したところ、問題が修正されました。
これは、次のパブリック メソッドを Zend/View/Helper/Placeholder/Container/Abstract.php に追加しています。
/**
* Sort the array by key
*
* @return array
*/
public function ksort()
{
$items = $this->getArrayCopy();
return ksort($items);
}
残りの問題が 1 つあります。Zend_View_Helper_Doctype の文字列変換による PHP 通知。この関数を上下の同様の関数と比較すると、これはライブラリのエラーのようです
public function isHtml5() {
return (stristr($this->doctype(), '<!DOCTYPE html>') ? true : false);
}
変更:
public function isHtml5() {
return (stristr($this->getDoctype(), '<!DOCTYPE html>') ? true : false);
}
ライブラリ自体にパッチを適用することは、私が通常行う最後のことでしたが、この場合、問題が解決しました。パッチがリポジトリでバージョン管理され、将来の開発者のために明らかに文書化されていることを確認します.