CakePHPを業務に導入する Shin x blog 新原 雅司.

Slides:



Advertisements
Similar presentations
セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
Advertisements

2005/12/21 PHP 脆弱性とバージョンアップ 日本 PostgreSQL ユーザ会 四国支部 / 日本 PHP ユーザ会 /Momonga Project 大垣 靖男 / / /
1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
© 2005 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます prototype.js と Perl で Ajax 株式会社はてな 伊藤 直也
Struts VS SAStruts ・ STRUTS と SAStruts を比較します。. Struts のメリット1 STRUTS はディファクトスタンダード。 ↓ プログラマがたくさんいる。 ライブラリ、ツールがたくさんある。 ビジネス案件が豊富。 書籍などの情報元が豊富。
Genius Framework について 吉津 卓保( S2 ファクトリー株式会社). 自己紹介.
Flash SWF ファイル書き換え PHP extension 2008 年 7 月 21 日 よや.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
IIS 4.0で開発をするコツ Webアプリケーション構築.
DBを 256倍 活用する方法 ~S2Dao PHP/.NET/Java.
Flash 書き換え PHP extension “SWF Editor”
下藤 弘丞 SecureWeblogの構築.
JPAを利用した RESTful Webサービスの開発
DotNetNukeについて ㈱BSC 川神 彰(ゴッドリバー).
WordPressの基礎.
Visual Studio 2005による Web アプリケーション入門
名古屋大学大学院人間情報学研究科 物質生命情報学専攻 情報処理論講座 原 崇
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
Day3 Day4 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
上藤紳也 5月間報告.
ケータイキット for Smarty のご紹介
JavaServlet&JSP入門 01K0018 中村太一.
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
第4回 個人の動画配信補足のためのWeb構築
ユーリテクノスのFlashテクノロジーを 利用した様々なサービスのご提案
Flash 書き換え PHP extension “SWF Editor”
SfFormの拡張方法.
Bottle/Pythonによる Webアプリ入門
RAD Studio 14/09/27 TEffectを使った綺麗なForm
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
MSBuild 色々出来るよ 2011/04/02 お だ.
SWAT I18N 概要 付け足した機能(実行時に言語の切り替え-i18nの範囲で) 問題点(細かい技術的問題、根本的問題) 今後
セッション管理 J2EE I 第9回 /
ビューとコントローラ.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
Day3 Day4 Day3 Day4.
HTTPプロトコル J2EE I 第7回 /
Day3 Day4 Day3 Day4.
Day3 Day4 Day3 Day4.
JSPの作成 J2EE II 第3回 2005年4月10日.
初心者のためのセキュリティ/プライバシー講座
PHPの基礎と開発手法 Based on PHP5
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
データベース設計 第9回 Webインタフェースの作成(1)
Javaによる Webアプリケーション入門 第9回
2016年度秋期 成果発表会 2016年11月25日 大阪開発センター 技術一部 畑中 龍樹.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
Oracle APEX Forms変換の概要
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
コンパイラの解析 (2) GCJのデータ構造 - 1.
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
2006年度 東京サテライト校 エンタープライズ・アプリケーション II
ミドルウェア”TSUNAGI”を 用いたWEBアプリケーションの構築
Limeを使ったユニットテストの実装方法
テーブル設計を後から変更 現場で使える小技のご紹介 株式会社ジーワンシステム 生島 勘富(イクシマ サダヨシ)
Javaによる Webアプリケーション入門 第11回
個人の動画配信のためのWebサーバ構築 06A1058 古江 和栄.
JSFによるWebアプリケーション開発 第3回
一歩進んだ Views の使い方 スタジオ・ウミ 山中.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
予約システムのご案内 予約システムのご案内 予約システムのご案内 予約システムのご案内
Annotation EJB 3.0 コース 第3回 2006年8月4日.
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
Jakarta Struts (1) ソフトウェア特論 第10回.
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
0.1 DXライブラリの導入 必要なファイルの準備.
ZendFrameworkで使うためにFilemakerクラスをスクラッチから作ってみる
Presentation transcript:

CakePHPを業務に導入する Shin x blog 新原 雅司

自己紹介 新原雅司(しんばら まさし)といいます。 大阪でWeb系開発をやってます。 新原雅司(しんばら まさし)といいます。 大阪でWeb系開発をやってます。 Shin x blog という blogを書いてます。 http://www.1x1.jp/blog/ CakePHPガイドブックを共著しました。 =>ありがとうございます。

Agenda 導入する [プログラマ編] 導入する [デザイナ編] 導入する [PM編] 導入してみて

導入する [プログラマ編] bake 基本を抑える セキュリティ 既存資産

bake 簡単 でも面倒 実際使っていない 生成されるコードはそのままは使えない 自分で書いたソースをコピーして使用 サンプルソース

基本を抑える MVCやコンポーネント・ヘルパは便利 それだけで全てが構築出来るほど 単純ではない フレームワークのルールの中で PHPの基本処理をどのように行うかを掴む

基本を抑える - GET/POSTパラメータ Controller#$paramsに値を保持 <?php // $_GET $this->params[‘url’] // $_POST $this->params[‘form’] ?>

基本を抑える - Session SessionComponent Controllerでは$componentsで設定なしで使用できる

基本を抑える - Cookie 1.1は$_COOKIE => コンポーネントは無い 1.2はCookieComponet

基本を抑える - ビューでフォーム値取得 ヘルパがそのまま使えない時もある => 携帯とか フォーム値だけ取得してあとはHTMLを書く 1.1ならHtmlHelper#tagValue() 1.2ならHelper#value() <input type=“text” value=“<?php echo h($html->value()); ?>” /> <input type=“text” value=“<?= h($html->value()) ?>” />

基本を抑える - DB SQLを直接実行 Model#query()かDboSource#execute() <?php Class HogeController extends AppController { function foo() { $sql = “insert into hoges select name,status from foos;”; $this->Hoge->query($sql); } ?>

セキュリティ XSS/CSRF/SQL Injection $this->dataはそのまま使わない => 外部から来る値は信用しない find/findAll系では演算子インジェクションに注意

既存資産 ライブラリなどの既存資産は上手く利用 => 全てをCake用に作り直さなくて良い vendors/ or app/vendors に設置 vendor()で読み込む コンポーネントでラップする

まとめ 基本はこれまでの開発と同じ フレームワークに固執し過ぎない => 泥臭い方法で対処することもある その上で楽できるところは上手く使う

導入する [デザイナ編] ビューテンプレート MVC エラーメッセージ

ビューテンプレート – 拡張子 拡張子を「.html」にする Controller#extを変えるだけ <?php class AppController extends Controller { public $ext = ‘.html’; } ?>

ビューテンプレート – レイアウト レイアウトとビューテンプレートに 分かれている ビューだけにする => レイアウトではビューテンプレートを 出力するだけ [app/views/layouts/default.html] <?php echo $content_for_layout;?> <?php echo $cakeDebug?>

MVC URLと出力されるファイルが異なるのが 飲み込めない人がいる 慣れてもらうしかない。。。 /hoge/foo で表示されるのに/hoge/fooというファイルが無い /hoge/fooファイルを設置すると動かなくなった .phpは無くても良いの? 慣れてもらうしかない。。。

エラーメッセージ ビューテンプレートに直接書く プログラマ以外でも文言を変更できる 1.1ならHtmlHelper#tagErrorMsg() 1.2ならFormHelper#error() プログラマ以外でも文言を変更できる

まとめ デザイナの負担を軽くする メリットを説明する ビューにSmartyを使う方法もある

導入する [PM編] 増えるコスト 減るコスト

増えるコスト 学習コスト (場合によっては)移行コスト

減るコスト フレームワーク作成 フレームワークメンテナンス 教育コスト

まとめ 初期学習コストを考えてもメリットはある => 教育・メンテナンス PHP5移行期の今なら特に => PHP4/5対応 Rails風フレームワークなので習得した技術はムダにならない

導入してみて 初期学習コストはかかった ノウハウが共有できる フレームワークのソースは読む必要はある 生産性が見違えるように上がるわけでは ない => オレオレFW

1.1か1.2か 1.1実績があるなら1.1で これからなら1.2で ※現在開発中の案件は1.2で進行中

ご静聴ありがとうございました Happy baking!!