ユーザーが毎月のデータを入力できるようにすることを目的とした PHP で Web サイトを作成しています。これは MySQL に保存され、いつでもユーザーは統計を表示してデータを処理できます。私はすべての基本を完了しましたが、私のコードは完全に判読できません。それは大量の if ステートメントであり、明らかな構造がなく、コメントがあってもかなり不透明です。コードをエレガントに構築する方法と、PHP の OOP 機能をどのように利用するか。
4 に答える
ええと..私は一般的に何をしているのかをあなたに伝えることができますが、それが「最良の」方法であるか、より透明なワークフローがあるかどうかではありません...それが私にとって非常にうまくいくというだけです;)
まず最初に、そして最も重要なこと:php内のすべての非phpコードを削除します。html表示の場合、テンプレートを使用して、テンプレートシステムを自分で作成するか、既製のものを入手します(たとえば、スマート)。
頻繁に使用する構造(SQL接続やアクセスなど)を特定し、それらをクラスファイルに配置します(必要に応じて、1つのファイルを編集するだけで、他の無数のファイルも編集することなく、SQLシステムを簡単に変更できます)。重複するコードフローを見つけます。 (ほとんど同じif-else-structuresなど)そして、元のコードを前述の関数に置き換えるための関数を作成します。特定のタスクに属する関数のクラスをさらに作成することもできます。
つまり、db用に1つのクラス、ユーザー情報と編集用に1つ、情報の追加、編集、削除用に1つ、そしてhtml出力用に1つ(そしておそらくそれ以上)になります。
次に、それに応じてファイルシステムを設定します(クラスファイルをサブフォルダーに入れ、テンプレートを別のフォルダーに入れます。画像、JavaScriptなども同じです。pp)
次へ:すべての「設定」を見つけて、変更が必要になる可能性のあるすべての事前定義された値を見つけ、それらを設定ファイル(たとえば、init.php)に入れます。
そして最後の部分として、これ以上減らすことができない単一のphp内のすべての混乱をクリーンアップします。1つ目:すべてのセットアップ、セットアップに必要なファイル(クラス)を含め、このスクリプトなどに必要な定数を定義します。2つ目:すべてのスクリプト関数をアルファベット順または論理順で指定します。そして最後のコードフロー。
そして、それだけです(多くの作業...)しかし、あなたは私が維持しやすいと思う構造になってしまうでしょう。確かにinit.phpにあるよりも、設定を編集する必要がある場合は、いくつかのdb構造を変更するか、データベースを変更したい場合は、sql.phpなどを更新するだけです。
他の誰かがコードを維持する必要がある場合は、各ファイルにも適切にコメントする必要があります。5年以上後に変更する必要のあるスクリプトがあるため、個人的にもコメントを使用します。そうすれば、私はまだ何がどこに行くのかを知っています;)
幸運を!
コードの凝集性と疎結合について読むことをお勧めします。これらは、優れた保守可能なアプリケーションを構築する場合に熟知しておく必要がある重要な概念です。
また、すべてではないにしても、設計パターンと一般的な使用例に追いつく必要があります。少なくとも、IMO である大きなもの: シングルトン、ファクトリ、DI、および IoC (これらは全体的に表示されます)。
理論的な考え方ができるようになったら、業界標準の方法でコードを書き始める必要があります。これは、PHP の場合は MVC です。1 つのフレームワークを使用できます。 1 つのフレームワーク - 他のプロジェクトのコードの多くを読むのは非常に簡単です。なぜなら、通常は同じパターンに従っており、一部は他のものよりも優れているからです。
幸運を!
コードを構造化するためのフレームワークが必要です。幸いなことに、この問題は多くの人によって解決されています。CodeIgniter、Cake、Zend、Kohana、Symfony、Yii、Slim、Laravel、Fuel など、リストは続きます。
初めての PHP フレームワークとしてCodeIgniterを検討することを強くお勧めします。ドキュメントとコミュニティはどちらも他に類を見ません。
Yii、Zend、Symfony、Kohana などの PHP フレームワークを使用できます。MVC 分離はあなたの良き友となるでしょう。