PHPエンジニアとしてステップアップを考えた際に、フレームワークの習得はとても大切なことになってきます。この記事では、PHP言語の説明からはじまり、LaravelやCakaPHP、Phalconなどのフレームワークをご紹介しています。PHPのフレームワークについて知っていただき、今後のお役立てになれば幸いです。
Contents
PHP言語の特徴
Webアプリケーション制作に特化した、オープンソースのプログラミング言語です。1995年にリリースされ、2004年から現在のオブジェクト指向プログラミング言語として改善されました。構文が分かりやすく学習コストが低いこと、Laravel(ララベル)などの便利なフレームワークがあることから、世界中で利用されています。
出典:PHP: Hypertext Preprocessor
PHPは主に動的Webページ制作に使われています。動的Webページとは、ユーザーがWebページに訪れた時間帯で「おはようございます」「こんにちは」などと表示する文章や画像を変えたり、ユーザーの書き込みによって内容が更新されていく掲示板サイトやECサイトなどのことをいいます。
動的Webページ制作で有名なプログラミング言語として、JavaScriptをご存知の方も多いかと思います。JavaScriptとPHPは、動的Webページ制作に使う点で共通している言語です。しかし、処理をする場所が異なっています。
JavaScriptは、ユーザーが Webページ訪問時に利用したブラウザに合わせ、ユーザーのパソコン上で処理をするクライアントサイドのプログラミング言語です。対してPHPは、Webページの表示リクエストを受けたサーバー側で処理をし、ユーザーのパソコンにデータを送信するサーバーサイドのプログラミング言語になっています。
これらの違いから、JavaScriptは訪問者それぞれに合ったWebページ表示をしたいときに利用され、PHPは訪問者全員に同じWebページ表示をしたいときに利用されます。また、JavaScriptとPHPの両方の機能を使いたいときは、同時に利用することも可能です。
PHPで制作されたWebサービスでは、Wikipediaやココナラ、ぐるなび、Slackなどが有名です。それらに加え、FacebookはHackというPHPをもとに独自開発をしたプログラミング言語を利用しています。
Webサイト制作を簡単にできる、CMS(Contents Management System)というシステムで有名なWordPressも PHPで作られています。WordPress公式サイトの公表では、全世界のWebサイトの43%がWordPressで作られているとのことです。
出典:WordPress.com:高速、安全に管理されているWordPressホスティング
また、オーストリアにあるソフトウェア品質管理コンサルティング会社のQ-Successの調査によると、PHPはサーバーサイドに利用されるプログラム言語の世界No.1シェアを10年以上獲得し続けています。
出典:Webサイトのサーバー側プログラミング言語の使用統計における過去の年間傾向
弊社TechReachのPHP案件数は337件となっており、javaの719件、javaScriptの338件に次いで、プログラミング言語順では3番目の規模になっています。(2022年5月16日現在)
PHPはWebアプリケーション制作に特化した言語のため、デスクトップアプリやスマートフォンアプリ制作にはあまり向いていません。しかし、業界全体を見ても需要があるプログラム言語のため、将来的にもこのまま使われていくと考えられます。
知っておきたいPHPフレームワーク5選
PHPが世界的な人気を博している理由に、便利なフレームワークを提供していることが挙げられます。ここでは5つをご紹介します。
Laravel
WordPressのマネージドホスティンサービスを提供しているKinsta社の2022年度版の調査によると、Laravelは PHPで一番利用されているフルスタックフレームワークとして挙げられています。フルスタックフレームワークとは、Webアプリケーション開発に必要な機能をひと通り揃えているフレームワークのことで、それだけで開発することが可能になっています。
また、Google Trendsの検索キーワードでは、他のPHPフレームワーク、他のプログラミング言語の有名フレームワークと比べても検索数が多くなっており、Laravelはトレンドのフレームワークということができるでしょう。
他のPHPフレームワークとの比較。(青色で表示されているものがLaravelです。)
他のプログラミング言語の有名フレームワークと比較。
Laravelは、Webアプリケーション全般の開発に向いているフレームワークです。PHPのフレームワークSymphonyをもとにして開発され、2011年にリリースされました。現在の利用状況に加えてアップグレードも頻繁におこなわれているため、需要も、将来性もあるフレームワークといえるでしょう。
公式サイトで日本語のドキュメントが用意されているほか、インターネット上にもたくさんの情報があります。簡単なコード記述で開発ができるので、初学者にもおすすめのフレームワークです。
LaravelはMVCモデルを採用しています。MVCモデルとは、Model(データ処理)、View(画面表示)Controller(ModelとViewの全体制御)という役割を分担させる構造システムです。各機能ごとに分業して開発ができるようになっているので、企業やチームごとに担当を割り振って業務をおこなうこともできます。
MVCモデル以外では、データ処理から画面表示までの流れを1つのファイルに記述することになり、コードが複雑になりがちです。それに対して、MVCモデルを用いれば各機能ごとにコード記述ができるようになるので、誰もが読みやすく、修正もしやすいといったメリットがあります。
また、Laravelではcomposerというライブラリ依存管理ツールを提供しています。ライブラリ依存とは、ライブラリAを成立させるためにはライブラリBが必要になるような状況のことで、ライブラリBがないとライブラリAが成立しない、とも言い換えることができます。
システム開発をする際は、ライブラリの依存関係が発生するたびに必要な記述をしなくてはなりません。しかしcomposerを用いると、利用するライブラリAの宣言をすればライブラリBを自動的にインストールし、成立要件を満たしてくるので個別の記述が不要になります。そのため記述や管理の手間が省け、効率的に開発をすることができるようになります。
上述した機能以外にも、データベースとModelに関係性を持たせ、データを柔軟に操作することができるEloquent ORM(エロクアントORM)、データベースの管理を簡単にするMigration(マイグレーション)、アプリケーションや各種設定を短いコードで作れるコマンドツールのArtisan(アルティザン)などが備わっており、拡張性が高い点も特徴に挙げることができます。
また、Laravelで制作された有名なサービスにはぐるなびがあります。
CakePHP
2005年にリリースされた、PHPで有名なオープンソースのフルスタックフレームワークです。CakaPHPもLaravelと同じようにMVCモデルとcomposerを搭載しているので業務効率化に役立ちます。また、Laravelと同じく日本語ドキュメントやインターネット上の情報なども多いので、学習しやすい環境が整えられています。
出典:ようこそ – 3.10 – CakePHP Cookbook
CakaPHPはLaravelが台頭してくるまでは、PHPの人気フレームワークでした。現在では弊社TechReachの案件数でもCakaPHPよりもLaravelのほうが多くなっています。
2016年5月を境に、Laravelと人気が逆転しているようです。
CakePHPにはケーキを焼くように簡単に開発ができる、bakeという機能があります。bakeはMVCモデルに関係するファイルを自動作成してくれる、対話型インターフェイス機能です。質問に答えるだけでModel、View、Controllerのプログラムを作成してくれるので、基本部分であればソースコードを書かずともファイルを作ることができます。
その他には、オブジェクトとデータベースごとに必要なコード記述が不要になるO/Rマッピング、入力されたデータをチェックするバリテーション、テキストボックスなどのフォーム関連タグを作成するフォームヘルパーなどがあります。
Laravelと比較すると、CakePHPは開発スピードが速いといった特徴があります。しかし、柔軟性や拡張性が低くなっているので大規模開発にはあまり向いておらず、機能の新規追加などもしづらくなっています。
CakePHPで制作された有名なサービスには、ココナラを挙げることができます。
Phalcon
2012年にリリースされ、現在でもPHPのなかで一番速い動作をするオープンソースのフルスタックフレームワークです。LaravelやCakaPHPと同じくMVCモデルを採用し、composerも利用できるため、柔軟に開発をすることができます。
出典:ようこそ — Phalcon 3.0.2 ドキュメント
一番の特徴は、機能拡張としてC言語を用いていることです。C言語はコンパイル方式といって、入力したソースプログラム実行前に機械語へ全体翻訳をしてくれます。プログラムを実行しながら機械語への翻訳をするインタープリタ方式に比べ、コンパイル方式は実行処理が速くなっています。そのため、スピーディーな開発に向いています。
CakePHPのbakeのように、PhalconにはPhalcon Devtoolsという開発者ツールがあり、コマンドを選択すればモデルファイルの作成やO/Rマッピングなどが簡単にできるようになっています。
拡張性と自由度が非常に高いため、設計や規約に気をつける必要があります。また、LaravelやCakaPHPに比べ日本語の情報が少なくなっているので、PHP開発に慣れてから利用することをおすすめします。
CodeIgniter
2006年にリリースされた、オープンソースのフルスタックフレームワークでcomposerも利用できます。処理速度の速さと、コーディング規約の緩さが特徴のフレームワークで、小規模開発に向いています。
出典:CodeIgniter 3.2.0-dev ドキュメント
Laravelの登場により日本での新規利用頻度は少なくなりました。しかし、世界的に見ればまだまだ使われているフレームワークのようです。
日本での検索件数の推移。(黄色がCodeIgniterです。)
世界での検索件数も2014年6月からLaravelに抜かれています。しかし、CakePHPよりは多くなっているようです。
上述してきたPHPフレームワークと同じようにMVCモデルを採用しており、学習コストが低いため初学者も取り組みやすくなっています。しかし、Phalconと同じように自由度が高いので、設定や規約を自分で律する必要があります。
プログラミングに必要な機能をまとめたライブラリを豊富に備えており、ライブラリにアクセスするインターフェースも用意されているため、開発者の負担を減らしてくれます。また、悪意あるユーザーがスクリプトを実行させるクロスサイトスクリプティング(XSS)への対策や、SQLデータベースへの不正プログラミングを防ぐSQLインジェクションへの対策、コマンドライン入力が不要などの特徴があります。
弊社TechReachでのCodeIgniter求人件数は2件に留まっています。また、フリーランスエンジニアの業界全体から見ても、募集要項にCodeIgniterを記載しているものは少なくなっているようです。(2022年5月16日現在)
Slim
オープンソースフレームワークで、Webアプリケーション開発に必要最低限の機能だけを搭載したマイクロフレームワークの分類に入ります。また、利用するためにはcomposerのインストールが必須になっています。
出典:Slim Framework – Slim Framework
マイクロフレームワークの特性上、大規模で複雑なWebアプリケーション開発には向いておらず、小規模でシンプルなものに利用するフレームワークです。
SlimにはHTTPルーティングが搭載されています。HTTPルーティングとは、WebブラウザからWebサーバーに表示するデータの受け渡しをするHTTPリクエストを制御し、最適な経路でデータを届けることができる機能です。その他には、OSとアプリケーションの間に入り処理や動作を手助けするミドルウェア機能、エラー発生時に処理をしてくれるエラー処理機能などがあります。
その他のPHPフレームワーク
上記以外にもPHPにはさまざまなフレームワークがあります。確認しておきましょう。
- FuelPHP(フューエルピーエイチピー)
2011年にリリースされたオープンソースのフルスタックフレームワークです。MVCモデルを採用し、規約も少なくなっているため軽量で、小規模の開発に向いています。クラスの読み込みを自動でおこなうオートローダ、O/Rマッピング、バリテーションなどの便利な機能も備わっています。
- Laminas(ラミナス)
出典:Home – Laminas Project – Enterprise PHP Framework
旧称はZendFramework(ゼンドフレームワーク)で、2019年に改名されました。
2006年にZendFrameworkとしてリリースされ、2019年にLaminasに改名されたオープンソースフレームワークです。MVCモデルを採用し、composerも利用可能です。ライブラリが豊富に準備され、拡張性も高いので大規模開発に向いています。
しかし、ZendFrameworkは2004年にリリースされたPHP5の時代によく使われていたフレームワークのため、現在では新規開発であまり用いられておりません。弊社TechReachの案件数も3件に留まっており、仕事内容は改修業務になっています。(2022年5月16日現在)
- Symfony(シンフォニー)
出典:Symfony, High Performance PHP Framework for Web Development
2007年にリリースされたオープンソースのフルスタックフレームワークです。MVCモデルを採用し、Composerや、テンプレートエンジンのTwig、EメールライブラリのSwift Mailerなどの機能が備わっています。開発がしやすく堅牢なフレームワークになっているため、大規模開発に向いています。
- Yii(イー)
出典:Yiiとは – Yii 2.0 日本語 – 最新のマニュアルガイド
2008年にリリースされたオープンソースのフルスタックフレームワークです。MVCモデルを採用し、コンポーネントベースの開発、動作の軽いキャッシュサポートなどの理由から大規模なWebアプリケーション開発に向いており、世界的に利用されています。しかし、日本での開発実績はそれほど多く見受けられません。
これから学習するならLaravelがおすすめ
ここまでPHPのフレームワークについて説明をさせていただきました。そのなかで、弊社がおすすめをするフレームワークはLaravelになります。
Laravelは学習コストが低く、学びやすい環境が整っています。また、弊社のLaravel案件数は154件となっており、JavaのSpring Frameworkの244件に次いで、フレームワーク順で2番目の規模です。(2022年5月16日現在)
現在の需要と将来性も十分にあるフレームワークなので、PHPを扱うエンジニアに自信を持ってご提案いたします。
まとめ
フリーランスエンジニアとして働いていくなかで、フレームワークの習得は差別化を図るうえでも重要になってきます。
弊社といたしましては、上述したようにLaravelの習得をおすすめいたします。しかしながら、LaravelをはじめCakaPHPやSymfonyなども弊社案件では応募しており、業界的にも需要はある状態です。
ご自身の状況によって選択するフレームワークも変わってくると思います。あくまでこの記事は参考に留めていただき、キャリアプラン作成にお役立ていただければ幸いです。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!