WordPressとオブジェクト指向プログラミング–概要

公開: 2021-04-20

WordPress開発者の場合、コードを手続き的な方法で作成する可能性があります。 いくつかの簡単な順序付けられた手順を設定し、それらに従って目的の出力を達成し、問題を解決します。 簡単な例は、以下に示すようなWordPressループです。

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

ループでは、最初に実行中のクエリに対応する投稿があるかどうかを確認し、ある場合は、whileループを使用して投稿のループを開始します。 functions.php .phpファイルに挿入するすべてのカスタム関数についても同じことが言えます。

この記事では、手続き型プログラミングから移行し、オブジェクト指向プログラミング(OOP)と呼ばれるプログラミングのスタイルを見ていきます。 これがプログラミングスタイルとしてこれまで使用してきたものとどのように異なるかを調べ、その利点のいくつかを見ていきます。 しかし、最も重要なことは、オブジェクト指向の概念がWordPress環境でどのように機能するかとそれらの間の関係を説明することです。

これに入る前に確立したいのは、オブジェクト指向プログラミングの役割と、それがいつ使用されるのに適しているかを学ぶことが重要であるということです。 オブジェクト指向のプラグインまたはテーマを構築する方法を学ぶことはプロジェクトに適しているかもしれませんが、これが当てはまる場合を理解することが重要です。 この記事が、特定のプロジェクトがオブジェクト指向コードでの記述に適している時期と理由を理解するのに役立つことを願っています。

問題

WordPress自体はすでにあなたを手続き的に考えるように促しています。 また、WordPressは常にPHPオブジェクトを使用していますが、WordPress自体がオブジェクト指向であるとは限りません。 これは、OOPが何であるかについての一般的な誤解であり、多くの人がWordPressがオブジェクト指向であると信じている理由ですがそうではありません。

手続き型プログラミングの使用を控えるべきだと言っているのではないことを明確にすることが重要ですが、このコーディングスタイルには制限があるのは事実です。 たとえば、テーマやプラグインをカスタマイズする場合、手続き的な方法でコードを記述することで、目的のHTML出力を実現できる可能性があります。 しかし、スケーラビリティと将来のメンテナンスについてはどうでしょうか。

カスタムプラグインを作成するときは、在庫を取り、それがどれほどスケーラブルになるかを評価することが非常に重要です。 たとえば、プラグインが成熟するにつれて機能を追加することで、プラグインを拡張できるようにしたいと思うかもしれません。 この時点で、手続き的にコーディングするときにコードを整理するのが困難になります。

ただし、プラグインをコーディングしていない場合でも、手続き型プログラミングでは、すべてがどのように組み合わされているのかわからなくなるリスクが常にあります。 その結果、小さな変更を加えるたびに、意図しない結果が生じる可能性があります。

オブジェクト指向プログラミングは、より複雑な問題を解決するために使用されます。 手続き型プログラミングと同じ目標を共有する場合がありますが、多くの場合、優れた作業方法を提供します。 これにより、再利用可能で整理された安全な問題に対する大胆な解決策を作成できます。

オブジェクト指向プログラミングが問題を解決する方法

オブジェクト指向プログラミングには、クラスオブジェクトという2つの重要な概念があります。

クラスは基本的に、オブジェクトを作成するために使用されるテンプレートです。 各オブジェクトには独自のメソッドとプロパティのセットがあり、それらのプロパティの値は異なる場合があります。

したがって、先に進む前に、オブジェクトが何であるかを理解していることを確認することが重要です。 例として簡単な文を分解してみましょう。

「私は青リンゴを食べます」。

Appleはオブジェクト、緑はオブジェクトの色(Objectプロパティ)、動詞「eat」はメソッド(関数)です。

クラスは、それを使用するすべてのオブジェクトのプロパティと動作を定義します。 OOPの問題を解決するには、これらのプログラミングの「ブリック」を正しい方法で組み合わせます。

飛び込む前に、重要な最初のステップは、提案されたソリューションを設計するために時間をかけることです。 本質的に、あなたがする必要があるのは:

  1. 問題とそれを解決するためにプラグインが何をすべきかを定義する
  2. クラスとその関係、およびオブジェクト間の相互作用について説明します
  3. すべてをコードに変える
  4. プロジェクトをレビューしてテストする

このステップにいる間、最初の試みで完璧になったら幸運になることを覚えておいてください! 問題を解決する正しい概念が得られるまで、最初からやり直す必要があります。 これは、後で競合することなくチームとして使用できる一連のツールを提供する創造的なプロセスの一部と見なしてください。

OOPに関連する次の記事では、上記のすべての理論を実現する簡単な例を示します。

オブジェクト指向プログラミングの特徴

オブジェクト指向プログラミングの機能に入る前に、それが単純なメタファーでどのように機能するかをさらに明確にできるかどうかを見てみましょう。

水を沸騰させるために使用するボイラーがあるとしましょう。 私たちが機械を使用するとき、私たちは特定の方法でそれを行います。それはメーカーが私たちに許可する唯一の方法です。 「オン」ボタンを押したときのボイラーの運転方法を無効にすることはできません。正直なところ、必要も必要もありません。 それは私たちに2つの非常に重要な利点を与えます。

まず第一に、機能が制限されている(つまり、水を沸騰させる)ということは、システムがより堅牢で安全であることを意味します。 限られた機能セットと「オン/オフ」ボタンだけの提供は、ユーザーとして、ボイラーのメカニズムの近くに行くことができないことを意味します。 デフォルトでは、これは問題が少なく、システム全体がより堅牢であることを意味します。 操作が簡単なため、ほとんどの人が使用でき、ユーザーフレンドリーになります。

Pressidiumであなたのウェブサイトをホストする

60日間の返金保証

私たちの計画を見る

これを念頭に置いて、これがオブジェクト指向プログラミングとどのように関連しているかを見てみましょう。 理論的には、OOPには、カプセル化、継承、およびポリモーフィズムという3つの重要な特性があります。

カプセル化が行うことは、単一のエンティティ内でデータと動作をグループ化することです。 クラス内では、クラスのパブリック、プロテクト、またはプライベートラベルを使用して、使用方法(ボイラーボタン)を定義し、可視性を制御できます。 これにより、誰がアクセスできるかを制御できるため、非常に安全なシステムになります。 これは、メンテナンスと使用が簡単であることも意味します。

継承とは、クラス間でコードを再利用できるようにすることです。 そのような例の1つは、クラスが別のクラスを拡張する場合です。 Walkerクラスを拡張して、メニューやコメント構造などのツリーのようなデータのHTML出力を変更するときに、これを使用した可能性があります。 クラス間の関係を理解すると、再利用可能なオブジェクト指向コードを作成できるようになります。

最後に、ポリモーフィズムは、これらすべての関係を連携させるものであり、クラスに共通するもの、これらの共通要素を再利用する方法、およびそれらが他のものに関連しているかどうかを定義するものです。

結論

いくつかの具体的な例がなければ、上記のすべてがまだ少し混乱している可能性があります。 それでもなお重要なのは、オブジェクト指向プログラミングの背後にある理論を詳しく説明することです。今後の記事では、このエキサイティングなプログラミング手法を実際の世界で使用する方法を理解できるように、いくつかの有用な例を示してこれを進めていきます。

私たちの目標は、OOPに関する一連の記事を読み終えたときに、さまざまな状況でこのプログラミング方法を自信を持って使用できるようにすることです。 それまでの間、ウィキペディアでOOPについて読み続けたいと思うかもしれません。

オブジェクト指向プログラミングシリーズのパート2を読むには、ここをクリックしてください