PHP フレームワークを利用しての開発〜未経験の為のPHPプログラミング講座〜

PHPでシステム開発するに当たりチーム開発やフリーランスの案件などでよく目にする「フレームワーク」を利用してのシステム開発ですが、今回はPHPのフレームワークについて触れてみたいと思います。
フレームワークとは?
フレームワークは、PHPでシステム開発するに当たりよく利用するであろうプログラムをあらかじめライブラリとして用意してくれています。
そのため開発の工数を大幅に削減できたり、数名でのチーム開発時のプログラミングコードにある程度の統一を持たせることができます。また、開発にたずさわった人材が離職した後、後任のプラグラマに引き継ぎやすいメリットがあります。
その逆で、デメリットとしてフレームワークを利用できるようになるためには学習コストがかかります。また、オープンソースならではの脆弱性が発見された場合の対処など、後々作業が発生してしまう可能性もあります。
PHPフレームワークの種類は
PHPフレームワークとしていくつか紹介します。
- Laravel
- CakePHP
- Symfonyn
などが有名どころです。エンジニアとしての就職やフリーランスの案件で最近よく名にするのが「Laravel」ではないでしょうか?それ以前(数年前)までは「CakePHP」をよく目にしました。
求人情報のスキルとしてLaravelが利用されている例



以下は実際の求人情報に記載されている必要スキルや歓迎スキル、開発環境などです。
あると嬉しいスキルの補足
【歓迎するスキル・業務経験】 ・オブジェクト指向プログラミング、PHPフレームワーク(Laravel)を使っての開発経験はなくても問題ありません。 ・Unix/Linux系サーバーの構築経験 ・WordPress等のCMSを使ったカスタマイズ経験 ・Ajaxを利用したフロントエンド構築経験 ・テンプレートエンジン(Twig、Smarty)の利用経験 ・Unix/Linuxコマンドを使用した作業経験 ・シェルスクリプトまたはLinux設定ファイルの変更作業経験(cron等の記述経験) ・バージョン管理ツール(Git、Subversionなど)の使用経験 PHP(Laravelなどフレームワーク含む)を用いた開発
月給35万円 ~ 60万円 大阪府大阪市北区 正社員(中途)の求人情報



開発環境
※よく使う環境例 フロントエンド:Typescript サーバサイド:Rails or Spring Boot or Laravel DB:MySQL インフラ:AWS その他:Git/GitHub, CircleCI, Slack, Redmine
年収360万円 ~ 800万円 神奈川県藤沢市 正社員(中途)の求人情報



【プロジェクト例】
■Webサービス提供会社 ・大規模ECサイトのシステム開発・設計 ・Angularでの一般ユーザ向け画面開発・設計 ・PHP(Laravel)でのAPI開発・設計 ・API Geteway、Cognito、EC2、CloudFront、S3、RDSなどAWS関連の環境構築・設定
年収400万円 ~ 700万円 東京都千代田区 正社員(中途)の求人情報
Laravelはどんなフレームワークか
Laravelの最新バージョンは現在7.xが最新のようです。



Laravelを利用することにより、データベースへの接続や、フォームのバリデーションなどを簡単に実装できます。ただし、簡単といっても、Laravelのクラスやメソッド・プロパティ、記述方法などを覚えるか、調べて記述できる必要があります。
クラスやメソッド・プロパティ、記述方法に「決まり事」があるので記述するプログラマが複数にいてもほぼ同じクオリティーのソースコードを作成することができます。
フレームワークと並んで求められるスキル「WordPress」
WordPressは高機能なオープンソースのブログシステムです。WordPressはPHPで書かれているので、プログラムを書き換えることにより機能を追加したり、修正したりすることもできます。
また、インストールも容易なので、導入コストもやすく高機能かつテンプレートを利用することである程度のデザイン性も担保することができます。
WordPressでは前述のデザインテンプレートを自作することも可能です。
Webサイト制作会社でもこの「WordPress」を利用してWebサイトを制作しているところが多数あります。
ただし、「WordPress」もオープンソースであるため脆弱性の悪用によりサイトを乗っ取られたり、サーバーに悪意のあるコードを流し込まれたりするデメリットもあります。
この脆弱性に対応するためにバージョンアップを繰り返していますが、一定のバージョン以上になるとPHPやMySQLの必要バージョンが上がり、利用中のサーバーでは対応しないなどといった問題も出てきます。
この場合は、サーバー関連の知識も必要となってきます。
フレームワークは利用するべきか?
フレームワークの利用の有無は会社や個人の判断によります。
知っていて損はないと思いますが、常に知識のバージョンアップも必要となります。
また、フレームワークやWordPressを利用すからプログラミングの知識が不要かというと全くそうではありません。利用しているクラスなどがどのような処理をしているのかソースコードをみて理解できるくらいの知識は持っておいた方が無難です。
S.E->お勧め記事;
- PHPフレームワーク「Laravel」MVCとコントローラを利用する
- Laravel開発環境をgitでコミットする際の注意点
- macOS Monterey にアップデート後、composerやhomebrewでenv: php: No such file or directoryが出る
- PHPフレームワーク「Laravel」PHPテンプレートを利用する
- PHPフレームワーク「Laravel」ディレクティブ-分岐処理(条件分岐)-
- XSERVERにSSHを利用してLaravel環境を構築する
- PHPフレームワーク「Laravel」ディレクティブ-繰り返し処理(ループ処理)-
- PHP フレームワーク Laravel ディレクティブ – ループ変数 $loop –
- PHPフレームワーク「Laravel」Bladeテンプレートを利用する
S.E->PR;
チームのタスク管理ツール【backlog】
FREENANCE(フリーナンス)
S.E->Weekly Ranking;
S.E->プロフィール;





