web-dev-qa-db-ja.com

PHP RESTful Webサービスのフレームワーク

私はこの質問を何日も繰り返し行ってきました-これは、RESTful Webサービスの作成に使用するのに最適なPHPフレームワークですか?

私は情報を求めてWebを調査し、重要な3つの主な要因に遭遇しました。

  • RESTアーキテクチャがフレームワークに組み込まれている必要があります
  • 安定したアプリケーションでなければなりません
  • フル機能でなければなりません

欲しいものが無いのかもしれませんが、見落としがないかコミュニティに確認したかったです。

現在、3つの候補は次のとおりです。

CodeIgniter

大規模なコミュニティと多くの機能と「拡張機能」を備えた非常に安定したフレームワークです。問題は、RESTfulでないことです。 RESTfulコントローラー を見つけましたが、気に入らない点がいくつかあります。主に、RESTfulアーキテクチャの定義に従って、HTTPメソッドを正しく使用していないようです。これは、CodeIgniterコアの制限によるものだと思います。

Yii

繰り返しますが、大規模なコミュニティのようで、多くの機能で安定していますが、RESTfulではありません。

Laravel

そのまますぐにRESTfulであり、十分な機能を備えたフレームワーク。問題は、これが比較的新しいフレームワークであり、安定性に欠けていることです。

私が検討した他のフレームワーク:

Zend -私が読んだことから、エンタープライズソフトウェアを書かない限り避けてください。

Recess -RESTfulですが、非常に非アクティブで使用されていないようです。

UPDATE:

最後に私はララヴェルに行きました。あまりお勧めできません! 1週間でRESTful APIが稼働し、シンプルなWebクライアントもありました。素晴らしいフレームワーク。

6
Gaz_Edge

Zend Frameworkは明白な選択です。これは、リストに挙げたフレームワークのより適切に設計され、成熟し、安定しており、RESTfulアプリケーションに完全に適しています。そうは言っても、私は「エンタープライズ」アプリケーションだけでなく、それを使って数多くのアプリケーションを構築してきましたが、コツをつかむのは非常に難しく、それはあなたのお茶ではないかもしれません。最近それを簡素化するためにかなりの努力がありましたが、私がアーリーアダプターでなかったら、おそらくそれから遠く離れたままでしょう。

私が広範囲に使用したフレームワークであるCodeIgniterは、あまり良い選択ではありません。すでにお気づきのとおり、そのままではRESTfulアーキテクチャを提供しておらず、コアの設計によりカスタムRESTful設計が少し面倒になる(HTTPリクエストクラスがないため、マインド)。不可能ではありませんが、CodeIgniterの主な魅力、その使いやすさは、他のほとんどのフレームワークですぐにサポートされる比較的単純なことを行うために大量のカスタムコードを記述する必要がある場合、それほど魅力的ではなくなります。

これにより、PHPフレームワークの無限のリストに追加された最新のLaravelが登場します。私はそれを広範囲に使用していないことを認めなければなりませんが、これまで見てきたことから、安定性は問題ではありません。それは少し慣用的ですが、箱から出してRESTを提供し、ORMであるEloquentは素晴らしいです。私は、通常のZend Framework + Laravelコンボから進んで、RESTfulコンポーネントを含む最新のアプリケーションからDoctrineを使用しましたが、これは、フレームワークを備えた初めての使い捨てアプリケーションです。まだ100%快適ではありません。

Zend Frameworkが多すぎると感じた場合、Laravelは確かに価値のある候補のようです。比較的新しいプロジェクトに投資したくない場合は、調査で見逃した別のオプション Symfony があります。学習曲線に関しては、Zend FrameworkとCodeIgniterの間のどこかにあり、できるだけ安定しています。 FOSRestBundle は、Symfonyにシンプルですが完全なREST AP​​Iの基盤を提供します。

結局のところ、それは完全にあなた次第であり、あなたが軽く取ることができる決定ではありません。そのフレームワークは、それを使用している限り存続しなければならないアーキテクチャ上の選択を課し、比較的成熟したフレームワークについては、個人の好みに帰着します。

幸運を ;)

11
yannis