web-dev-qa-db-ja.com

PHP Webアプリケーションアーキテクチャ/デザイン

私は、PHPでWebアプリケーションを開発する新しい仕事に真っ先に投げ込まれました。私はPHPを初めて使うことはありませんが、大規模なアプリケーションを開発したことはありません。将来的に問題が発生するのを防ぐために、開発をどのように構成するのかと思います。機能とパフォーマンスの観点から、時間とともに拡張できるように、アプリケーションを適切に設計および設計するにはどうすればよいですか。私は次のようなことを考えています:

  • フロントエンドからバックエンドを分離する
  • ディレクトリ構造

大規模なPHP Webアプリケーション開発に持続可能な方法でアプローチできるようにする、アーキテクチャおよびアプリケーションの設計パターン、フレームワーク、およびメソッドへのポインタをいただければ幸いです。

20
Brad Morris

IBMのdeveloperworks Webサイトには PHP記事 の膨大な山があり、それらの多くは非常に優れています。 比較する一連の記事PHP Webフレームワーク 、および CakePHPフレームワーク を使用するWebサイトに関する別のシリーズ。

O'Reillyの古い "Onlamp" Webサイトには PHPのMVCに関する記事 があります。その記事の著者は MVCを詳細に説明 に進みました。

O'Reillyの記事は少し古いですが、彼らはあなたを先導してくれるでしょう。 IBM developerworksのものは本当に優れており、あなたが求めていることの多くをカバーしています。

1
Bruce Ediger

私はPHP=で数年前から取り組んでいます。この質問がどういうわけかオープンであるとYannisに同意しますが、いくつかの指針を示したいと思います。最初に、YannisとしてMVCを調べる必要があります。そうするために、私が推奨できる2つのフレームワークは CodeIgniterSymfony です。最初のフレームワークは軽量で、使い始めるのが非常に簡単です。ただし、Niceセットアップを機能させるには、追加のカスタマイズを追加する必要があるだけかもしれません。Symfonyは Fabien Potencier によって開始されたプロジェクトであり、ソフトウェアエンジニアリングの設計パターンの多くを使用します。ただし、 学習曲線CodeIgniter よりも急勾配です。

次に、次に、データベース接続を調べる必要があります。これにより、PHPで最も有名な2つのORMフレームワーク Doctrine および Propel が表示されます。個人的には、Propelと クリーンなPropelインストールのセットアップ方法について説明しましたCodeIgniter ベースのアプリが大好きですが、Symfonyは Doctrine のほうが好きですのどちらかを使用しましょう。 Doctrine and Propel についてさらに詳しく知りたい場合は、- この質問 を参照してください。少し前に尋ねました。

最後に、 SmartyDwoo または Twigg などのテンプレートフレームワークを調べる必要があります。 Smarty は最も古く、したがって最も安定しています。 Dwooinheritsfrom Smarty をサポートするために1つまたは2つのものを追加OOP PHP 5.最後に TwiggSymfonyチーム が提供するテンプレートの代替案です。私自身は見ていませんが、 Symfonyチームニースである必要があります。

このスピーチ全体がいくらか理にかなっているといいのですが、David

1
David Conde