More Related Content
PDF
PDF
Twitter クライアント “Termtter” の紹介と収集したソーシャルデータを Fluentd + Hadoop で分析する話 PDF
PDF
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash PDF
PPTX
PPTX
クローラを作る技術と設計 (毎週のハンズオン勉強会資料) PDF
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012 Viewers also liked
PDF
Double Offset High Performance Butterfly Valves DOCX
PDF
Vacantes de trabajo en OCC PDF
PPT
Σειρές συνθετικών κουφωμάτων pvc IDEAL DOCX
Video idea weeknd -Amad Islam PDF
PPT
Google Maps Api活用事例~飲食店案内ネット一六社マップ~ PPTX
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ... PPT
PDF
Quadratic factorisation 'box' method PDF
PPTX
Shareology and Social Media in Academia #SussexTEL PDF
How can L&D support today's smart workers? PPT
Top100 Tools for Learning 2010 PDF
LSG Webinar: Next generation learning practices in the age of knowledge shari... PPTX
PDF
5 Presentation design trends 2017 PDF
GAME ON! Integrating Games and Simulations in the Classroom Similar to CakePHPで開発する時に統一しておきたいコーディング内容(080316)
PDF
20091030cakephphandson 01 ODP
CakePHP Kansai 2008-12-12 PPTX
ODP
PDF
PDF
PDF
KEY
PDF
CodeIgniter東京勉強会 2011.05.14 PDF
CakePHP 1 to 2 Migration tips 100 PDF
WTM53 phpフレームワーク いまさらcodeigniter PDF
PDF
PPT
How to manage Cakephp @CakePHP_Fukuoka_2 PPT
PPTX
PDF
GMO TECHNOLOGY BOOT CAMP2015(PHP編) PDF
20091030cakephphandson 02 PDF
PDF
More from 柴田 篤志
PDF
PDF
PDF
PDF
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」 PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
CakePHPのコンポーネントの使い方(080316) PPT
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
DocumentRoot についてif (!defined('ROOT')) { define('ROOT', ‘path/to/cakephp/'); } if (!defined('APP_DIR')) { define('APP_DIR', 'app'); } DocumentRoot 内に app/webroot/ 以下を移動させます。 移動させた DocumentRoot 内の index.php の先頭に下記を追加します。 参考:「 CakePHP ガイドブック P.299 15-1-3 」 フォルダ名はそれぞれ下記の通りとします。 DocumentRoot => public_html / CakePHP => cakephp - 7.
URL の最後にスラッシュを付けよう [app/app_controller.php]class AppController extends Controller { function beforeFilter() { if (isset($this->params['url']['url'])) { $uri = $this->params['url']['url']; if (substr($uri, -1) != '/') { $this->redirect($uri . '/', 301); exit; } } } } 参考: (D×D) CakePHP で URI の形式を統一する http://dxd8.com/archives/4/ - 8.
- 9.
title タグ・ meta タグを各コントローラで指定しよう [app/controllers/tests_controller.php] class TestsController extends AppController { function index() { // ページタイトル $this->pageTitle = ‘ 勉強会ブログ’ ; // メタタグキーワード $keywords = ‘CakePHP,php,JavaScript’; $this->set(‘keywords’, $keywords); // メタタグ概要 $description = ‘SE 勉強会を一緒にやりませんか??’ ; $this->set('description', $description); } } title タグ・ meta タグを直接ビューに書く場合を除き、 各コントローラ(アクション)で指定できるようにしよう。 - 10.
title タグ・ meta タグを各コントローラで指定しよう(続き) [app/app_controller.php] class AppController extends Controller { function beforeFilter() { // ページタイトル(デフォルト) $this->pageTitle = ‘ 勉強会ブログ’ ; // メタタグキーワード(デフォルト) $keywords = ‘CakePHP,php,JavaScript’; $this->set(‘keywords’, $keywords); // メタタグ概要(デフォルト) $description = ‘SE 勉強会を一緒にやりませんか??’ ; $this->set('description', $description); } } 各コントローラ(アクション)の指定方法は前のページの通り。 全てのページで書くのは面倒なので、デフォルト値を設定しておこう。 - 11.
title タグ・ meta タグを各コントローラで指定しよう(続き 2 ) <title><?php echo $title_for_layout; ?></title> <meta name="keywords" content="<?php echo $keywords; ?>" /> <meta name="description" content="<?php echo $description; ?>" /> ビューの書き方は下記の通り。 - 12.
バリデーション(テキスト) if (empty($user_name)){ $this->invalidate('user_name'); $validate_flg = 1; } elseif (mb_strlen($user_name) > 100) { $this->invalidate(‘user_name_mojisuu'); $validate_flg = 1; } - 13.
バリデーション(メールアドレス) if (empty($mail)){ } elseif (mb_strlen($mail) > 500) { $this->invalidate('mail_mojisuu'); $validate_flg = 1; } elseif (!preg_match('/\\A(?:^([a-z0-9][a-z0-9_\\-\\.\\+]*)@([a-z0-9][a-z0-9\\.\\-]{0,63}\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\z/i', $mail)) { $this->invalidate('mail_pattern'); $validate_flg = 1; } else { $mail_array = explode('@', $mail); if (!checkdnsrr($mail_array[1], 'MX') && !checkdnsrr($mail_array[1], 'A')) { $this->invalidate('mail_pattern'); $validate_flg = 1; } } - 14.
バリデーション( URL )if (empty($url)) { } elseif (mb_strlen($url) > 2000) { $this->invalidate('url_mojisuu'); $validate_flg = 1; } elseif (!preg_match('/^https?:\/\/[-_.!~*\'\(\)a-zA-Z0-9;\/?:\@&=+\$,%#]+$/', $url)) { $this->invalidate('url_pattern'); $validate_flg = 1; } - 15.
- 16.
バリデーション( TEL )if (empty($tel)) { $this->invalidate('tel'); $validate_flg = 1; } elseif (!preg_match('/^[-0-9]{10,13}$/', $tel)) { $this->invalidate('tel_pattern'); $validate_flg = 1; } - 17.
バリデーション if ($validate_flg== 0) { return true; } else { return false; } 下記のように、バリデーションの戻り値は最後に返す。 まとめて返す事で利用者に分かりやすくするため。 (うまくまとめられないので、口頭で補足します) - 18.
- 19.
- 20.
- 21.
- 22.
コーディング(条件式) If 文などの条件式で条件を指定する括弧の前に空白をひとつ入れる。 また、条件指定の括弧を閉じた後にも空白をひとつ入れる。 括弧で囲まれた条件文の中では、演算子の前後にも空白を入れる。 波括弧は if 文の同行に記載する。 if ($value == ‘PHP’) { $message = ‘GOOD’; } else { $message = ‘BAD’; } - 23.
コーディング( class ・function ) class と function の波括弧は 改行して記載する。 class TestsController extends AppController { function index() { } } - 24.
コーディング(コメント) コードの始めにページ概要・ URL・最終更新者名・最終更新日を記載する。 /* * テストページ * * http://www.16g.jp/tests/ * * @modifiedby $LastChangedBy: あつ $ * @lastmodified $Date: 2008-03-16 10:00 $ */ class TestsController extends AppController { } - 25.