開発を早く、低コストで行いたい企業様が検討すべき要素となってくるのが、「どの言語で、どんな技術を使って開発をするか」だと思います。
その中でよく語られるのが「フレームワーク」。
なんとなくよく聞くけど、具体的にはよく知らない…と言う人も多いのではないでしょうか。
今回はベトナムでよく使われている開発言語でも上位の方に上がっているPHPにまつわるフレームワークをご紹介します。
目次
1. そもそもフレームワークって?
そもそも「フレームワーク」とはなんなのでしょうか?
web開発の際に言う「フレームワーク」とは、主には「一般的に開発で使うであろう機能を集めたひな型」と説明できます。
例えば、ECサイトを作ろうというプロジェクトが立ち上がったときに、まずはどのような機能が必要かを考えます。
ECサイトといえば、一般的には商品登録機能、ショッピングカート機能、会員登録機能、ログイン機能…などが挙げられますね。
「どのような機能をつけるか」は大体どのようなプロダクトでも共通している部分があり、大体同じになってくるのではないでしょうか。
そのような「この機能は大体みんな使うよ」という機能をひとまとめにして開発の効率を挙げてくれるのがフレームワークです。
1-1. コーディング規約の有無
開発時、コードを書く際に問題になるのがコーディング規約です。
コーディングをする時は、望ましいとされる書き方に沿ってコーディングをするのが理想ですが、当然人によって書き方の好みが出たり、使うメソッドが違ってきたりします。
この違いにより、後のメンテナンス時に他の人が引き継ぐことが難しくなったりすることがあります。
しかし、フレームワークを使うと、大抵はコーディング規約というものが用意されており、書き方のルールがある程度の決まってきます。
これは、どのような人が開発をしても同じようなコードになりやすい、と言うことを意味します。
この性質により、コードの統一性、品質が保たれ、属人化したコードを生み出すことを防ぐことを可能にするのです。
それはつまり、プロダクト開発が終わり保守・運用フェーズに入ったり、開発担当が変わったときにも、メンテナンスがしやすいと言うメリットになるのです。
1-2. 開発速度の改善
全く何もない状態から開発することは、自由度が高くカスタマイズしやすいシステムを作れる可能性はありますが、膨大な時間がかかります。
作りたいプロダクトに合わせてフレームワークを選ぶことで、ある程度の機能を備えたプロダクトをすぐに構築できるため、開発速度は格段に上がります。
もちろん、フレームワークごとにルールや使い方が変わってくるため勉強は必要ですが、その時間を加味しても、早くプロダクト開発をしたい人がフレームワークを使わない手はないでしょう。
2. PHPフレームワーク一覧
2-1. CakePHP
CakePHPは2005年に最初のバージョンがリリースされ、すでに10年以上使用されていますが未だにそれなりの人気を維持しているフレームワークです。
日本語ドキュメントも多いため、日本人が開発するときにもよく選ばれていた印象です。
そもそもCakePHP公式が日本語対応しているため、とっつきやすさはピカイチかもしれません。
セキュリティ面もしっかりしており、セキュアなサービスを作りたい時にも向いています。
2-2. CodeIgniter
CodeIgniterもすでにリリースから10年経ったフレームワークで、その軽量さとシンプルさで支持を得ています。
他のフレームワークと同じようにMVCモデル(Mode, View, Controllerからなる設計のこと)を採用していますが、コーディング規約はそこまで厳しく決まっているわけではないので比較的自由度高く開発ができるのも特徴です。
参考: CodeIgniter Tutorial
シンプル、軽量、余分なものが少ないという点で小規模開発時に向いていると言われています。
2-3. Zend Framework
Zend Frameworkは完全オブジェクト指向のフレームワークで、「コンポーネント」と呼ばれるクラスライブラリが用意されているため、拡張性が高いのが特徴です。
商用利用を想定して作られたライブラリのため、大規模なプロダクトを作成する時にも耐えうる設計がされています。
2-4. Symfony
Symfonyも老舗フレームワークで、その柔軟性は熱い支持を受けています。
バンドルと呼ばれる、目的にあったパッケージを簡単に導入できるプラグインのような機能を備えていることで開発速度の向上が期待できます。
また、疎結合性が高いので、Symfonyで作成したプログラムを別のプロダクトにも使うというような再利用性も高いのが特徴です。
後述するLaravelはSymfonyのコンポーネント上に構築されており、その信頼性の高さが伺えます。
3. 今注目を集めているPHPフレームワーク、Laravelとは?
今まではCakePHP, Synfony,CodeIgniter あたりが日本でも人気がありましたが、近年になって注目を集めているのは断然Laravelでしょう。
ここ5年でLaravelへの注目度は一気に上がっており、実際に開発のプロジェクトに取り入れる企業も増えてきたようです。
実際に Google Trendで各フレームワークについて調べてみると、Laravelのみ圧倒的に注目を集めていることが伺えます。
2015年のsitepointの調査では、ベトナムでも人気のフレームワーク1位にLaravelが挙げられていますね。
3-1. なぜLaravelなのか?
Laravelのメリットとして、下記の点がよく挙げられます。
・豊富な機能群
・初心者でも簡単に扱える
・ドキュメントが多く開発を進めやすい
一つずつみてみましょう。
3-2. 豊富な機能群
Laravelはwebサービスを作るときに必要となる機能を豊富に取り揃えています。
例えば、ログイン周りで必ず必要になる認証機能も標準で備えられていますし、メール送信機能のビルディングも簡単にできるようになっています。
Cronで行なっているようなタスクの実行もLaravel側で管理できるのも嬉しいところです。
3-3. 初心者でも簡単に扱える
Laravelは他のフレームワークに比べてシンプルで明快なつくりになっています。
また、良くも悪くもそこまで厳密にMVCモデルを徹底しているわけではないという点もあり、「フレームワーク使ってとりあえず何か作ってみたい」という初心者でも嫌にならずに使えるフレームワークなのではないかと思います。
私も実際にどちらも開発に使って思いましたが、Ruby on Railsと似たところもあるので、Railsに馴染みのある人にとってはさらに簡単に習得できるのではないでしょうか。
artisanコマンドを使用すれば、モデルやコントローラが自動的に生成されるので、とても簡単に開発を行えます。
3-4. ドキュメントが多く開発を進めやすい
上記で説明したように、近年人気が出て来たため日本語の記事も多くなって来ました。
他のフレームワークは、日本語情報が少なかったりして英語の壁にぶち当たることもありますが、laravelはある程度日本語情報も揃って来ているので、困ったときにも比較的容易に情報を得られるでしょう。
ちなみに、Laravel公式のドキュメントはこちらです。
4. ベトナムでのオフショア開発なら・・・
バイタリフィ・Vitalify Asiaでは、ホーチミンで2008年から10年超のオフショア開発経験と実績を活かし、優秀なベトナム人エンジニアを活用したソフトウェア開発・サービス開発/保守運営が可能です。
『Javascriptを使ったフロントエンド開発』や『アジャイル・スクラムでのサービス開発』、独自の『ベトナム法人設立前にベトナムをお試しできる拠点開設プラン』、『AI導入をお考えの方に精度や効果を無料で確認してから開発の判断ができるサービス』など様々なご要望に対応できます。
いずれもお気軽にご相談くださいませ。