LoginSignup
6
4

More than 3 years have passed since last update.

CakePHPの基礎知識整理

Last updated at Posted at 2020-01-24

なんぞやについて

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モデル

それぞれの使い方のリンク集

参考

  1. 【初心者向け】PHPフレームワークのCakePHPとは?徹底解説 | WEBCAMP NAVI
  2. CakePHP3 HTMLヘルパーについて | Qiita
  3. サニタイズ (sanitize)とは | 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

  1. PHPで利用する事ができるライブラリ(パッケージ) 

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4