プログラム
スマートな構造の PHP プログラムを構築する
時間: 2000/10/19 09:06 著者: sharetop Oso.com
この記事はずっと書こうと思っていたのですが、時間がなくてなかなか書けませんでした。それを完成させてください。私はその方法を説明するためにここにいるのではなく、この記事が効果的で柔軟なネットワーク アプリケーションを構築する方法について議論するための単なる紹介になれば幸いです。
Web アプリケーション開発に携わって 2 ~ 3 年が経ち、Geocrawler 用に書いたコードを振り返ると、それが自分のものであるとは信じられなくなりました。 GPLのため、PHPBuilderのソースコードも混在しています。
最近、私は経験豊富な PHP 開発者として、SourceForge の作成を手伝っていますが、これが最終結果の範囲を示していると思います。優れたコードは、適切なライブラリと関数呼び出しを備えた複数の部分に分割され、サイトの各部分が他の部分から比較的独立している必要があります。
しかし、これはまだ最善ではありません。もしやり直せるとしたら、HTML 層をデータ層から分離することにもっと重点を置き、オブジェクトと明確な関数ライブラリを通じてこれを実現するでしょう。
美しいグラフィック
マネージャーが美しいグラフィックやグラフを使って説明することを好むのは私も知っています。それは私たちに最高の印象を残すでしょう。構造の背後に隠すというこのアイデアを使用すると、ロジックを外観から分離できます。これは、あらゆる複雑なプログラムを「API/データ アクセス レイヤー」で表現できることを意味します。
セキュリティチェックや更新された文章などをHTMLレイヤーに入れるのではなく、それらをまとめてAPIレイヤーに入れる方が良いでしょう。そして、この HTML レイヤーには、単純な関数呼び出しと返された配列、オブジェクト、その他のカスタム オブジェクト、およびデータベース検索結果のコレクションなどのみが含まれています。
これを行うと、最上層が非常に薄くなり、作成とメンテナンスが簡単になります。
次の例では、この HTML インターフェイスには、API レイヤーの一部の関数、一部の HTML ツール ライブラリ (ポップアップ ボックスなどを生成できる)、およびデータベース抽象化から呼び出されるいくつかのデータベース操作メソッドへの直接呼び出しのみがあります。レイヤー (特定のデータベースにバインドする必要はありません)。
基本
柔軟な PHP プログラム構造の最も基本的な側面は次のとおりです:
データベースの独立性
インターフェイスの独立性
移植性
オブジェクト指向、または少なくとも関数ライブラリで構成されている必要があります
その他 ?
もちろん他にもいくつかありますが、それらは大きすぎると思います。おそらく自分で指摘してもよいでしょう。
それぞれについて詳しく話しましょう。
1. データベースの独立性
サイトを作成するときは、サイトがどこで実行されるかわかりません。もちろん、サイトを大きくし、トラフィックを多くする必要があります。したがって、MS Access やその他の軽量データベース システムに縛られる必要はありません。さまざまなデータベース システムにすぐに接続することはできませんが、それらを簡単に切り替えることができる可能性があります。データベース呼び出しを抽象化するには、いくつかの異なるオプションがあります。 PHP の独特なアプローチは、PHP の異なるデータベースごとにアクセス関数が異なるため、異なるデータベース システムごとに異なるコードを記述する必要があることです。これを回避するには、PHPLib、PEAR の次のバージョン、および SourceForge で説明されているもののような、抽象データベース アクセス レイヤーを使用できます。
2. インターフェースの無関係
アプリケーションのテクノロジーとそれが実行されるサイトのどちらが重要ですか?本当のところは分かりません。私はこれを信じていませんでした - HTML は標準です。特に Web アプリケーションの場合、インターフェイスを変更すると、常に書き直す必要があります。ただし、アプリケーションが大規模で複雑な場合は、アクセス チェックやその他のコードをサイト プログラムのあらゆる場所にコピー アンド ペーストしたくない限り、データベース用に他のインターフェイスを確立する必要があります。これは、アプリケーションを正しく設計すれば、単純に小さな WAP インターフェイスを記述してデータベース アクセス オブジェクトを呼び出すだけで、サイトを簡単に書き換えることができることも意味します。しかし、プログラムを適切に設計しないと、HTML バージョンを WAP バージョンに変更するのは複雑なプロジェクトになります。
私はこのアイデアを SourceForge にも取り入れました。私たちのためにバグやタスクなどを送受信してくれる巨大なユーザーベースがあります。まず、私たちはこれらすべてが Web ページを通じてインターフェースされることを指摘しました。その後、Eric Raymond やその他の人々からの圧力により、データベースへの外部インターフェースに XML を使用することにしました。
幸いなことに、私たちは 4 月にプログラムのコアロジックコードをインターフェースから分離しました。私たちのやり方を説明してみます。あなたの仕事に役立つことを願っています。
SourceForge バグ トラッカーとその他のツールは、HTML ライブラリとデータ アクセス ライブラリの 2 つのライブラリに分かれています。このデータ アクセス ライブラリは、入力された値の正確性をチェックし、セキュリティ チェックを処理し、成功/失敗時に TRUE または FALSE を返します。
簡略化の理由により、この例は完全なオブジェクト パターンに基づいていないため、この基本クラスとその派生クラスなどについて説明する必要があります。この例が最も一般的なアイデアを提供すると思います。
HTML ライブラリの例
//データベースに接続します
require ("database.php");
//ヘッダー/フッター HTML などの一般的なユーティリティ
require ("html.php") ;
//データ アクセス ライブラリ
require ("bug_data.php");
echo site_header("ページ タイトル");
echo "
"
if (bug_data_update($field1,$field2,$field3)) {
echo "