3

私が探しているのは、Web サイトを構成する一連の PHP ファイルからモデルを削除する方法です。(私にとって)説明するのは難しい。

モデルとは、MVC の意味でのモデルを意味します。

例として、私はこのウェブサイトを持っているとします:

  • index.php
  • about.php
  • shop.php
  • checkout.php

上記の PHP ファイルはすべて同じデータベースを使用します。渡された値で正しいテンプレートをレンダリングする view.php ファイルを使用してテンプレートを追加することにより、ビューを分離しました。

すでに存在するフレームワークを使用するつもりはありません。私はある意味で自分自身を書くことを考えています。

なぜこれが必要ないのか、または物事を行うためのより良い方法を誰かが説明したい場合は、私もそれを受け入れます.

前もって感謝します。

4

2 に答える 2

2

独自のMVCフレームワークを作成するには時間がかかりますが、その過程で多くのことを学ぶことができます。ですから、もしあなたがそれをする時間/リソースを持っているなら、私はあなたがそうすることを絶対に勧めます。この文脈で、ここにあなたを助けるかもしれないいくつかの小さなアドバイスがあります:

  • 最初にドメインモデルを作成します。私はあなたがOOのやり方で進んでいると仮定しているので、あなたのドメインの問題について考え、あなたの問題を最もよく表す抽象化を作成してください。永続性などの横断的関心事から切り離しておくようにしてください。
  • たくさんテストし、頻繁にテストします。ドメインモデルを作成するときに、テスト(およびテストの実行)を試みてください。これは、6か月以内に新しい機能を追加し、何も壊していないことを確認したい場合に特に役立ちます。ドメインモデルを外部のもの(永続層やサードパーティのWebサービスなど)から分離できる場合、テストははるかに簡単になります。今日、 PHPUnitは、PHPでの単体テストの事実上の標準です。
  • すべてを最初から書く必要はありません。MVCフレームワークの開発を容易にするのに役立つライブラリがたくさんあるので、本当に開発したいものに集中することができます。たとえば、Slimを使用してページルーティングを処理したり、永続性をDoctrine2に委任したりできます。
  • 他のフレームワークがどのように物事を解決するかを分析することは常に素晴らしいことです。SymfonyKohanaのような製品を見たり、 Elggがビューシステムをどのように処理するかを確認したりすることもできます。また、根本的に異なるものをチェックしたい場合は、シーサイドのアーキテクチャを見ることができます。

元の質問に戻ると、私にとって重要なのは、さまざまなレイヤーから物事を可能な限り切り離しておくことです。私はバージョン1しか使用していませんが、Doctrine 2は、DBから完全に独立したドメインモデルを作成できるため、永続性の候補として適しているようです。これは大きな一歩です。2つ目は、ビューシステムの処理方法です。これは開発者の好みに大きく依存します。たとえば、私はすべてをオブジェクトでモデル化するのが好きなので、Seasideのアプローチが好きです。一方、Elggのビューの処理方法は非常に優れており、PHPでの処理方法に適している可能性があります。ここで、行くべきルートを決める前に、いくつかの調査を行うことで利益を得ることができます。

HTH

于 2012-11-28T12:10:42.707 に答える
0

独自の PHP フレームワークを作成した者として、あなたと同じ感性で、フレームワークを使用することは素晴らしいことだと言えます。そうは言っても、まずは自分で作成することから始めてください。フレームワークの真の構造と有用性に対する理解が深まります。

Singleton object patternについて学びたいと思うでしょう。これは、フレームワークで開発できるオブジェクトの種類における主要な差別化要因です。

ファイル/コントローラー (MVC を想定) に含まれるいくつかのモデルを作成すると、他の拡張元の「基本モード」を抽象化する場所が見え始めます (ヒント: DB シングルトン)。

構成などの取り込みを開始すると、最初のフレームワーク オブジェクトが作成され、そこから他のすべてのベースが拡張されます。

于 2012-11-28T02:30:31.377 に答える