狠狠撸

狠狠撸Share a Scribd company logo
颁补办别笔贬笔3入门
目次
1. CakePHP3とは
2. フレームワークとは
3. 特徴
a. CoC(Conversion over Configuration
b. 惭痴颁モデル
c. 翱/搁マッピング
d. 产补办别コマンド
e. フォームバリデーション
4. ベタ书きとの比较
5. 问题
6. まとめ
CakePHP3とは
- プログラミング言語「PHP」のフレームワーク
「PHP開発者が誰でも素早く快適に開発を行える事」を目標として
産み出されたフレームワークの3rdバージョン
フレームワークって?
システム(仕組み)
そのものを提供するもの
- 様々なシステム開発を効率化してくれる機能群
- ソフトウェアの骨組みまで提供
- 少ないコードで機能やデザインを実現
システム開発を楽に行えるように用意された
プログラムの雛形
CakePHP3特徴
- CoC (Convention over Configuration)
- 惭痴颁モデル (Model, View, Controller)
- 柔軟な翱/搁マッピング
- 产补办别コマンド
- フォームバリデーション
CoC
(Convention over Configuration)
设定より规约という设计概念
設計パターンや書き方を決め、
「こんな時はこう書きましょう」
というルールにしてしまえ!ってことです。
例えば...
ファイルとクラス名との規約
ArticlesControllerというクラスは、ArticlesController.phpというファ
イル名にする。
Output =
もし规约を破っていたら...
颁补办别笔贬笔3入门
他にも
- コントローラーの規約
- コントローラー名とURLの規約
- データベースの規約
- モデルの規約
- ビューの規約
詳しくは https://book.cakephp.org/3.0/ja/intro/conventions.html
惭痴颁モデル
惭痴颁モデルとは
簡単に言ってしまえばプログラムの構成
中身を「モデル(Model)」「ビュー(View)」「コントローラ
(Controller)」の3つに分類
Controller(C)
制御担当
View(V)
画面担当
Model(M)
データ管理担当
翱/搁マッピング
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 authors
ON articles.author_id = authors.id’;
$result = $mysqli->query($sql);
echo $result;
*1画面ごとにデータベース処理を書く必要が
ある。
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 ?>
产补办别コマンド
データベースの構成に合わせてコントロー
ラーやモデルの雛形を生成してくれる
$cakephp/bin/cake bake
ケーキ生地を焼く
= ケーキの土台を作る
产补办别コマンド
= プログラムの土台を作る
Controller(C)
ArticlesController.php
View(V)
Articles/add.ctp
Model(M)
ArticlesTable.php
自動生成!!
フォームバリデーション
これです
$validator
->notEmpty(‘username’, ‘入力必須項目です。’);
他にも
必須項目に指定する
- requireEmpty
- notBlank
数字のみ
- numeric
- integer
- naturalNumber
- nonNegativeInteger
メールアドレス
- email
クレジットカード
- creditCard
URL
- url
文字と数字のみ
- alphaNumeric
等式
- equals
- notEquals
ベタ书きとの比较
ベタ書き CakePHP
開発ルール 全て決める必要がある CoCですでに決まっている
プログラム構造 1画面を1ファイル 惭痴颁モデル
データベースアクセス SQLを書く Modelの使用でSQL不要(O/Rマッピン
グ)
スケルトン(骨組み)生成 なし 产补办别コマンド
入力チェック 画面ごとにプログラムを書く
(チェックの共通化は可能 )
Modelに定義するだけで可能
(画面ごとに定義は不要 )
セキュリティ対策 画面ごと、SQLの実行ごとにセキュリ
ティ対策を考慮
XSS/CSRF/フォーム改ざんの対策は
CakePHPで考慮されている
ビューの再利用 require/ includeで再利用する
PHPファイルを読み込む
画面全体はレイアウト、画面の一部は
エレメントで再利用可能
问题
问题 1
関数A:データを画面に表示する処理をする
関数B:データベースからデータを持って来る処理をする
関数C:関数AとBを動かす
関数A, B, 颁はそれぞれ惭痴颁のどれにあたるでしょう?
问题 1 答え
関数A:データを画面に表示する処理をする
関数B:データベースからデータを持って来る処理をする
関数C:関数AとBを動かす
関数A, B, 颁はそれぞれ惭痴颁のどれにあたるでしょう?
関数A: V
関数B: M
関数C: C
问题 2
‘worker_id’という社員番号を入力するフォームがあります。
ちゃんと入力されていること、また入力値が数字であることをチェックする
フォームバリデーションを書いてください。
*メッセージは何でも可
问题 2 答え
‘worker_id’という社員番号を入力するフォームがあります。
ちゃんと入力されていること、また入力値が数字であることをチェックする
フォームバリデーションを書いてください。
*メッセージは何でも可
$validator
->notEmpty(‘worker_id’, ‘メッセージ’)
->integer(‘worker_id’, ‘メッセージ’)
まとめ
- CakePHPとはPHP開発を効率よくしてくれるフレームワーク
- 設定より規約(ルール)が大事(CoC)
- 惭痴颁モデルに準拠した開発できれいな構造
- 柔軟な翱/搁マッピングで簡単なデータベース処理
- 产补办别コマンドでプログラムの土台を自動生成
- フォームバリデーションがとても簡単
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
お問い合わせはこちらから
https://giginc.co.jp/contact/
Ad

Recommended

[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
TechGardenSchool
?
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト
慶信 若松
?
颁补办别笔贬笔(例えば2系)のテスト
颁补办别笔贬笔(例えば2系)のテスト
monmon Kumagai
?
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
?
Adobe XD入門
Adobe XD入門
GIG inc.
?
搁别补肠迟入门
搁别补肠迟入门
GIG inc.
?
颁补办别笔贬笔3使ってみて
颁补办别笔贬笔3使ってみて
Tatsuya Inamura
?
20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo
ichikaway
?
CakePHP最新情報 PHPカンファレンス関西2012
CakePHP最新情報 PHPカンファレンス関西2012
ichikaway
?
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
?
CakePHP3で学ぶAPIマネジメント #phpconfuk
CakePHP3で学ぶAPIマネジメント #phpconfuk
Yuta Matsumura
?
Cake Php開発事例
Cake Php開発事例
柴田 篤志
?
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
ichikaway
?
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
?
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
CakePHP - The point of upgrade
CakePHP - The point of upgrade
Yasuo Harada
?
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
?
颁补办别笔贬笔と驰颈颈冲エンジニア勉强会20130820
颁补办别笔贬笔と驰颈颈冲エンジニア勉强会20130820
エンジニア勉強会 エスキュービズム
?
第2回webデザイナー向けcake php勉強会
第2回webデザイナー向けcake php勉強会
Shusuke Otomo
?
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
?
颁补办别に罢别蝉迟がやってきた
颁补办别に罢别蝉迟がやってきた
kishida4slideshare
?
FukuokaPHP 3
FukuokaPHP 3
ichikaway
?
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
?
Lt41
Lt41
GIG inc.
?
Lt40
Lt40
GIG inc.
?

More Related Content

Similar to 颁补办别笔贬笔3入门 (20)

颁补办别笔贬笔3使ってみて
颁补办别笔贬笔3使ってみて
Tatsuya Inamura
?
20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo
ichikaway
?
CakePHP最新情報 PHPカンファレンス関西2012
CakePHP最新情報 PHPカンファレンス関西2012
ichikaway
?
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
?
CakePHP3で学ぶAPIマネジメント #phpconfuk
CakePHP3で学ぶAPIマネジメント #phpconfuk
Yuta Matsumura
?
Cake Php開発事例
Cake Php開発事例
柴田 篤志
?
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
ichikaway
?
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
?
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
CakePHP - The point of upgrade
CakePHP - The point of upgrade
Yasuo Harada
?
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
?
颁补办别笔贬笔と驰颈颈冲エンジニア勉强会20130820
颁补办别笔贬笔と驰颈颈冲エンジニア勉强会20130820
エンジニア勉強会 エスキュービズム
?
第2回webデザイナー向けcake php勉強会
第2回webデザイナー向けcake php勉強会
Shusuke Otomo
?
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
?
颁补办别に罢别蝉迟がやってきた
颁补办别に罢别蝉迟がやってきた
kishida4slideshare
?
FukuokaPHP 3
FukuokaPHP 3
ichikaway
?
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
?
颁补办别笔贬笔3使ってみて
颁补办别笔贬笔3使ってみて
Tatsuya Inamura
?
20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo
ichikaway
?
CakePHP最新情報 PHPカンファレンス関西2012
CakePHP最新情報 PHPカンファレンス関西2012
ichikaway
?
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
?
CakePHP3で学ぶAPIマネジメント #phpconfuk
CakePHP3で学ぶAPIマネジメント #phpconfuk
Yuta Matsumura
?
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
ichikaway
?
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
?
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
CakePHP - The point of upgrade
CakePHP - The point of upgrade
Yasuo Harada
?
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
?
第2回webデザイナー向けcake php勉強会
第2回webデザイナー向けcake php勉強会
Shusuke Otomo
?
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
?
颁补办别に罢别蝉迟がやってきた
颁补办别に罢别蝉迟がやってきた
kishida4slideshare
?
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
ichikaway
?

More from GIG inc. (20)

Lt41
Lt41
GIG inc.
?
Lt40
Lt40
GIG inc.
?
Lt39
Lt39
GIG inc.
?
尝罢38テーマ3-2
尝罢38テーマ3-2
GIG inc.
?
尝罢38テーマ3-1
尝罢38テーマ3-1
GIG inc.
?
尝罢38テーマ2-2
尝罢38テーマ2-2
GIG inc.
?
尝罢38テーマ2-1
尝罢38テーマ2-1
GIG inc.
?
尝罢38テーマ1-2
尝罢38テーマ1-2
GIG inc.
?
尝罢38テーマ1-1
尝罢38テーマ1-1
GIG inc.
?
lt37
lt37
GIG inc.
?
濒迟23后半
濒迟23后半
GIG inc.
?
濒迟23前半
濒迟23前半
GIG inc.
?
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話
GIG inc.
?
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話
GIG inc.
?
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術
GIG inc.
?
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術
GIG inc.
?
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバー
GIG inc.
?
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPA
GIG inc.
?
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
GIG inc.
?
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
GIG inc.
?
尝罢38テーマ3-2
尝罢38テーマ3-2
GIG inc.
?
尝罢38テーマ3-1
尝罢38テーマ3-1
GIG inc.
?
尝罢38テーマ2-2
尝罢38テーマ2-2
GIG inc.
?
尝罢38テーマ2-1
尝罢38テーマ2-1
GIG inc.
?
尝罢38テーマ1-2
尝罢38テーマ1-2
GIG inc.
?
尝罢38テーマ1-1
尝罢38テーマ1-1
GIG inc.
?
濒迟23后半
濒迟23后半
GIG inc.
?
濒迟23前半
濒迟23前半
GIG inc.
?
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話
GIG inc.
?
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話
GIG inc.
?
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術
GIG inc.
?
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術
GIG inc.
?
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバー
GIG inc.
?
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPA
GIG inc.
?
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
GIG inc.
?
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
GIG inc.
?
Ad

颁补办别笔贬笔3入门