0

メインサイトのソフトウェアをsmarty3にアップグレードしようとしています。smarty2を使用する組み込みバージョンのgallery2を除いて、すべてが正常に機能します。

それはそのように含まれています:

require_once('../../gallery2/embed.php');

埋め込まれたgallery2は、メインサイトのsmarty3クラスを自動的に拡張します(smarty2と3は同じクラス名を使用します)。そのため、gallery2はsmarty2のようにsmarty3を使用するようになりましたが、これは機能しません。

そのような場合、smarty2とsmarty3の平和的な共存は可能ですか?

  • 両方のsmartyクラスの1つの名前を変更しています...失敗しました(smarty内で物事を壊します)
  • smarty3互換性関数を使用してgallery2のテンプレートオブジェクトを拡張しようとしました...失敗しました
  • ええ、名前空間が解決策になるでしょうが、smartyは箱から出してそれらを使用しないので...

助けてくれて本当にありがとうございます

4

1 に答える 1

0

私はそれを汚い方法で解決しました。smarty2 を別のクラス名にリファクタリングして smarty3 から smarty2 を分離 + 含まれているすべての関数の名前を変更 (それぞれ別の関数に含まれています) + 名前を変更した関数を使用してコードをコンパイルするための変更。かわいくない。しかし動作します。

于 2012-08-07T06:35:37.237 に答える