ホームページ php教程 php手册 スマートに構造化された PHP プログラムを作成する

スマートに構造化された PHP プログラムを作成する

Jun 13, 2016 pm 12:46 PM
php いいえ それ 仕上げる 確立する 記事 時間 プログラム 構造


この記事を長い間書こうと思っていましたが、時間がなくて書き上げることができませんでした。私はその方法を説明するためにここにいるのではなく、この記事が効果的で柔軟なネットワーク アプリケーションを構築する方法について議論するための単なる紹介になれば幸いです。

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 " アップデートに失敗しました! ";

} else {

エコー " バグが正常に更新されました ";
//グローバル エラー文字列をエコーし​​ます
echo $フィードバック;
}

echo site_footer();

?>


データアクセスライブラリの例

3. 移植性

コードを固定サイトでのみ使用したくない場合は、色の選択を変更する場合があります。将来、要素名、フォントなどを設定する場合は、複数のページに含まれる構成ファイルをセットアップする必要があります。サイトがモジュール式であり、単一の HTML ファイルをコピー&ペーストする必要がない方が良いと思います。これらを関数に入れて、必要なときに呼び出します。

データベースのパスワード、データベース接続文字列などにも同じアプローチを使用できます。これらは、データベース処理のために抽象化レイヤーに入れることができます。>
4. オブジェクト指向/関数型

私たちは COBOL で開発しているわけではないので、各呼び出しは自動的な動作であり、場合によっては短いセクションを呼び出すだけです。他の関数を実行し、結果を返します

良い例は、ユーザーが各ページでログインしているかどうかを確認することです。Cookie を使用するか、データベースにクエリを実行してこの機能を実行できますが、検証を変更したい場合は一度だけ行ってください。システムでは、すべてのページを変更する必要がありますが、コードを複数の場所で使用する場合は、関数ライブラリ内の通常の関数を変更することで実行できるはずです。

他には何がありますか?

もちろん、まだ話していないことがたくさんあります。あなたのアイデアを教えてください。次の記事で説明します。特に、大規模で複雑なアプリケーションを作成した場合、どのように計画したか、やり直すと何が変わると思うかを聞きたいです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles