Submit Search
Upload
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
•
3 likes
•
1,600 views
柴田 篤志
Follow
一六社で行った第2回SE勉強会の資料です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 25
Recommended
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Twitter クライアント “Termtter” の紹介と収集したソーシャルデータを Fluentd + Hadoop で分析する話
Twitter クライアント “Termtter” の紹介と収集したソーシャルデータを Fluentd + Hadoop で分析する話
id774
Currying in perl
Currying in perl
Masahiro Honma
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
Ext.Directについて
Ext.Directについて
Yuki Naotori
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Recommended
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
Twitter クライアント “Termtter” の紹介と収集したソーシャルデータを Fluentd + Hadoop で分析する話
Twitter クライアント “Termtter” の紹介と収集したソーシャルデータを Fluentd + Hadoop で分析する話
id774
Currying in perl
Currying in perl
Masahiro Honma
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
Ext.Directについて
Ext.Directについて
Yuki Naotori
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
Double Offset High Performance Butterfly Valves
Double Offset High Performance Butterfly Valves
Classic Controls, Inc.
Film proposal 1
Film proposal 1
haverstockmedia
Vacantes de trabajo en OCC
Vacantes de trabajo en OCC
jessiicasaldana
Clasificacion tl41 2016
Clasificacion tl41 2016
morelupe
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Σωτηρόπουλος Γιώργος
Video idea weeknd -Amad Islam
Video idea weeknd -Amad Islam
haverstockmedia
Clasificacion r39 2016
Clasificacion r39 2016
morelupe
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
柴田 篤志
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
ITHAKA
PDCS II
PDCS II
cpjcollege
Quadratic factorisation 'box' method
Quadratic factorisation 'box' method
Colleen Young
[패스트캠퍼스] 업무자동화 알파고
[패스트캠퍼스] 업무자동화 알파고
FAST CAMPUS
Shareology and Social Media in Academia #SussexTEL
Shareology and Social Media in Academia #SussexTEL
Sue Beckingham
How can L&D support today's smart workers?
How can L&D support today's smart workers?
Jane Hart
Top100 Tools for Learning 2010
Top100 Tools for Learning 2010
Jane Hart
LSG Webinar: Next generation learning practices in the age of knowledge shari...
LSG Webinar: Next generation learning practices in the age of knowledge shari...
Jane Hart
ESTUDIANTE
ESTUDIANTE
Yuli America Povis Chacon
5 Presentation design trends 2017
5 Presentation design trends 2017
Annova Studio
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom
Brian Housand
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
Hidetaka Okamoto
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
More Related Content
Viewers also liked
Double Offset High Performance Butterfly Valves
Double Offset High Performance Butterfly Valves
Classic Controls, Inc.
Film proposal 1
Film proposal 1
haverstockmedia
Vacantes de trabajo en OCC
Vacantes de trabajo en OCC
jessiicasaldana
Clasificacion tl41 2016
Clasificacion tl41 2016
morelupe
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Σωτηρόπουλος Γιώργος
Video idea weeknd -Amad Islam
Video idea weeknd -Amad Islam
haverstockmedia
Clasificacion r39 2016
Clasificacion r39 2016
morelupe
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
柴田 篤志
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
ITHAKA
PDCS II
PDCS II
cpjcollege
Quadratic factorisation 'box' method
Quadratic factorisation 'box' method
Colleen Young
[패스트캠퍼스] 업무자동화 알파고
[패스트캠퍼스] 업무자동화 알파고
FAST CAMPUS
Shareology and Social Media in Academia #SussexTEL
Shareology and Social Media in Academia #SussexTEL
Sue Beckingham
How can L&D support today's smart workers?
How can L&D support today's smart workers?
Jane Hart
Top100 Tools for Learning 2010
Top100 Tools for Learning 2010
Jane Hart
LSG Webinar: Next generation learning practices in the age of knowledge shari...
LSG Webinar: Next generation learning practices in the age of knowledge shari...
Jane Hart
ESTUDIANTE
ESTUDIANTE
Yuli America Povis Chacon
5 Presentation design trends 2017
5 Presentation design trends 2017
Annova Studio
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom
Brian Housand
Viewers also liked
(19)
Double Offset High Performance Butterfly Valves
Double Offset High Performance Butterfly Valves
Film proposal 1
Film proposal 1
Vacantes de trabajo en OCC
Vacantes de trabajo en OCC
Clasificacion tl41 2016
Clasificacion tl41 2016
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Σειρές συνθετικών κουφωμάτων pvc IDEAL
Video idea weeknd -Amad Islam
Video idea weeknd -Amad Islam
Clasificacion r39 2016
Clasificacion r39 2016
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
ITHAKA The Next Wave 2016: Mitchell Stevens - What in the World Might Happen ...
PDCS II
PDCS II
Quadratic factorisation 'box' method
Quadratic factorisation 'box' method
[패스트캠퍼스] 업무자동화 알파고
[패스트캠퍼스] 업무자동화 알파고
Shareology and Social Media in Academia #SussexTEL
Shareology and Social Media in Academia #SussexTEL
How can L&D support today's smart workers?
How can L&D support today's smart workers?
Top100 Tools for Learning 2010
Top100 Tools for Learning 2010
LSG Webinar: Next generation learning practices in the age of knowledge shari...
LSG Webinar: Next generation learning practices in the age of knowledge shari...
ESTUDIANTE
ESTUDIANTE
5 Presentation design trends 2017
5 Presentation design trends 2017
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom
Similar to CakePHPで開発する時に統一しておきたいコーディング内容(080316)
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
Hidetaka Okamoto
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
Cakephp tokyo5
Cakephp tokyo5
ichikaway
URLで遊ぼう
URLで遊ぼう
Hiraku Nakano
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
CakePHP Kansai 2008-12-12
CakePHP Kansai 2008-12-12
Yasuo Harada
WordBeach @kurudrive
WordBeach @kurudrive
Hidekazu Ishikawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
テンプレートエンジンって何?
テンプレートエンジンって何?
Shoichi Takahashi
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
Kazuki Nakajima
20190809
20190809
iPride Co., Ltd.
20160422 laravel.osaka
20160422 laravel.osaka
シオリ ショウノ
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
Pyramid入門
Pyramid入門
Atsushi Odagiri
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
New Generation Build System "Fly"
New Generation Build System "Fly"
deepblue will
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
Kiwamu Okabe
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
Satoshi Noto
Similar to CakePHPで開発する時に統一しておきたいコーディング内容(080316)
(20)
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Cakephp tokyo5
Cakephp tokyo5
URLで遊ぼう
URLで遊ぼう
PHP, Now and Then 2011
PHP, Now and Then 2011
CakePHP Kansai 2008-12-12
CakePHP Kansai 2008-12-12
WordBeach @kurudrive
WordBeach @kurudrive
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
テンプレートエンジンって何?
テンプレートエンジンって何?
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
20190809
20190809
20160422 laravel.osaka
20160422 laravel.osaka
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
Pyramid入門
Pyramid入門
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
New Generation Build System "Fly"
New Generation Build System "Fly"
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
More from 柴田 篤志
Nagoya.phpについて
Nagoya.phpについて
柴田 篤志
ライフハックでストレスフリーな仕事術
ライフハックでストレスフリーな仕事術
柴田 篤志
ソーシャルメディアを利用したビジネス展開
ソーシャルメディアを利用したビジネス展開
柴田 篤志
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
柴田 篤志
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
柴田 篤志
Cake Phpで簡単問い合わせフォームの作り方
Cake Phpで簡単問い合わせフォームの作り方
柴田 篤志
Cake Php開発事例
Cake Php開発事例
柴田 篤志
Life Hack
Life Hack
柴田 篤志
Cake PhpでやってみようOpen Id入門
Cake PhpでやってみようOpen Id入門
柴田 篤志
一六社ブログ-プラグイン作成入門
一六社ブログ-プラグイン作成入門
柴田 篤志
JavaScript&Firebug入門
JavaScript&Firebug入門
柴田 篤志
Cake Php ページ送り機能
Cake Php ページ送り機能
柴田 篤志
Cake Php パン屋へ行こう
Cake Php パン屋へ行こう
柴田 篤志
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
柴田 篤志
開発ツールの紹介(080316)
開発ツールの紹介(080316)
柴田 篤志
CakePHPのコンポーネントの使い方(080316)
CakePHPのコンポーネントの使い方(080316)
柴田 篤志
第1回SE勉強会(080302)
第1回SE勉強会(080302)
柴田 篤志
More from 柴田 篤志
(17)
Nagoya.phpについて
Nagoya.phpについて
ライフハックでストレスフリーな仕事術
ライフハックでストレスフリーな仕事術
ソーシャルメディアを利用したビジネス展開
ソーシャルメディアを利用したビジネス展開
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
Cake Phpで簡単問い合わせフォームの作り方
Cake Phpで簡単問い合わせフォームの作り方
Cake Php開発事例
Cake Php開発事例
Life Hack
Life Hack
Cake PhpでやってみようOpen Id入門
Cake PhpでやってみようOpen Id入門
一六社ブログ-プラグイン作成入門
一六社ブログ-プラグイン作成入門
JavaScript&Firebug入門
JavaScript&Firebug入門
Cake Php ページ送り機能
Cake Php ページ送り機能
Cake Php パン屋へ行こう
Cake Php パン屋へ行こう
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
開発ツールの紹介(080316)
開発ツールの紹介(080316)
CakePHPのコンポーネントの使い方(080316)
CakePHPのコンポーネントの使い方(080316)
第1回SE勉強会(080302)
第1回SE勉強会(080302)
Recently uploaded
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Recently uploaded
(12)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
1.
第 2 回勉強会
2008/3/16 (日)
2.
CakePHP で開発する時に 統一しておきたいコーディング内容
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.
Smarty について
Smarty は使わない
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?:[-_.!~*apos;a-zA-Z0-9;?:&=+,%#]+$/', $url)) { $this->invalidate('url_pattern'); $validate_flg = 1; }
15.
バリデーション(郵便番号) if (empty($zip))
{ } elseif (!preg_match('/^[0-9]{7}$/', $zip)) { $this->invalidate('zip_pattern'); $validate_flg = 1; }
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.
コーディング( PHP の終了タグ)
PHP のみで書いたソースでは終了タグ( ?> )を書かない。 LF にしていれば問題は無いが、習慣として書かないようにする。
19.
コーディング(字下げ) 字下げをする時に、タブは使わない。 空白の半角
4 文字を使う。
20.
コーディング(文字列) 文字列がリテラルの場合はシングルコーテーションで囲む。 $value
= ‘ 一六社’ ; 変数の展開の場合はダブルコーテーションで囲む。 $message = “{$value} へようこそ” ;
21.
コーディング(文字列の連結) 文字列の連結はピリオドを使う。 また、コードを読みやすくするためにピリオドの前後に半角スペースを入れる。
$value = ‘ かしも’ . ‘ ソフトウェア’ ;
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.
終わり