20代で転職を検討されている方へ


PHPフレームワークの功績ってどうなの?

 Web開発で、人気のある軽量言語、PHPPHPWebシステムを容易に構築できます。今回は、その開発をもっと容易にしてくれる「フレームワーク」というものを紹介します。

1.    PHPフレームワークとは?

 

まず、「フレームワーク」とは、何でしょうか?フレームワークとは、プログラミングでアプリを開発する際、「土台」として提供されるものです。全てのコードを自分で書こうとすると、完成まで膨大な時間がかかってしまいます。そこで、アプリ開発に必要なものをあらかじめ用意してくれる「フレームワーク」を使うことにより、オリジナルの機能をスムーズに使うことができるようになるのです。また、最近の開発では、多くの場所でフレームワークが用いられています。

2.     フレームワークを使うメリット・デメリット

2.1.     メリット

 フレームワークを使うメリットは何があるのでしょうか?

          1:開発期間の短縮

多くの人が利用し、信頼できるソースコードを提供してくれる、フレームワークを導入することで、大部分の基本的な機能を用意する必要がなくなります。

また、スムーズに新しい機能お組み込めるように設計されているためPHPのみで開発するよりも完成までにかかる時間をずっと短縮できるのです。

          2:大人数開発に参加しやすくなる

PHPは様々なサービスで使用されており、その分アプリによって開発の仕方が大きく異なります。また人によっても書き方は変わります。しかしフレームワークを導入することにより、フレームワークが提供する「考え方」に統一でき、メンバがもし入れ替わったとしても、チームとしてスムーズに開発が行えるようになるのです。

          3:フリーランスとしても仕事が取れる

フレームワークは、プログラミング言語とは異なります。フレームワークの知識と経験で、仕事を取得することができます。企業で採用されているフレームワークの経験があれば、即戦力として開発に参加できます。

2.2.     デメリット

 では、デメリットはあるでしょうか?例を挙げます。

          1:フレームワークを知っている人しか、保守ができない

フレームワークは便利ですが、あくまでも「知っている人」のみになります。環境やバージョンの問題もあります。いくら「保守性がいい」と謳っているフレームワークがあったとしても、それは「知っている人がその最適の環境で」になります。

          2:フレームワークの脆弱性

フレームワーク内にバグがあると、大変なことになります。触れないからです。フレームワークをアップデートすると、他の動いていた部分が動かなくなることもあります。「脆弱性がつかれにくい」と謳っていても、脆弱性を見つけられてハックされることはあります。また、ボランティアがテストしていることもあるので、機能自体がなくなってしまうこともあります。

          3:コードの統一による弊害

コードを統一することによる益もありますが、フレームワークに沿った書き方にしないと「ハネられて」しまい、何のエラーか分からない場合もあります。また、統一により、やりたいことが出来なくなるというリスクもあります。

3.     オススメのPHPフレームワーク

 オススメフレームワークを4つ紹介します。

3.1.     FuelPHP

 FuelPHPは、2011年にリリースされた比較的新しいフレームワークです。MVCモデルを採用しており、高速で軽量なフレームワークでWebサービスやアプリケーションに向いています。

 また、公式サイトからクイックインストールができ、すぐに試すことができるのも特徴です。

 更に、1:設定ファイルでの細かな指定がなく、ディレクトリとクラス名で役割を指定できる、2:必要なクラスを自動で呼び出すオートローダーがあり、require文やinclude文が不要、3:Controllerからロジックを分離するView Modelがあり、ソースコードの肥大化を防げる、4:シンプルなため高速というメリットがあります。

 一方、細かな設定がない反面、MVCの命名規則に従う必要があり、Model/ Viewに対する複雑な処理をControllerModelに記述してしまうことがあり、システムの品質が落ちてしまう可能性もあります。

3.2.     symfony

 symfonyは、世界中で人気のあるフレームワークで、比較的規模の大きいWebサービスで用いられています。アプリケーションを開発する上で、開発と保守を効率化することを目的としており、様々なOS上で動くのが特徴です。また、Mojaviから派生しており、Ruby on Railsの影響を受けています。

 また、非常に多機能で、キャッシュのコントロールから、管理ツール、スマートURL、多言語対応やAjaxと、幅が広いです。本家ドキュメントも充実しています。日本語ドキュメントは少ないですが、活用できれば大いに役に立ちます。

3.3.     Codeigniter

Codeigniterは、「サクサクと処理を書けて手軽に使える」フレームワークです。海外でのシェアも大きいです。CakePHP等と比べて、比較的処理が速いのも特徴です。

ライブラリも豊富で、コマンドラインでの入力は必要ありません。システム拡張も容易です。またコーディング規約が緩いので、他のフレームワークと比較すると、規約や制限が少ないのも特徴です。

心配されるセキュリティ面では、クロスサイトスクリプティングやSQLインジェクション対策を行える機能が実装されています。

3.4.     CakePHP

 CakePHPは、Rubyで大人気のRuby on Railsというフレームワークの影響を受けています。きちんとしたルールの中でコーディングを行っていきます。日本でのシェアが大きいです。また軽量で使いやすい為、受託等の仕事がしたい際、勉強しておいて損がないフレームワークです。世界的にはややシェアが下がっていますが、汎用性があります。

 CakePHPは、学習がしやすいという特徴があります。日本語に翻訳された優れたチュートリアルもあります。また、エラーメッセージが親切です。ModelViewControllerが足りないと、ひな形となるPHPコードとファイルの設置場所を示したエラーを表示させます。これで、行き詰ることなく学習しやすくなります。

 更に、FTPでのアップロードのみで動作するため、PHPを搭載したサーバで容易に動きます。また、外部ライブラリにも依存していません。