Developer

魁!小野の塾 小さな管理機能を作ってみようの巻 第16話
2021.07.16
Lv2

魁!小野の塾 小さな管理機能を作ってみようの巻 第16話

小さな管理機能を作ってみよう 第16話

初心者向け、PHPプログラム構築講座です。
初心者といっても、PHPの勉強を少し行い、LAMP環境が自分で構築でき、少しアプリケーションを作成しているレベルを対象とします。
まったくの初心者の場合は、わからない部分が出てくると思います。
できるだけ細かく説明は入れていきますが、説明がわからない場合は、PHPやMySQLの初心者講座をご覧ください。

対象のスキルレベル

  • LAMP環境の構築
  • PHP言語が読める
  • HTML, CSS, Javascriptが少しわかる
  • Bootstrapのドキュメントをみて、HTMLが書ける
  • Ajax(非同期通信)を利用したことがある
  • SESSIONを利用したことがある

構築環境

  • Windows10
  • XAMPP(PHP7.3.2, MariaDB 10.1.38)

方式設計

画面の実装が一通り終了しましたので、PHPを作成していくのですが、今回は、非同期通信を利用していきたいと思います。そこで、どのようにリクエストを処理するのか整理したいと思います。


簡単にリクエストからデータの描画までの流れを説明します。
ブラウザからリクエストを送信後、HTMLが返ってきます。
Javascriptにて認証確認(ログイン以外)をサーバへ送信し、OKの場合は、データの取得を行い、Javascriptにて画面に描画します。
認証確認NGの場合は、認証NGを受取り、ログイン画面へ遷移する流れになります。

SPA(シングルページアプリケーション)にすれば良いのですが、今回はそこまでしない方向です。
画面の遷移もJavascriptで遷移させ、認証失敗を受取った場合にログインに遷移するのもJavascriptで行います。

なんだか面倒な感じがするかと思いますが、API(サーバ側)と画面(HTML)を完全に分離して開発が可能です。
submitするのに慣れてくると、分離するよりsubmitしたほうが楽と感じるかと思います。
一人で開発している場合は良いのですが、大人数で開発している場合は、開発個所が分かれているほうがとても楽です。

顧客からの要望は大抵の場合、画面のレイアウトや挙動についてが多いので、その場合はAPI側を一切いじる必要がなく、責任範囲(画面・API)も明確になり、結果早く終わったります。

そんなことから、今回は少し面倒な方式で実装していくことにしています。

簡単なオレオレMVCモデル

PHPでは、簡単にアプリケーションを作成できるフレームワークが多数存在します。
使ってみると痺れる程簡単に出来るので、驚くと思います。が、カスタマイズ(改修)するのがかなりハードルが高いです。
コマンド一つで、WEBシステムが作れるのに、ちょっと変えようと思うと、フレームワークの用語を知らないと何もできない状況になります。

webシステムのフレームワークは似通っているので、一つ覚えてしまえば大体分かるのですが、それまでの道のりが長く、普通のPHPで書いたほうが早く終わったのではないかと考えたりする人もいますが、実際そんなことはないので、フレームワークを利用しましょう。

代表的なPHPのフレームワークをご紹介します。

Laravel


非常に人気のあるフレームワークで、マイクロソフトの.NETの開発に関わっていたTaylor Otwell氏によって開発されました。

豊富に機能が提供されているため、柔軟な開発ができます。Symfonyをベースとしているので、非常にしっかりとした基礎の上に出来上がっています。

MVCモデルを採用していて、同様のフレームワークを使ったことがある人は理解がしやすいはずです。また、初めてLaravelを使うという人も、各ファイルに記述することが明確になっているので、一度理解すると作業がしやすいです。

人気、実績ともにあるため、どのフレームワークを使うか迷ったら、Laravelから始めてみるというのも良いと思います。。

ライセンスは MIT Licenseです。

※参考 http://laravel.jp/

CakePHP


ケーキを焼くように簡単にWEBサイトが構築できるという趣旨で開発されたフレームワークです。古いバージョンでは、oven is redy と開発準備を示す言葉が表示されていました。

bake(焼く)というコマンドを利用して、プログラムを自動で生成することができます。CakePHPもMVCモデルが採用されており、それぞれの機能が独立しているので、開発がしやすです。

ライセンスはMIT Licenseです。

※参考 https://cakephp.org/jp

Symfony


2007年に登場したフレームワークです。Yahooで採用された実績があるなど、比較的規模の大きなサイトで採用されるケースが多いようです。

堅牢さに定評があり、多人数が参加するような大きなプロジェクトなどではよく使われます。

SymfonyもMVCモデルが採用されています。

ライセンスはMIT Licenseです。

※参考 https://symfony.com/

FuelPHP


LaravelやCakePHP、Symfonyよりも後に登場したフレームワークで、これらのフレームワークの長所を取り入れています。そのため、軽量でシンプル、しかも高速な動作が可能ということを売りにしています。

柔軟で学習コストが低いということがメリットです。プログラムを書くにあたって、規約による制限が少ない分、比較的自由度が高いです。ただ、その分コードの統一性がとれなくなる場合も出てくるため、開発規模としては小規模~中規模程度のプロジェクトに向いています。

Fuelは燃料なのですが、oil(オイル)というコマンドで、プログラムを自動生成します。

HMVCというモデルを採用しています。HMVCというのは、Hierarchical model–view–controllerの略です。

ライセンスはMIT Licenseです。

※参考 http://fuelphp.jp/

魁!小野の塾