1

PHPアプリケーションの主なコンポーネントは何ですか?私はこれらを思いついた:

  1. データベース
  2. HTMLテンプレート
  3. セッション/Cookie/認証
  4. ユーザー入力($_GETまたは$_POSTまたはURLセグメント)

これらは主要なコンポーネントですか、それとも他にありますか?

私がこれを求めている理由は、技術的にどのように実現可能かを心配することなく、各「オブジェクト」を独自のクラスに入れることができるようにするためです。たとえば、ブログに投稿を追加できるPostクラスを作成すると、システムやphp言語などの他の部分とどのように適合するかを気にする必要がなくなります。

4

3 に答える 3

2

これは、この質問によく似ています。

Martin Fowler 著の Patterns of Enterprise Application Architecture をご覧になることを強くお勧めします。

モデルやドメイン、オブジェクト リレーショナル マッピングやデータベース抽象化に関連する質問をこのサイトで検索することもお勧めします。特に PHP に関しては、すばらしいコンテンツがたくさんあることを知りました。

あなたが投稿したこの質問には、2 つの質問があります。まず、サイトの一般的なアーキテクチャ コンポーネントは何ですか。一般的に、これらの 3 つはなんらかの形で現れます。

  1. データベースとデータベース相互作用レイヤー
  2. コントローラ - $_GET および $_POST (リクエスト) を処理し、コンテンツをビューに割り当て、最終的にレンダリングします。
  3. ビュー - HTML と、コレクションや変数出力を反復処理するためのループなどの非常に基本的なコードのみを含める必要があります。

2 番目の質問は、特定のビジネス オブジェクトの処理をアプリケーション内のどこに配置するかということです。ビジネス オブジェクト (ドメイン内) とデータベース テーブル内の行の両方として Post を操作する必要があると想定しているため、ここで議論が少し複雑になります。これらの問題は両方とも、Ruby on Rails で普及した Active Record と呼ばれるパターンを利用して、同じクラス内にラップできます。ただし、関連するアプリケーションとデータベースの複雑さによっては、データベース インタラクション レイヤーとして機能する 1 つの Post クラスと、すべてのビジネス ロジックを含む別の Post クラスを作成することによって、ビジネス ロジックをデータベース インタラクションから分離することを検討する必要がある場合があります。

于 2009-02-14T03:55:37.710 に答える
0

データベースへのインターフェイスを提供するコンポーネントとして、データ アクセス層を追加します。

この種の問題に対処する既存のパターンがあります。そして、これらのパターンに基づいて構築されたフレームワークがあり、これらの作業の多くは既に行われています。

ケーキ PHP

ソーラーPHP

于 2009-02-14T03:09:01.893 に答える
0

ある種のモデル ビュー コントローラー フレームワークが必要なようです。そのパターンに従うフレームワークは、すべての DB 作業をモデルにカプセル化し、ビジネス ロジックをコントローラーにカプセル化し、プレゼンテーション/テンプレートをビューにカプセル化します。2 つのフレームワークが思い浮かびます。

  1. CodeIgniter (個人的なお気に入り)
  2. ケーキPHP

そのルートに進むと、MVC フレームワークが、説明したようにデータを分離するのに役立つことがわかります。さらに、これらのシステムには、認証、セッション管理、データの投稿/取得などをさらにカプセル化する多くのプラグインまたは組み込み機能がある傾向があります.

于 2009-02-14T03:39:11.523 に答える