Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CakePHP3入門
目次
1. CakePHP3とは
2. フレームワークとは
3. 特徴
a. CoC(Conversion over Configuration
b. MVCモデル
c. O/Rマッピング
d. bakeコマンド
e. フォームバリデーション
...
CakePHP3とは
- プログラミング言語「PHP」のフレームワーク
「PHP開発者が誰でも素早く快適に開発を行える事」を目標として
産み出されたフレームワークの3rdバージョン
フレームワークって?
システム(仕組み)
そのものを提供するもの
- 様々なシステム開発を効率化してくれる機能群
- ソフトウェアの骨組みまで提供
- 少ないコードで機能やデザインを実現
システム開発を楽に行えるように用意された
プログラムの雛形
CakePHP3特徴
- CoC (Convention over Configuration)
- MVCモデル (Model, View, Controller)
- 柔軟なO/Rマッピング
- bakeコマンド
- フォームバリデーション
CoC
(Convention over Configuration)
設定より規約という設計概念
設計パターンや書き方を決め、
「こんな時はこう書きましょう」
というルールにしてしまえ!ってことです。
例えば...
ファイルとクラス名との規約
ArticlesControllerというクラスは、ArticlesController.phpというファ
イル名にする。
Output =
もし規約を破っていたら...
他にも
- コントローラーの規約
- コントローラー名とURLの規約
- データベースの規約
- モデルの規約
- ビューの規約
詳しくは https://book.cakephp.org/3.0/ja/intro/conventions.ht...
MVCモデル
MVCモデルとは
簡単に言ってしまえばプログラムの構成
中身を「モデル(Model)」「ビュー(View)」「コントローラ
(Controller)」の3つに分類
Controller(C)
制御担当
View(V)
画面担当
Model(M)
データ管理担当
O/Rマッピング
SQL文を書くことなく非常に短い記述でレ
コードの抽出や書き換えが可能
Articles
id
title
content
author_id
Authors
id
name
1
*
SQL(ベタ書き)
$mysqli = new mysqli('localhost', 'root', ‘password’, ‘database’);
$sql = ‘SELECT * FROM articles
INNER JOIN aut...
CakePHP
Configファイル
'host' => 'localhost',
'username' => 'root',
'password' => 'password',
'database' => 'database',
Model
...
bakeコマンド
データベースの構成に合わせてコントロー
ラーやモデルの雛形を生成してくれる
$cakephp/bin/cake bake
ケーキ生地を焼く
= ケーキの土台を作る
bakeコマンド
= プログラムの土台を作る
Controller(C)
ArticlesController.php
View(V)
Articles/add.ctp
Model(M)
ArticlesTable.php
自動生成!!
フォームバリデーション
これです
$validator
->notEmpty(‘username’, ‘入力必須項目です。’);
他にも
必須項目に指定する
- requireEmpty
- notBlank
数字のみ
- numeric
- integer
- naturalNumber
- nonNegativeInteger
メールアドレス
- email
クレジッ...
ベタ書きとの比較
ベタ書き CakePHP
開発ルール 全て決める必要がある CoCですでに決まっている
プログラム構造 1画面を1ファイル MVCモデル
データベースアクセス SQLを書く Modelの使用でSQL不要(O/Rマッピン
グ)
スケルトン(骨組み...
問題
問題 1
関数A:データを画面に表示する処理をする
関数B:データベースからデータを持って来る処理をする
関数C:関数AとBを動かす
関数A, B, CはそれぞれMVCのどれにあたるでしょう?
問題 1 答え
関数A:データを画面に表示する処理をする
関数B:データベースからデータを持って来る処理をする
関数C:関数AとBを動かす
関数A, B, CはそれぞれMVCのどれにあたるでしょう?
関数A: V
関数B: M
関数C: C
問題 2
‘worker_id’という社員番号を入力するフォームがあります。
ちゃんと入力されていること、また入力値が数字であることをチェックする
フォームバリデーションを書いてください。
*メッセージは何でも可
問題 2 答え
‘worker_id’という社員番号を入力するフォームがあります。
ちゃんと入力されていること、また入力値が数字であることをチェックする
フォームバリデーションを書いてください。
*メッセージは何でも可
$validator
-...
まとめ
- CakePHPとはPHP開発を効率よくしてくれるフレームワーク
- 設定より規約(ルール)が大事(CoC)
- MVCモデルに準拠した開発できれいな構造
- 柔軟なO/Rマッピングで簡単なデータベース処理
- bakeコマンドでプログラムの...
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
お問い合わせはこちらから...
CakePHP3入門
Upcoming SlideShare
Loading in …5
×

CakePHP3入門

952 views

Published on

CakePHP3入門資料を公開
※ 株式会社GIGでは毎月社内勉強会を実施しています

GIG inc.
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.

テクノロジーとクリエイティブでセカイをより良くする。小さなチームからスタートした多くの先人達が、世界をより豊かなモノに変革してきました。通信、UX、デバイス、技術の変化と共に世界はまだまだ加速度的に変わります。

Good is good. いいものはいい。GIGは、関わったユーザーやクライアントが前に進める“きっかけ”をつくりつづけます。

■ お問い合せ
https://giginc.co.jp/contact/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

CakePHP3入門

  1. 1. CakePHP3入門
  2. 2. 目次 1. CakePHP3とは 2. フレームワークとは 3. 特徴 a. CoC(Conversion over Configuration b. MVCモデル c. O/Rマッピング d. bakeコマンド e. フォームバリデーション 4. ベタ書きとの比較 5. 問題 6. まとめ
  3. 3. CakePHP3とは - プログラミング言語「PHP」のフレームワーク 「PHP開発者が誰でも素早く快適に開発を行える事」を目標として 産み出されたフレームワークの3rdバージョン
  4. 4. フレームワークって?
  5. 5. システム(仕組み) そのものを提供するもの
  6. 6. - 様々なシステム開発を効率化してくれる機能群 - ソフトウェアの骨組みまで提供 - 少ないコードで機能やデザインを実現 システム開発を楽に行えるように用意された プログラムの雛形
  7. 7. CakePHP3特徴 - CoC (Convention over Configuration) - MVCモデル (Model, View, Controller) - 柔軟なO/Rマッピング - bakeコマンド - フォームバリデーション
  8. 8. CoC (Convention over Configuration)
  9. 9. 設定より規約という設計概念
  10. 10. 設計パターンや書き方を決め、 「こんな時はこう書きましょう」 というルールにしてしまえ!ってことです。
  11. 11. 例えば... ファイルとクラス名との規約 ArticlesControllerというクラスは、ArticlesController.phpというファ イル名にする。
  12. 12. Output =
  13. 13. もし規約を破っていたら...
  14. 14. 他にも - コントローラーの規約 - コントローラー名とURLの規約 - データベースの規約 - モデルの規約 - ビューの規約 詳しくは https://book.cakephp.org/3.0/ja/intro/conventions.html
  15. 15. MVCモデル
  16. 16. MVCモデルとは 簡単に言ってしまえばプログラムの構成 中身を「モデル(Model)」「ビュー(View)」「コントローラ (Controller)」の3つに分類
  17. 17. Controller(C) 制御担当 View(V) 画面担当 Model(M) データ管理担当
  18. 18. O/Rマッピング
  19. 19. SQL文を書くことなく非常に短い記述でレ コードの抽出や書き換えが可能
  20. 20. Articles id title content author_id Authors id name 1 *
  21. 21. SQL(ベタ書き) $mysqli = new mysqli('localhost', 'root', ‘password’, ‘database’); $sql = ‘SELECT * FROM articles INNER JOIN authors ON articles.author_id = authors.id’; $result = $mysqli->query($sql); echo $result; *1画面ごとにデータベース処理を書く必要が ある。
  22. 22. CakePHP Configファイル 'host' => 'localhost', 'username' => 'root', 'password' => 'password', 'database' => 'database', Model $this->belongsTo('Authors', [ 'foreignKey' => 'author_id', 'joinType' => 'INNER' ]); Controller $articles = TableRegistry::get('Articles'); $query = $articles->find()->all(); $this->set(‘query’, $query); View <?= $query ?>
  23. 23. bakeコマンド
  24. 24. データベースの構成に合わせてコントロー ラーやモデルの雛形を生成してくれる $cakephp/bin/cake bake
  25. 25. ケーキ生地を焼く = ケーキの土台を作る bakeコマンド = プログラムの土台を作る
  26. 26. Controller(C) ArticlesController.php View(V) Articles/add.ctp Model(M) ArticlesTable.php 自動生成!!
  27. 27. フォームバリデーション
  28. 28. これです
  29. 29. $validator ->notEmpty(‘username’, ‘入力必須項目です。’);
  30. 30. 他にも 必須項目に指定する - requireEmpty - notBlank 数字のみ - numeric - integer - naturalNumber - nonNegativeInteger メールアドレス - email クレジットカード - creditCard URL - url 文字と数字のみ - alphaNumeric 等式 - equals - notEquals
  31. 31. ベタ書きとの比較
  32. 32. ベタ書き CakePHP 開発ルール 全て決める必要がある CoCですでに決まっている プログラム構造 1画面を1ファイル MVCモデル データベースアクセス SQLを書く Modelの使用でSQL不要(O/Rマッピン グ) スケルトン(骨組み)生成 なし bakeコマンド 入力チェック 画面ごとにプログラムを書く (チェックの共通化は可能 ) Modelに定義するだけで可能 (画面ごとに定義は不要 ) セキュリティ対策 画面ごと、SQLの実行ごとにセキュリ ティ対策を考慮 XSS/CSRF/フォーム改ざんの対策は CakePHPで考慮されている ビューの再利用 require/ includeで再利用する PHPファイルを読み込む 画面全体はレイアウト、画面の一部は エレメントで再利用可能
  33. 33. 問題
  34. 34. 問題 1 関数A:データを画面に表示する処理をする 関数B:データベースからデータを持って来る処理をする 関数C:関数AとBを動かす 関数A, B, CはそれぞれMVCのどれにあたるでしょう?
  35. 35. 問題 1 答え 関数A:データを画面に表示する処理をする 関数B:データベースからデータを持って来る処理をする 関数C:関数AとBを動かす 関数A, B, CはそれぞれMVCのどれにあたるでしょう? 関数A: V 関数B: M 関数C: C
  36. 36. 問題 2 ‘worker_id’という社員番号を入力するフォームがあります。 ちゃんと入力されていること、また入力値が数字であることをチェックする フォームバリデーションを書いてください。 *メッセージは何でも可
  37. 37. 問題 2 答え ‘worker_id’という社員番号を入力するフォームがあります。 ちゃんと入力されていること、また入力値が数字であることをチェックする フォームバリデーションを書いてください。 *メッセージは何でも可 $validator ->notEmpty(‘worker_id’, ‘メッセージ’) ->integer(‘worker_id’, ‘メッセージ’)
  38. 38. まとめ
  39. 39. - CakePHPとはPHP開発を効率よくしてくれるフレームワーク - 設定より規約(ルール)が大事(CoC) - MVCモデルに準拠した開発できれいな構造 - 柔軟なO/Rマッピングで簡単なデータベース処理 - bakeコマンドでプログラムの土台を自動生成 - フォームバリデーションがとても簡単
  40. 40. Good is good. We provide opportunities to the SEKAI by fusing technology and ideas. テクノロジーとクリエイティブでセカイをより良くする お問い合わせはこちらから https://giginc.co.jp/contact/

×