5

私は現在ブラウザベースのMMOに取り組んでおり、本番環境で開始するコストが非常に低いため、LAMPスタックを選択しました(MSDN Universalを使用している場合でも、Windows + IIS + ASP.NET/C# + SQL Serverと比較して) 。ただし、これは簡単な作業ではないため、PHPフレームワークが必要になります。専用のクラウドホスティングソリューション(および開発用のVMWareイメージ)を使用し、必要に応じて構成できるため、Linuxで実行する機能以外の制限はありません。

順不同:

  1. 簡単にスケーラブルである必要があります。これは非常に重要です。ゲームが着実に成功すると、最終的にはホストが提供するものを超えてサーバーが大きくなり、いくつかの負荷分散されたサーバーに移動する必要があります。これを最小限の労力で実行できることが重要です。これには厳格な規則に従う必要があるかもしれないことを私は知っているので、提案されたフレームワークについて何か知っている場合は、何が必要になるかを説明してください。
  2. 認証、ACL、データベースアクセス、MVCなどのすべてのコアタスクにモジュールを提供する必要があります。簡単に記述して統合できる限り、1つまたは2つの欠落しているモジュールで問題ありません。
  3. 国際化をサポートする必要があります。プログラマーの多大な努力なしに、アプリケーションを翻訳したり言語を切り替えたりする手段を提供しないWebフレームワークの言い訳はないと思います。
  4. 非常に優れたコミュニティサポート、できれば商用サポートも必要です。はい、QCodo / QCubedが非常に優れていることは知っていますが、このタスクには十分に成熟していません。
  5. スムーズなAJAXサポートが必要です。フレームワークにAJAX対応のウィジェットが付属しているか、AJAXを追加する簡単な方法があるかどうかは、AJAXが簡単に実行できる限り関係ありません。jQuery + Dojoまたはそれらの1つを単独で使用する予定ですが、正確にはわかりません。
  6. 読みやすさを向上させ、多くの労力を軽減するときに自動的に魔法のように何かを行うことは、それが一般的に信頼でき、他の要件に干渉しない場合は特に素晴らしいでしょう。これはCakePHPの場合のようです。

私はたくさんの比較を読みました、そしてそれが本当に熱い議論であることを私は知っています。一般的な答えは、「自分に合ったものを自分で試してみてください」です。ただし、この作業が簡単だとは言えません。同様の要件を持つアプリケーションを構築した経験を求めています。これまでのところ、私は一般的な基準でZendとCakePHPに縛られていますが、よく知られているすべてのフレームワークは、それぞれ独自の長所と短所を持つ異なるアプローチで、何らかの方法で同じ機能を提供します。

編集:

  1. 私はMVCに少し慣れていませんが、それを学びたいと思っています。MVCを初めて使用する人にとって、フレームワークが簡単かどうかは気にしません。私は、MVCやその他のアーキテクチャ(またはそれらが呼ばれるもの)を学ぶために多くの時間を持っています。
  2. Zendは単なるライブラリのコレクションですが、ユーティリティの「フレームワーク」として使用します(私が言ったように、いくつかの優れたライブラリもあります)。
  3. 現在のPHPの候補は、CakePHP、Kohana、Zendだけです。
4

8 に答える 8

4

ZendとCakePHPをご覧になったと思いますが、別の方向に向けたいと思います。

http://kohanaphp.org/

コハナは、私がまだPHPを使用している場合に使用するものです。彼らはCodeIgniterを採用し、phpがファイルベースではなく、オブジェクトベースであると感じられるようにフォークしました。彼らは素晴らしいテンプレートソリューションを持っており、ACLを除いてあなたが議論したすべてのモジュールも持っています(それが何であるかはわかりませんので、おそらく彼らはそれを持っています)。

とにかく、チェックする価値があると思います。

スケーラビリティ
については、速度についての会話に気づきました。コハナは私たちにとって非常に速く物事を処理したと思いますが、これは他のツールとの関係ほどフレームワークとは関係がないと思います。

まず、nginxのapacheを削除することで、多くのphpアプリの速度を上げました。PHPをfastcgiとして実行しているNginxは、http: //ukclasslist.comの方がはるかに軽量で、読み込み時間が大幅に長くなります。私たちはまだローカルでapacheを使用しており、サーバーで実行されているコピーはローカルバージョンよりも高速です。

それでも速度に問題がある場合、特に大量のデータを取得する場合は、memcacheを調べる必要があります。

于 2010-03-04T06:37:42.543 に答える
3

私は個人的にコハナのファンです。私はこれより前にCodeIgniterを使用していましたが、Kohana(私が見ているように)は基本的にCodeIgniterのすべての優れた機能であり、多くの制限はありません。v3はKohanaの最新バージョンであり、v2よりも堅牢で柔軟性があります。

パフォーマンスは、フレームワークの使用方法と、他のフレームワークと比較した場合の固有の長所と短所によって異なります。最善の策は、APC(まもなくPHP 6の一部になる)またはeAccelleratorを使用して、コンパイルされたPHPスクリプトをキャッシュすることです。

于 2010-03-04T07:39:12.167 に答える
2

スケーリングは、Webフレームワークが解決することを期待できる問題ではありません。ほぼ無制限の予算で成功したMMOでさえ、シャーディングとインスタンス化に頼ってきました。最善のアプローチは、アプリケーションをモジュール式に設計することです。必要に応じて、主要な機能を別々のサーバーに移動できます。チャット、インベントリ、オークションは主に独立した機能であり、たとえば同じサーバーでホストする必要はありません。特定のゲームプレイの悪用を防ぐには、サーバー間にメッセージングサービスが必要ですが、主要なWebフレームワークはどれもこれを提供していません。

PHP Webフレームワークにおけるアキレス腱は、永続メモリの欠如です。リクエストごとにWebフレームワーク全体を再初期化する必要があるため、CakePHPは非常に低速です。APCのようなオペコードキャッシュは、PHPソースファイルを解析する必要性を排除するだけです。

他の言語のWebフレームワークを検討することを強くお勧めします。Python、Ruby、およびJavaはすべて優れた選択肢です。これらの言語はすべて安価なLinuxサーバーで実行され、上記の制限に悩まされることはありません。

于 2010-03-09T19:49:20.447 に答える
2

Agaviをお試しください。単にそこにある最高のPHPフレームワーク。必要なものがすべて揃っているので、ファクトリを介してコアクラスの実装を拡張、構成、または変更できます。

自由に定義可能な環境(開発、ステージング、本番など)、コンテキスト(Web、SOAP、コンソールなど)、出力タイプ(HTML、JSON、PDF、またはHTML、JSON、PDFなどの出力タイプ(レイアウト/レイヤー/スロット/パラメーター/ HTTPヘッダーを備えたレンダラーのカスタムセット) $WHATEVERそして単に最高のルーティングシステム。

構成にXMLを使用し、実際には親ファイル、スキーマ検証、およびXIncludesで使用します。厳密な検証がデフォルトである優れた入力検証システム(GET / POSTだけでなく、ヘッダー、ファイル、Cookieなどの他のすべての入力も)。i18n / i10nの優れた機能と組み込みのSOAPマジックを追加すると、最も柔軟で強力なPHPフレームワークが利用可能になります(「Web」のみのフレームワークではありません)。

ドキュメントが少し不足していますが、Kohana、CakePHP、Zend、およびその他すべてのフレームワークと比較して、真のMVC実装はこれだけです...それを見て、IRCまたはユーザーメーリングリストで質問してください。急な学習曲線の後、他の(PHP)フレームワークを長い間見てきたのはこれが最後です。:-)

于 2010-03-18T21:56:57.710 に答える
0

実際には、CakePHPとZendFrameworkの両方を1つにまとめることができます。Zendフレームワークは、他の何よりもライブラリに少し近いです。したがって、CakephpでZendライブラリを使用するのは難しくありません。両方の長所。

これを行うためのコンポーネントまたはコントローラーの例を次に示します。

また、プロフォーマンスが非常に重要になるようです。この興味深いhttp://avnetlabs.com/php/php-framework-comparison-benchmarksを見つけることができます

スケーラビリティに関して は、この質問が役立つかもしれません

于 2010-03-04T07:04:55.077 に答える
0

まず第一に、これはPHPフレームワークに関する優れたリソースです。

http://www.phpframeworks.com/

そこにはそれらの良い比較があるので、あなたは簡単にアイデアを得ることができます。

次に、phpro.orgでMVCに関するこのすばらしいチュートリアルを実行することを強くお勧めします。

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

于 2010-03-04T06:40:20.150 に答える
0

Codeigniterは、優れたコミュニティサポートを備え、拡張性も高い素晴らしいフレームワークです。さらに、アプリケーションをデプロイするためにシェルアクセスを持っている必要はありません。また、MVC統合により、アプリケーションの作成が非常に簡単になります。

于 2010-03-04T06:51:56.047 に答える
0

これが良い出発点ですhttp://phpro.org/tutorials/Model-View-Controller-MVC.html

于 2010-03-04T11:40:30.557 に答える