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

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

「PHP」でWEBアプリを開発する際に必ずと言っていいほど使われるモノがあります。それは「WEBフレームワーク」です。いくつか種類がありますが、その中でも人気があるのは「CakePHP」というWEBフレームワークです。

初心者の方は

WEBフレームワークって何?
CakePHPっていったい何?

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

そこで今回は、PHPで注目されているWEBフレームワーク「CakePHP」についてどこよりもわかりやすくご紹介します。

この記事を読んでいただければ、5分でWEBフレームワークやCakePHPについてざっくりとした概要や特徴がつかめるでしょう。

また、次の記事ではそもそもPHPとはどんなプログラミング言語なのか、その特徴をできることや需要、学習方法も交えて紹介しているので良ければ参考にしてください。

PHPとは何かわかりやすく解説!できることや需要・将来性も紹介

はじめに

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フレームワークについて詳しく知りたい方はこちらの記事をご覧ください。

現代の開発では、他社との競争が激しくなってきておりスピードが求められます。開発効率が重要視されているため、さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できます。

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

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

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

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

CakePHPとは

screenshot-2016-11-26-23-47-11
引用元:CakePHP公式サイト https://cakephp.org/jp/

なぜ、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 を作成します。

{ 
  "name": "cakephp/cakephp", 
  "description": "The CakePHP framework", 
  "type": "library", 
  "keywords": ["framework"], 
  "homepage": "http://cakephp.org", 
  "license": "MIT", 
  "authors": 
    [ 
     { 
      "name": "CakePHP Community", 
      "homepage": 
             "https://github.com/cakephp/cakephp/graphs/contributors" 
          } 
        ], 
  "support": 
    {
          "issues": "https://github.com/cakephp/cakephp/issues", 
     "forum": "http://stackoverflow.com/tags/cakephp", 
          "irc": "irc://irc.freenode.org/cakephp", 
          "source": "https://github.com/cakephp/cakephp" 
        }, 
    "require": { "php": ">=5.2.8",
                 "ext-mcrypt": "*" }, 
    "require-dev": { "phpunit/phpunit": "3.7.*", 
                     "cakephp/debug_kit" : "2.2.*" }, 
    "bin": [ "lib/Cake/Console/cake" ] 
}

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

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

⑤.".Consolecake.bat bake all" を入力し各指示に答えてください。

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

フォルダー構成

各フォルダー構成は決められております。基本的にはモデル/コントローラ/ビューは各フォルダーへ格納しないといけません。

SyouhinMastersはbakeコマンドで指定したテーブル名です。Controller/Model/Viewの各MVCフォルダー配下へphpと画面テンプレートのctpが自動生成されます。

動作結果

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

PHPを勉強した気になってはいませんか?

もしあなたが順調にPHPの学習を進められていて、CakePHPの学習も順調に取り組むことができているなら問題は何もありません。

しかし、あなたがもし

本当にスキルが身についているのか不安がある…

と少しでも思っているのであれば、すでにあなたの学習効率は落ちてしまっています。

そんな現状を打開するには、学習課題を解決できるスペシャリストに相談するのが一番です。

もしかしたら、あなたは「周りにそんな人がいない」と思っているかもしれませんね。

そんな時こそ、弊社の無料カウンセリングをご活用ください、もっとご気軽に…!

さらに、オンラインでの無料カウンセリングも受講可能な上に、参加者全員に豪華3大特典もプレゼント中!

きっとあなたのプログラミング学習が2時間で変わりますよ。

お急ぎの方はこちらからお問い合わせください。

読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。

再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。

カウンセリングはオンラインにて実施しております。

※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します

1.ご希望の日時を選択してください

空きあり 満席
前週
次週

2.必須事項を入力してください

必須選択された日時

日時を選択してください

開催場所 オンライン

日時を選択する

必須お名前

必須電話番号

必須メールアドレス

ご予約により、個人情報の取り扱いおよび利用規約に同意するものとします。

まとめ

cakePHPは世界規模で最も多くのWebアプリケーションに導入されているPHPフレームワークです。O/Rマッピング(ActiveRecordパターン)やscaffolding機能やbakeコマンドより初心者でも敷居が低く、生産性が高いフレームワークなのです。

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

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

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

プログラミング学習の挫折率は約90%と言われています。学習を成功させるには、モチベーションを維持して成長を実感できる環境が必要です。

侍エンジニアなら「現役エンジニア講師」、「学習コーチ」、「Q&A掲示板」のトリプルサポート体制であなたの学習をサポートするほか、オーダーメイドカリキュラムで必要なことだけを学べるため、さまざまなランキングでNo1という実績を挙げています。

挫折せず最短でプログラミングを習得したいなら侍エンジニアがおすすめです!

詳しくはこちら

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

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
ページ上部へ戻る
Close