なんぞやについて
CakePHPについて
Webアプリケーションフレームワーク
コンセプト:ケーキを焼く様に簡単にPHPで開発ができる
おすすめポイント
利点
・同処理のコードを共通化でき、同じ処理を大量に修正するなどの必要がなくなる
・MVCモデル構造なので、機能が分離されており扱いやすい
・自分のプロジェクトを大幅に変更しなくても、プラグインのような感覚で機能を追加できる(かも)
・PEARライブラリ1がいらない
・Ruby on Railsに移行しやすい
機能
一部
■ O/Rマッピング(テーブルアソシエーション)
オブジェクトとRDBのレコードを対応付けること
これによりレコードがオブジェクトとして直感的に扱えるようになるので、
RDBにアクセスする処理を簡単に書ける
→ O/Rマッパーを採用することによってSQL文書を書く必要がなくなった
■ CRUD画面の自動生成
■ バリデーション(入力値検証)機能
→ 入力チェック
■ 生成されたSQL文のデバッグ機能
■ Ajax、htmlなどの各種ヘルパー
ヘルパー:ビューによって出力するさまざまな表示の作成をサポートしてくれる
(例)スタイルシートの読み込み
<link rel="stylesheet" type="text/css" href="/cake3app/css/hello.css">
↓
$this->Html->css('hello');
■ セキュリティ、セッション、リクエストなどのコンポーネント
■ ACLによる認証システム
Access Control List
通信アクセスを制限するためのリスト
■ データのサニタイズ
サニタイズ:悪い物を除去・変換して綺麗にする処理
→ 特別な意味を持つ文字の特別さを無効化
フォルダ構成
(empty省略)
├── 🗂bin -- 実行コマンド群
│ ├── cake
│ ├── cake.bat
│ └── cake.php
├── 🗂config -- 設定ファイル(DB接続関連等)
│ ├── 🗂schema
│ │ ├── i18n.sql
│ │ └── sessions.sql
│ ├── .env.default
│ ├── app.default.php
│ ├── app.php
│ ├── bootstrap_cli.php
│ ├── bootstrap.php
│ ├── paths.php
│ ├── requirements.php
│ └── routes.php
├── 🗂logs -- ログ出力場所
│ ├── cli-error.log
│ └── error.log
├── 🗂plugins -- プラグインパッケージ保存先
├── 🗂src -- 開発拠点
│ ├── 🗂Console
│ │ └── Installer.php
│ ├── 🗂Controller -- コントローラ
│ │ ├── 🗂Component -- コンポーネント
│ │ ├── AppController.php
│ │ ├── ErrorController.php
│ │ ├── [対象DB]Controller.php☆
│ │ └── PagesController.php
│ ├── 🗂Model -- モデル
│ │ ├── 🗂Behavior -- ビヘイビア
│ │ ├── 🗂Entity -- エンティティ
│ │ │ └── [対象DB].php☆
│ │ └── 🗂Table -- テーブル
│ │ └── [対象DB]Table.php
│ ├── 🗂Shell -- Shellファイル群
│ │ └── ConsoleShell.php
│ ├── 🗂Template -- ビューテンプレート
│ │ ├── 🗂Cell
│ │ ├── 🗂Element/Flash
│ │ │ ├── default.ctp
│ │ │ ├── error.ctp
│ │ │ └── success.ctp
│ │ ├── 🗂Email
│ │ │ ├── 🗂html
│ │ │ │ └── default.ctp
│ │ │ └── 🗂text
│ │ │ └── default.ctp
│ │ ├── 🗂Error
│ │ │ ├── error400.ctp
│ │ │ └── error500.ctp
│ │ ├── 🗂[対象DB]☆
│ │ │ ├── add.ctp
│ │ │ ├── edit.ctp
│ │ │ ├── index.ctp
│ │ │ └── view.ctp
│ │ └── 🗂Layout
│ │ ├── 🗂Email
│ │ │ ├── 🗂html
│ │ │ │ └── default.ctp
│ │ │ └── 🗂text
│ │ │ └── default.ctp
│ │ ├── 🗂rss
│ │ │ └── default.ctp
│ │ ├── ajax.ctp
│ │ ├── default.ctp
│ │ ├── error.ctp
│ │ └── 🗂Pages
│ │ └── home.ctp
│ ├── 🗂View
│ │ ├── 🗂Cell
│ │ ├── 🗂Helper
│ │ ├── AjaxView.php
│ │ └── AppView.php
│ └── Application.php
├── 🗂tests -- テストケース設置場所
│ ├── 🗂Fixture
│ │ └── [対象DB]Fixture.php☆
│ ├── 🗂TestCase
│ │ ├── 🗂Controller
│ │ │ ├── 🗂Component
│ │ │ ├── [対象DB]ControllerTest.php
│ │ │ └── PagesControllerTest.php
│ │ ├── 🗂Model
│ │ │ ├── 🗂Behavior
│ │ │ └── 🗂Table
│ │ │ └── [対象DB]TableTest.php
│ │ ├── 🗂View/Helper
│ │ └── ApplicationTest.php
│ └── bootstrap.php
├── 🗂tmp -- テンポラリ(省略)
├── 🗂vendor -- 外部ライブラリ等設置場所(省略)
├── 🗂webroot -- Web公開ディレクトリ
│ ├── 🗂css
│ │ ├── base.css
│ │ ├── home.css
│ │ └── style.css
│ ├── 🗂font
│ ├── 🗂img
│ └── 🗂js
├── .gitattributes
├── composer.json
├── composer.lock
├── index.php
├── phpunit.xml.dist
└── README.md
CakePHPのMVCモデル
それぞれの使い方のリンク集
- 【CakePHP入門】Modelについて詳しく解説! | 侍エンジニア塾ブログ
- 【CakePHP入門】ビュー(View)の基本〜便利機能を徹底解説! | 侍エンジニア塾ブログ
- 【CakePHP入門】Controllerの主な処理をまとめました! | 侍エンジニア塾ブログ
参考
- 【初心者向け】PHPフレームワークのCakePHPとは?徹底解説 | WEBCAMP NAVI
- CakePHP3 HTMLヘルパーについて | Qiita
- サニタイズ (sanitize)とは | 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
-
PHPで利用する事ができるライブラリ(パッケージ) ↩