web-dev-qa-db-ja.com

プラグインで名前空間を使用できますか?

私は最終的にEnvato CodeCanyonに置くことを望んでいるプラグインを構築しています。

現在私はフォームmypluginname_actionの関数を作成しています。私はそれをたくさんしなければならないので、これは急速にばかげています。 PHP名前空間を使用することを考えていますが、使用しないのが良い理由があるのではないかと心配です。

  1. 名前空間はWordPressおよびEnvatoのコーディング標準と互換性がありますか?
  2. サポートすべきPHPバージョンで名前空間を使用できますか?
  3. 名前空間機能を利用するプロのテーマ/プラグインメーカーはありますか?そうでない場合は、なぜですか?名前空間を使用することによくある落とし穴はありますか?

私は自分自身のすべてを研究できることを私はよく知っています、そしてもちろん私はそうするでしょう、しかし私は開発の早い段階で、この時点で私はすでにこれを調べたかもしれないより経験豊富な人々からの素早い答えを期待します。

私はこれについてのどんな考えにも感謝します。

1
alexg

ある意味であなたは自分自身のために物事を複雑にし過ぎています、しかしあなたはあまりにも単純化しすぎています。

テストできないソフトウェアを販売しないでください。あなたのソフトウェアが3.5以降のすべてのバージョンのwordpressと5.3以降のphpで動作すると主張するなら、あなたはすべての組み合わせをテストしないなら大丈夫かもしれませんが、いくつかのバージョンがあなたのコードで動作しないことを証明するなら予想外の時間をかけて修正してください。余分な時間は利益と敗北の違いかもしれません、そしてあなたがそれを修正しようとしている間、あなたの評判は回復不能に傷つけられるかもしれません。

今のところワードプレスは5.6を推奨しているので、それから始めて、良い単体テストを書いて、コードが5.6で動作したら、あなたは5.5などでそれを実行しようと試みることができ、どこでそれが壊れるか見る。私はこの段階ではエラーを修正することを煩わさないで、そのバージョンとの互換性への要求があるまで、そしてそれがどれほど大きいのか、あなたが実際にそれをサポートすることに努力を入れたいかどうか決定するまで待ちます。

1
Mark Kaplun

あなたのプロジェクト/テーマ/プラグインで名前空間を完全に使うことができます!

唯一の欠点は、あなたがPHP 5.3の依存関係を導入することですが、WordPress自体は5.2.4しか必要としません。

2015年には、プラグインを幅広いコミュニティ(オープンソースまたは環境)に配布する場合でも、これは大きな問題ではないと思います。

Rootsチームはテーマやプラグインなどに名前空間を使っています。 https://github.com/roots/sage

5
thomascharbit

私がこの質問をしてから約4年後です。今これを読んでいる人のために、名前空間は公式にサポートされています。 5.2リリースノートから:

サポートされる最小のPHPバージョンは5.6.20になりました。 WordPress 5.2以降、テーマとプラグインは名前空間、無名関数などを安全に利用できます。

1
alexg