重複コードは、常に次善のソフトウェア設計の兆候であり、それを防ぐ機会はたくさんあります。あなたの特定のタスクのためのそれらのいくつかはここにあります:
1. パラメータを使用する
ファイルを 1 つに統合し、URL で GET-Params を使用しますfile.php?output=pfd
。スクリプトでは、このパラメーターを読み取り、$_GET['output']
生成するエクスポート形式 ( if ... else
、switch
) を決定できます。
2. インクルードを使用する
大きなファイルを 1 つだけ持つと、非常に混乱します。したがって、3 つの php ファイルを保持し、4 つ目のファイルを作成することもできます。このファイルget_data.inc.php
には、データを取得する重複コードがすべて含まれています。これで、3 つのすべての php でこのファイルをロードして実行できますinclude get_data.inc.php
。
3. 機能を利用する
インクルードが何をするのか、何が依存関係なのかがわからないため、コードをインクルードにアウトソーシングします。これも混乱を招く可能性があります。したがって、機能を関数にカプセル化することをお勧めします。ここでは、関数に何を貼り付けるか (db 接続?)、何を取得するか (データ配列?) を明確に定義できます。新しいファイルget_data.func.php
を作成して を定義しfunction get_data($db_connection)
、すべての作業を行い、出力の準備が整ったデータを返します。次に、すべてのファイルにファイルをインクルードしrequire_once get_data.func.php
、$Data = get_data($db_connection);
.
4. クラス継承を使用する
クラス継承の概念を使用できます。データベースからデータをフェッチする機能を含む抽象クラスを定義し、抽象関数を定義できますabstract public function output();
。output()
次に、特定の方法で関数を実装するクラスを拡張する子クラスを作成できます。
5. MVC フレームワークを使用する
確立されたフレームワークを使用して、「Model View Controller」(MVC) パターンを実装できます。ここでは、アプリケーションのさまざまなレイヤー (db からのデータ、出力用のデータの準備、データの提示) を非常にきれいな方法で分割します。
免責事項: これらは、プロジェクトをよりよく整理するための学習のヒントにすぎません。あまり経験がない場合は、大きな MVC フレームワークから直接始めることはお勧めしません。悟りの道を上から下へと進んでください ;)