2017-03-15 7 views
0

__()メソッドが既に別の場所で宣言されているため、現在発生している問題に直面しています。2つのPHPサードパーティコード間のネームスペースの競合

これらの方法はいずれも、PHPのサードパーティライブラリからのものです。

ライブラリコードを直接変更せずにこの問題を解決する方法を教えてください。

+0

これらのライブラリはどのように使用しますか?私は非常に詳細な答え/例が必要なので、私はあなたを助けることができます。 –

+0

1つはWordpress、もう1つはLaravel、PHPフレームワークです –

+0

私は彼らが何であるか知っています。しかし、それらをどのように統合するのですか?コードはどのように見えますか? –

答えて

0

まあ、IMO、何も変えないのは難しいです。 3番目の-libの名前空間を少なくとも定義する必要があります。

は、あなたのメソッドの名前の競合を避けることができ

http://php.net/manual/en/language.namespaces.phpを参照してください。

0

これは難しいですが、使用目的によっては可能かもしれません。

あなたは、このようなコードがある場合:

include "something_laravel.php" 
//then 
include "something_wordpress.php"; 

を使用すると、これに類似したワードプレス、含める前にlaravelから__()機能を一時的に名前を変更することができます

include "something_laravel.php" 

rename_function('__', '__laravel'); 

include "something_wordpress.php"; 

自分自身に応じて、 __()関数を使用すると、名前を変更したり名前を変更したりすることができます。

+0

これはうまくいくかもしれませんが、私は本当に余分なライブラリが必要なsolutonを選びたくありません。私が知っていることは、コードを変更することで問題を簡単に修正できることですが、これは賢明ではないようです。 –

+0

@space_food_余分なライブラリは何ですか? –

+0

rename_functionはすぐにはPHPの機能ではありません –

関連する問題