コアPHPとPHPフレームワーク:何を使用する必要がありますか?

私は2012年からインドでコアPHPおよびPHPフレームワークチームを構築しています。 ここに私の経験:

1)中小規模のWebアプリケーション:PHPフレームワークを使用する

中小規模のWebアプリケーションには、通常、次のような特定の目的があります。

  • 価格を比較し、最高の価格を表示する
  • さまざまな製品を表示し、ユーザーがそれらを検索できるようにする
  • 一部のサービスに登録し、ユーザーがコースや製品をダウンロードできるようにする
  • 部屋やタクシーなどの予約をする

これらのアプリケーションでは、ユーザー数は1日あたり約100〜1000人になります。

これらの基準は、すべてのWebアプリケーションの約90%に適用されます。

それらのために、あなたはPHPフレームワークを使うことができます。 次のいずれかをお勧めします。

  • Laravel:最新のPHPフレームワーク。 それは2011年に作成され、それ以来Web開発者によって信じられないほど採用されてきました。
  • symfony:これは、エンタープライズレベルのWebフレームワークと呼ばれるものです。 これは主に、顧客または他の部門(マーケティング、営業、人事、経理など)向けに中小規模のプラットフォームを構築する中規模および大規模企業のIT部門によって使用されます。
  • ゼンド:は、もう1つのエンタープライズレベルのフレームワークであり、長年にわたって試行およびテストされています。

新しいプロジェクトは通常、Laravelから始まります。 しかし、過去のほとんどのプロジェクトはSymfonyまたはZendで開始されていたため、ここでも多くの機会が見られます。

CodeIgniter、CakePHP、YIIのような他のフレームワークがあります。 それらはもうあまり使用されていません。 しかし、それでも、これらのテクノロジーを使用しているWeb開発者がいます。

2)必要な最大の柔軟性または最大のカスタマイズ性:コアPHPを使用する

他の会社にライセンス供与することを計画しているWebアプリケーションを構築しているとします。 ERP、CRM、アカウントソフトウェアなどのように。 次に、コアPHPまたは純粋なPHPを使用します。

この理由は、アプリケーションを思いどおりに構築したいからです。

比喩的な例:それを絵と比較してください。 必要なものを最初から描き、その絵の上に好きなものを作成できます。 フレームワークでは、一部の人とテーブルと背景がすでに事前定義されていますが、あなたの計画は絵を速く描くことではなく、あなたの希望に応じているので、それはあなたを助けません。

特に、新しいモジュールを時々構築している場合は、「抑制」したり、不要な機能を提供したりするフレームワークが必要ない場合があります。

各アプローチの長所と短所

1)フレームワーク

長所:

  • より速く構築する:大きな利点は、より速く構築できることです。 お金を節約したいが、すぐに結果を得る必要がある世界では、このアプローチは理にかなっています。 フォームやセキュリティ機能など、多くの機能がすでに利用可能であり、すばやく組み込むことができます。
  • ジュニア開発者にとってより簡単:後輩の開発者は、新しいWebアプリケーションを構築する(新しい絵を最初から描く)ときに多くの間違いを犯す可能性がありますが、PHPフレームワークを使用することで、ベストプラクティスに頼ることができます。
  • より安全に構築する:エンタープライズおよびその他のWebアプリケーションは安全であると想定されています。 これらのセキュリティ機能は、Laravelやその他のテクノロジーに組み込まれています。

短所:

  • 柔軟性が低い:場合によっては、最初から物事を行うことはできませんが、その特定のプロジェクトでは必要とされない可能性のある機能に基づいて構築する必要があります。
  • オーバーヘッド:これはまた、柔軟性の最初のポイントに戻ります。 フレームワークに付属しているすべてのものが必要なわけではありません。

2)純粋なPHP

長所:

  • 柔軟性:好きなものを作りましょう。 必要に応じて他のプロジェクトで再利用できる新しいPHPフレームワークを構築します。
  • あなたがコントロールしています:あなたはハンドルを持っています。 アプリケーションを必要なだけ高速にし、優れたスケーラビリティを組み込みます。

短所:

  • 開発に必要なより多くの時間:小規模なアプリケーションの場合、開発にかかる時間はフレームワークの場合と同じになる可能性があります。 しかし、中規模から大規模のアプリケーションになると、開発にははるかに多くの時間が必要になります。
  • 構造に従う必要があります: Laravelや同様のテクノロジーには、Web開発でたどることができるベストプラクティスの道がすでにあります。 これは純粋なPHPには当てはまりません。 ここでは、組み込みではないWeb開発の慣行に従う必要があります。 あなたはそれらに従うための規律を持っている必要があります。 そうしないと、PHPの評判が良くないいわゆるスパゲッティコードになってしまいます。

その他の考慮事項

長い間、PHPは時代遅れのテクノロジーと見なされていました。 特にRubyonRailsは優れた代替手段として注目されていました。

特に以前のスパゲッティコードの議論は、多くの企業がこのテクノロジーの使用を避けてきた理由の1つでした。

Laravelでこの概念は変わりました。 採用率は多様化しています。 特にZendの開発者はLaravelに変更しました。

ほとんどのプロジェクトは、フレームワークの1つで開始されます。 PHPのみが使用されることはめったにありません。

しかし、他の会社にライセンス供与されているWebソリューション(または、いわゆるシュリンクラップソフトウェア)に関しては、多くの場合、これらのソリューションはPHPで作成されています。

PHPはここ数年で普及しました

ここに、PHPまたはPHPフレームワーク上に構築されたいくつかのテクノロジーがあります。

  • ショップウェア:中央欧の中堅企業で広く利用されているオンラインショップシステム。
  • Magento:このショップシステムはZendに基づいており、世界中の中規模企業で使用されています。
  • WordPress:誰がWordPressを知らないのですか? これは、世界で最も広く使用されているコンテンツ管理システムです。 他の例はTYPO3 Drupalそしてコンタオ
  • 多数のカスタムWebソリューション:この投稿では、何度か言及されています。 PHPで構築された多くのERP、CRM、経理、マーケティング、販売ソフトウェアソリューションがあります。

結論

プロセスを改善するためにWebアプリケーションを必要とする、またはマーケティング部門(他の部門に入る)用のソフトウェアソリューションを必要とするエンタープライズクライアントなどのクライアント向けにカスタムソリューションを構築する場合は、PHPフレームワークを使用します。 開発が速くなり(通常、これらのタイプのクライアントの要件です)、開発も安価になるため(これは、販売プロセスに役立ちます)。

自分用のソリューションを構築していて、他の企業やWebユーザーにライセンスを供与したい場合。 次に、これを自問してみてください。価格を比較するためのオンラインプラットフォームのような、より標準的なWebソリューションですか、それとも他の標準的なソリューションですか。 または、独自のタイプのCRMシステムなど、非常に特殊な機能のセットが必要ですか? それならコアPHPがより良い解決策かもしれません。

あなたの経験は何ですか?

いくつかの興味深いリンク:
PHPとフレームワークアプローチを比較する良い記事
これらのテクノロジーを使用した開発の違いは、このブログ記事に示されています。


著者:Sascha Thattilは、YUHIROグループの一員であるSoftware-Developer-India.comで働いています。 YUHIROは、IT企業、代理店、IT部門にプログラマーを提供するドイツとインドの企業です。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください