私はプラグインとテーマ用の独自のwordpressスターターキットを作成します。名前空間が競合しています。異なるディレクトリのために自分自身のspl_autoload_register
私のプロジェクト(wpプラグインとテーマ)でPHPネームスペースを使いたいです。すべてがうまく
:
私はspl_autoload_register
機能を設定します。私のスターターキットに基づいて2つのプロジェクトを作成するまで。この場合、エラー
Cannot redeclare class ...
が表示されます。
すべてのプラグインとテーマは別々のディレクトリにあります。そしてそのような各フォルダにはspl_autoload_register
の機能を持つ私のスターターキットがあります。
マイ構造:
私は名前の競合を避けるにはどうすればよいですか? 他の誰かが関数を登録した場合どうなりますかspl_autoload_register
?
スターターキットを使うときは、私の新しいプラグインディレクトリで 'git clone'を実行するだけです。次に、config.phpファイルを変更する必要があります。そして、私は新しいプラグインの作業を開始することができます。異なるプラグインに異なる名前空間を使用する必要がある場合は、新しいプラグインごとにすべての名前空間を変更する必要があります。右?もしそうなら、それは便利ではない。多分、私はその仕事について正しくないのですか? – LostDok
名前空間の有無にかかわらず同じ問題があります。ネームスペースが提供するものは、多かれ少なかれオブジェクトのより長い名前です。プロジェクト(またはクラスまたは定数)に同じ名前の関数を2つ持つことはできません。しかし、名前は同じだが異なる名前空間を持つ2つの関数を持つことができます。それ以外の場合、関数に同じ名前を使用すると、PHP(とWP)が他のプラグインと区別してあなたのプラグインの1つを教えてくれると思いますか? – axiac
それから、私は1つの解決策しか見ません。これにより、私のスターターキットは別のプラグインになります。他のプラグインはこのプラグインに依存します。その後、すべてのプラグインでスターターキットのクラスを使用できます。プラグインのクラスには一意の名前空間があります。しかし、それでも私が望むほど便利ではありません:) – LostDok