Why PHP and Symfony, and not Java?

 なぜわたしたちがJavaフレームワークの代わりにPHPSymfonyを使うことに決めたのか、しばしば、特に金融機関の企業顧客から、その理由を尋ねられます。2007年と2011年にわたしたちは実際に選択肢を再考したため、その答えはよくわかっています。わたしたちはまた、ここ数年で、どれくらいPHPとそのPHPエコシステムが成熟し、進歩してきたか、どのようにSymfony2 とComposerが大きく前進したか、PHP v7とSymfony3が、次を提供するために、どのような位置付けをしているか、じかに接し良くわかっています。そのため、わたしたちの選択にはとても自信を持っており、それを他にもお勧めできるのです。もしあなたがこのトピックに興味をお持ちでしたら是非読み進めてください!

 なぜ現在、SymfonyやPHPが、JavaやJavaフレームワークの実行可能な代替手段として増えているのでしょうか?

 PHP対Javaの議論は、両者の言語それ自体と同じくらい古くから起こっています。しかしながら、オンライン上で見つけられる賛否の議論のほとんどは、時代遅れだったり、もうすでに有効ではなかったりします。

  • 一部では、スクリプト言語であるためにPHPを退けます。しかし真実として、そのエコシステムは時間とともに、ますます多くの高度な言語とフレームワークの機能を採用しています。例えばPHPは、名前空間、オプションの型宣言、豊富なオブジェクト指向プログラミングモデルなどなど、のような組織的な特徴を得ています。PHPエコシステムはそのサイドで、ここ5年以上にわたって大幅に成熟しています。既に豊富なテストを提供していますが、ドメイン駆動の設計と品質中心の文化、パッケージ管理のためのComposerの導入は、品種パッケージを最大に再利用する文化をもたらしました。それはSymfony のような企画から新しいレベルへの協力を推しました。
  • Javaは、よりスケーラブルであると一部の場所で議論されているのを見ることがあります。しかし、過去10年以上にわたって、フェースブック、ウィキペディア、ヤフー、スポティファイ、 ジンガなどなど、のような企業は、PHPはスケールを持っており、そのため格別によくできていることを実証しています。
  • 他の場所では、PHPの性能が悪いことについて話されていることでしょう。しかしながら、今日ではまた、FacebookのHHVM、Java仮想マシンのように作動するVMで、同様の性能特性を有してPHPコードを実行することができます。PHPサイドでは、過去10年間で5.xシリーズの性能が4倍以上向上しました。今年の終わりにたどり着けるv7 では、性能が2倍以上になる予定であり、フェースブックのHHVM実装とペアでそれが作られます。また、 Webアプリケーションのためには、データベースや他のバックエンドシステムの性能が十分であることと、常に最初に最適化されること、そして、言語それ自体ではなく処理することを確認してください。
  • 他の議論では、ツールのサポートが貧弱であることです。それに対して、これまでPHPはIDEによって幅広いサポートを行っています。(例えばJetBrainsによるPhpStorm)、そしてまた、PHPは多くのデバッグツールやSensioLabs Blackfireや他のTidewaysのようなプロファイリングサービスを持っています。PHPは、TravisのようなContinuous Integrationサービスによってよくサポートされています。また、PHPUnitのような、いくつかの競合のxUnitテストツールや、Behat (BDD) やphpspecのようなスペックツールを持っています。

 わたしたちは、より多くの技術的な議論の賛否も調べることができますが、いつ技術を選択したかにかかわらず、あなたは常にあなたのチームが持っているスキルを最初に確認する必要があります。覚えておいていただきたいことは、技術に限ったことではありません。あなたのチームは、 Webアプリケーションのスケールや実績を作り、ダウンタイムなしでの実行をすることなのです。

SymfonyフレームワークとJavaフレームワークの比較

 上記の最後の段落は、この比較の上に立っています。活発なコミュニティ開発の2年後の2011年に導入されたSymfony2は、おそらく最も人気のあるjavaフレームワークであるSpring Frameworkから多くの閃きを得たのものです。

 それは、再利用可能なコンポーネントとバンドルのセットとして編成されており、すぐに使える多くの機能をあなたに与えるフルスタックフレームワークを共に構成します。これは、データベースやNoSQLのバックエンドは含まれませんが、いくつかの高品質なSymfonyバンドルがそこにはあり、それは、これや他のユニークな機能を提供したり、またはさらに強力になるためにsymfonyを拡張します。繰り返しますが、すべてこれは人気のJavaフレームワークやJavaコミュニティにいて見つけられるものです。

Symfonyフレームワークのユニークな利点

 ここで類似性を終え、Symfonyフレームワークのいくつかのユニークな利点とPHPが登場します:

  • PHPは、ウェブ上の最大の開発言語で、あなたのプロジェクトで、潜在的にあなたと一緒に働くことができ、すべてのスキルレベルの開発者に大きな共用設備として提供されます。WordPressとDrupalでサイトやプラグインの作成を行うために取り組んでいる初心者の開発者から、目隠しでもsymfonyに貢献できるシニアエンジニアまで、幅広く、そして、その間のすべての人も含みます。symfonyは活気に満ちた成長中のコミュニティを持っています。
  • eZプラットフォーム(Symfonyのフルスタックを使用)と、Drupal8 (多くのsymfonyのコンポーネントを使用)、そして今年後半に出てくるSymfony3と……これは続きます。
  • PHPそれ自身と同様に、Symfonyは真のオープンソースプロジェクトです。それは、プロジェクトを支持している1つのベンダーのアカウントで上下しません。Symfony2は、真にユニークなHTTPを導入し、HTTP中心の要求またはフレームワークに応答、また、ページやアプリケーションの異なる部分を分離するためのESIのような機能のフル使用を可能にすることによって、HTTPキャッシュを処理します。
  • Symfony2は、高速PHP内蔵symfonyのリバースプロキシによってすぐに発揮されます。そして、Varnishへのシームレスなアップグレードが中規模から大規模なインストールにおいて10-20倍高速で提供、そしてしっかりしたキャッシュ処理を行います。

 すべての事と同様、わたしたちがしたような決定の影響は、時間が経つにつれ、より正確に考察、評価されます。しかし、わたしたちは最初にPHPを使用し、その後Symfonyを選択したのは正しいものでした。わたしたちはすでにコミュニティとわたしたちの顧客からの偉大なフィードバックを受けており、それは、開発の観点から、当社の意思決定のすべてに尽力してきました。

 今年後半に、わたしたちはsymfonyのトップにeZプラットフォームを追加するユニークな利点についてブログする予定です。しかしながら、それらのすべてがないとしても、わたしたちは新しいパートナーや開発者が理解し、 PHP + symfonyのソフトウェアスタックが提供する多くの利点を活用することを願っています。どうぞ、下記のコメントセクションで、このトピックに関するあなたの意見(そして、可能性がある意見の相違)をシェアしてください!

eZ Publishプラットフォームの全機能を発見しよう: eZ Systemsの認証と推奨を受けたトレーニングが受けられます > eZのビジネスパートナーになろう!

Insights and news