【5分でわかる】PHPのWEBフレームワーク「CakePHP」とは?

eyecatch_template
書いた人 須田 博

こんにちは!インストラクターの須田です。

「PHP」でWEBアプリを開発する際に必ずと言っていいほど使われるモノがあります。

それは「WEBフレームワーク」です。いくつか種類がありますが、

その中でも人気があるのは「CakePHP」というWEBフレームワークです。

初心者の方は

「WEBフレームワークって何?」

「CakePHPっていったい何?」

など、わからないことだらけでしょう。

そこで今回は、PHPで注目されているWEBフレームワーク「CakePHP」についてどこよりも

わかりやすくご紹介します。

この記事を読んでいただければ、5分でWEBフレームワークやCakePHPについて

ざっくりとした概要や特徴がつかめるでしょう。

はじめに

PHPでの開発時にはcakePHPってよく聞きますよね。

cakePHPなんて、おいしそうな名前ですよね。ケイクピーエイチピーって呼びます。

実は、cakeは食べる「ケーキ」のことなんです。

bake(ベーク)という焼くなんて名前が付いた機能はPHPプログラムを自動生成します。

ユーモアあふれる先輩方がつくられたWebフレームワークなのです。

「cakePHPってcake(ケーキ)をbake(ベーク)するんだよ」って説明したら笑われちゃいますよね。

しかしcakePHPはわかりやすいのでこの記事を読めば5分で特徴と概要がわかります。

では、よろしくおねがいいたします。

PHPとは

images

PHPはHTMLに埋め込むことができるため、Web開発でよく使用されるスクリプト言語です。

PHPはサーバーサイドで実行した結果のHTMLを返却します。

同様な言語ではMicrosoftのClassic ASP(Active Server Page)などがあります。

現在はオブジェクト指向を取り入れられており大きな規模のシステムにも対応可能な言語へ

成長しております。

WEBフレームワークとは

「フレームワーク」という言葉、よく聞くのですが結局どういうもの?

ごく普通に使われているキーワードですよね。

このフレームワークを使えば簡単にプログラムが作成することができます。

平たく言えば、画面遷移やDBアクセスの部品化やログ出力など便利な部品が準備され、

決められた手順に沿ってコーディングを行っていけば簡単に開発できるのです。

開発効率と品質を確保するためにフレームワーク利用は当たり前になっているのです。

WEBフレームワークについて詳しく知りたい方はこちらの記事をご覧ください。

https://www.sejuku.net/blog/30

現代の開発では、他社との競争が激しくなってきておりスピードが求められます。

開発効率が重要視されているため、さらに関連付け(アソシエーション)を

記述することで,関連したテーブルの情報を自動的に取得できます。

CakePHPを利用するにあたって必要なスキルとは

HTMLを作成するスキルとPHP言語が分かっていれば、むつかしいことではありません。

必要なスキルを列記すると以下になります。

  • PHP言語
  • HTML/HTML5
  • Javascript
  • css

CakePHPとは

screenshot-2016-11-26-23-47-11

参照元: CakePHP公式サイト

なぜ、CakePHPなのか?

より簡単に開発できるという点でRuby on Railsというフレームワークが先行して流行しました。

しかしこの概念の多くを取り入れ、Rails流の高速開発とPHPの機動性を兼ね備えた

フレームワークのcakePHPを作り出したのです。

この「CakePHP」はウェブ開発を単純に簡単にできるように開発されました。

また、高速に開発するための仕掛けが随所に盛り込まれています。

特徴

CakePHPは「PHP開発者が誰でも素早く快適に開発を行える事」を目標として

産み出されたプロトタイピング型のフレームワークです。

たくさんの豊富な機能を備えておりますので以下に主な特徴をピックアップしてみますね。

統合された柔軟なO/Rマッピング(ActiveRecordパターン)

O/Rマッピング(PHP上のオブジェクトとデータベースを関連付けするための仕掛け)は

SQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが行えます。

さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を

自動的に取得できます。

scaffolding機能

簡単なコントローラをひとつ用意するだけで、テーブルの一覧・追加・削除・編集

(Create,Read,Update,Delete) の画面などを簡単に実装することができるといった機能を

提供されております。デメリットはレイアウトなどのカスタマイズがむつかしい点があります。

主にカスタマイズが少ないマスタ画面などに用いることで工数削減が図れます。

bakeコマンドによるプログラム自動生成機能

bakeコマンドを実行すると対話的に次々と入力を求められ、それに答えていくことで

MVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する

機能になります。コマンドのパラメータによってテーブルの一覧・追加・削除・

編集画面などのPHPプログラムが自動生成されるのです。

デメリットはテーブル変更時は個別対応が必要です。

日本語に翻訳された優れたドキュメント。

MVC(モデル/ビュー/コントロール)モデル採用

下記「CaskePHPで作る最適なアプリ」で説明します。

フォームバリデーション機能

数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを

定義することができますので、フォームの扱いが非常に楽になります。

その他主な機能

  • MySQL、PostgreSQL、SQLite、Microsoft SQL Serverの主なDB標準サポート。
  • セキュリティ対策機能が充実(XSS対策・CSRF対策・フォーム改竄検知など)。
  • カスタムURLを実現するためのリクエストディスパッチャー。
  • 下位バージョンからのアップグレードをサポートする公式移行ガイド及びUpgrade shellが充実。
  • PEAR等の外部ライブラリに依存しておらず、単体での利用が可能。
    ※PEAR (PHP Extension and Application Repository) はPHPでよく利用する機能がまとめられたPHP標準ライブラリ(パッケージ)です。
  • プラグインによる機能拡張。
  • 柔軟なビュー機構。
  • テンプレートの継承や拡張。
  • Composerへの標準対応(バージョン3以降)。

CakePHPを使って最速で作るサンプルプログラム

前提条件

  • XAMPP(推奨:V3.2.2)がインストール済みであること。
  • PHP (推奨:5.6.28)がインストール済みであること。
  • cakePHPがダウンロードし展開済みであること。

MVCモデルとは

・M:Model[モデル]

主にデータベースをモデルへ対応させる(外部連携機能)。

・V:View[ビュー]

画面を表示するテンプレートの機能を実現。

・C:Controllerは[コントローラー]

簡単に言えばアプリケーションの司令塔のような役割を果たします。

リクエストに対して処理(動作)を指示し処理結果をView[ビュー]へ渡す制御を行います。

それぞれの機能に影響を及ぼさないよう、独立させて作るという考え方です。

基本的にはコントロールにすべての処理を書いて、そこから表示に

関するものをビューへ、データベースに関するものをモデルへと切り離します。

またCakePHPではディレクトリに合わせてそれぞれのプログラムを配置するだけで

機能するようになっています。

cakePHPではbakeコマンドで簡単にプログラムを作成できます。

過程を説明いたしますのでイメージだけでもつかんでください。

composerとbakeでプロジェクト作成

composerを使ってプロジェクトを作成してみます。

①.まずプロジェクトのフォルダーを作成してください。

②.その配下に下記の composer.json を作成します。

③.コマンドプロンプトを開き、cdコマンドでこの作成ディレクトリをカレントとします。

④.”composer install “のコマンドを入力しプロジェクトを作成する。

⑤.”.\Console\cake.bat bake all” を入力し各指示に答えてください。

テーブル名やキーなどをビュー形式など簡単な質問形式で指定していきます。

フォルダー構成

各フォルダー構成は決められております。

基本的にはモデル/コントローラ/ビューは各フォルダーへ格納しないといけません。

SyouhinMastersはbakeコマンドで指定したテーブル名です。

Controller/Model/Viewの各MVCフォルダー配下へphpと画面テンプレートのctpが

自動生成されます。

cakephp%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e6%88%90

動作結果

bakeコマンドより指定したテーブル名が起動のURLとなります。

URL → http://localhost/cakePhpBakeSample/SyouhinMasters

これだけで下記の図1のレコード一覧画面と図2のレコード登録画面、他にも削除画面と

更新画面も自動的に生成されるのです。

この生成プログラムをベースに開発していけば開発スピードも格段にアップできるのです。

【図1:レコード一覧画面】

cakephp%e4%b8%80%e8%a6%a7

【図2:レコード登録画面】

cakephp%e8%bf%bd%e5%8a%a0

まとめ

cakePHPは世界規模で最も多くのWebアプリケーションに導入されているPHPフレームワーク

です。O/Rマッピング(ActiveRecordパターン)やscaffolding機能やbakeコマンドより初心者

でも敷居が低く、生産性が高いフレームワークなのです。

またPHPのオブジェクト指向化より高いレベルでのユーザ要求にも応える事ができるように

なってきました。どうですか?使ってみたくなったのではないでしょうか。

是非、この機会にPHP+cakePHPフレームワークに取り組んでみてはいかがでしょうか。

ご紹介


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

学習者インタビュー

人気記事セレクション

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大11,000円!テックライター募集


LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

須田 博

SEキャリアは34年以上、開発言語は多彩だがJavaは私の基本言語であり、 メジャーになる前の1999年より実務開発。開発実績は大手企業様が多いが製品開発経験やインフラ構築経験もあり。言語は大工のカンナなど大工道具のようなものであり、使う人の技量によって速さ(生産性)と品質は変わるものというスタンスでやってきました。
趣味は「車の電飾系改造」と「バドミントン」と「アニメ」と「猫のわかちゃん」です。
ビデオ溜めしたアニメは2倍速で一気に鑑賞という特技あります。