7

PHPで一連のRESTWebサービスを実装します。そのために、Symfony 2とSilex(Symfony2に基づくpharアーカイブとしてのマイクロフレームワーク)の2つのフレームワークを選択しました。

今のところ、サービスはごくわずかで、リソースはGETとして返されますが、メソッドのセットは最終的に大きくなり、他のRESTアクション(put / post / delete)が含まれます。

これが、これら2つのフレームワークについてこれまでに得た長所と短所のリストです。

Symfony2

長所:

  • 更に力強い
  • Doctrine ORM
  • XDebugでデバッグできます
  • YMLでの設定
  • コミュニティでもっと使われる
  • より多くのサポート
  • IDEでのオートコンプリート
  • 速い

短所:

  • RESTを実行するにはFOSBundleが必要です(?)(実際、これが本当に役立つかどうか知りたいです)

Silex

長所:

  • 軽量
  • REST URLを作成する方が簡単なようです(?)
  • 展開が簡単(pharアーカイブ)

短所:

  • DoctrineORMはありません
  • デバッグできません(pharアーカイブ)
  • IDEにオートコンプリートはありません
  • 構成はハードコーディングする必要があります
  • pharアーカイブにあるので、少し遅くなる可能性がありますか?

どれが一番いいと思いますか?

ありがとう

4

2 に答える 2

16

プロジェクトのサイズによって異なりますが、プロジェクトが非常に小さいとおっしゃっていたので、Silexを選択しました。

作曲家を通してsilexを含めると、Silexにリストするほとんどすべての短所が除外されます。次に、ベンダー内にSilex依存関係をロードするだけで、pharのオーバーヘッドも、IDEでのコード補完の欠如もありません。実際、PHARディストリビューションは非推奨です

Doctrineに関しては、SilexにはDoctrineServiceProviderが組み込まれており、SilexプロジェクトにDoctrineDBALをシームレスにロードします。DoctrineORMは自分で簡単に追加することも、githubにあるサードパーティのserviceProviderの1つを使用することもできます。

私はSilexを使用してかなり大きなRESTAPIを構築していますが、Silexから始めて1つも後悔していません。サイレックスはSymfony2コンポーネントで構築されており、yamlの構成やセットアップに何時間も費やすことなく、非常に軽量で休憩可能なマイクロフレームワークを備えているため、Symfony2コンポーネントの多くの利点が得られます。

正直なところ、私はアノテーションの大ファンではないことを認めなければなりません。アノテーションは問題ありませんが、@ mcfedrの例では少し行き過ぎだと思いますが、それは個人的な好みです。

私はあなたがSilexについて持っている偏見のいくつかを暴いたことを願っています。スイングしてください、後悔することはありません。一方で、おそらくSymfony2も後悔することはないでしょう:)

于 2012-07-05T06:38:06.780 に答える
11

個人的に私はsymfony2が本当に好きです。アノテーション構文を使用してRESTURLを簡単に作成できます。コントローラーに次のようなものを配置します。

/**
 * @Route("/user/{id}", requirements={"id" = "\d+"}, defaults={"_format"="json"})
 * @Method({"GET"})
 */
 public function getUser($id) {
     ...
 }
 /**
 * @Route("/user", defaults={"_format"="json"})
 * @Method({"PUT"})
 */
 public function putUser() {
     ...
 }
于 2012-04-17T12:11:13.047 に答える