目 次 1 はじめに... 3 2 導 入... 4 3 設 定... 5 4 テストアプリケーションを 作 ろう... 8 5 プログラムの 作 成... 10 5.2 コントローラー...11 5.3 ビュー... 12 5.4 モデル... 13 6 エラーを 出 してみよう... 15 6.

Similar documents
Microsoft Word - mediawiki.doc

Microsoft Word - サンプル _データベースアクセス_.doc

Microsoft Word - 311Tools_END


スライド 1

データベースS 演習資料

あいち電子調達共同システム

XOOPS Cube インストールマニュアル

エ CarotDAV が 起 動 すると 次 のようなウィンドウが 表 示 されます メニューバーにある File から New Connection の WebDAV を 選 択 します オ 次 のような 設 定 画 面 が 表 示 されたら General タブでネットワークアドレスなどを 設

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

Microsoft PowerPoint -

PDF閲覧制限システムLight版体験版マニュアル

Microsoft PowerPoint - KeySQL50_10g_vlo3.ppt

スライド 0

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

MATRIX TRADER(インストール版) 取扱説明書

同 期 を 開 始 する( 初 期 設 定 ) 2 1 Remote Link PC Sync を 起 動 する 2 1 接 続 機 器 の [PIN コード ] [ ユーザー 名 ] [ パスワード ] を 入 力 する [PIN コード ] などの 情 報 は 接 続 機 器 の 設 定 画 面

贈与税 faq

ソフトウェア説明書

戦略担当者のための

WEBメールシステム 操作手順書

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,

Microsoft Word - 03accessデータベース演習レジメ.doc

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

スライド 1

CodeIgniter Con 2011, Tokyo Japan, February

<4D F736F F D20819B93FC97CD CC91808DEC95FB FC92F994C5816A>

もくじ 0.はじめに 1 1. 用 紙 をスキャナで 用 紙 を 読 み 込 む 1 2. 書 式 定 義 マークした 部 分 を 個 々のデータとして 取 り 込 む 場 合 ( 複 数 回 答 対 応 ) マークした 部 分 をグループ 化 して 取 り 込 む 場 合

EXCELレッスン 2

(3) 履 歴 種 別 設 定 で 表 示 する 履 歴 の 種 別 を 選 択 できます チェックを 入 れた 種 別 の 履 歴 が (1) に 表 示 されます (4) 表 示 日 設 定 で 履 歴 を 表 示 する 日 付 を 指 定 します 画 面 を 開 いたときは 現 在 の 日 付

スライド 1

取扱説明書

ez_meishi.ppt

PowerPoint Presentation

2 / 11 ページ 第 5 講 ビジネスメールの 作 法 Active! Mail を 起 動 し ログインしておきましょう 5-1 ビジネスメールのルールとマナー ビジネスメールのルールとマナーを 確 認 しましょう 宛 先 やCC BCCを 使 い 分 ける 本 文 の 内 容 が 一 目 で

目 次 電 子 申 請 を 使 用 した 申 請 の 流 れ 1ページ 申 請 書 ( 概 算 保 険 料 申 告 書 )の 作 成 2ページ 作 成 した 申 請 書 の 送 信 31ページ 状 況 照 会 電 子 納 付 を 行 う 62ページ 返 送 書 類 の 取 得 75ページ お 問 い

目 次 1. 化 学 研 究 所 研 究 者 データベースについて 研 究 者 情 報 データベース 登 録 システムログイン 画 面 メニュー 画 面 パスワードの 変 更 公 開 時 の 表 示 / 非 表 示 の 設 定.

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

工事記録写真チェックシステム 操作説明書

データコピーとは データコピーは 古 い NAS のデータを 新 しい HDL-Z シリーズに 簡 単 にコピーできます 環 境 例 本 製 品 は 以 下 の 用 途 の 際 に 最 適 です 古 い HDL-Z シリーズから 新 しい HDL-Z シリーズへのコピー 古 い HDL-Z シリーズ

学 習 目 標 SQLインジェクションについて 理 解 する SQLインジェクションの 実 験 をする SQLインジェクション 対 策 について 理 解 する インターネットに 公 開 する 際 の 対 策 について 理 解 する

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

目 次 1. 概 要 2.サーバーへの 設 置 3. 設 定 4.ユーザーアクセス 記 録 の 収 集 5. 制 限 解 除 キー 6. 利 用 規 定 7. 更 新 履 歴

医療費控除の入力編

プロキシサーバー 概 要 プロキシサーバーは 頻 繁 にアクセスされる Web ページの 内 容 をキャッシュ することで ネットワークトラフィックを 削 減 し エンドユーザーに 対 するレスポ ンスの 高 速 化 を 行 います Internet Explorer などのブラウザでもデータをキャ

DN6(R04).vin

<82C582F182B382A2322E3594C5837D836A B2E786C73>

android 版 ユーザ 用 安 否 情 報 送 信 アプリで 送 信 された 安 危 情 報 の 使 い 方 ( 組 織 の 管 理 者 用 マニュアル:Windows) 1. 仮 想 サーバの 起 動 例 :XAMPP XAMPP を 起 動 し Apache のスタートボタンを 押 す この

Microsoft Word - Office365マニュアル(メール)2015_3.docx

Microsoft PowerPoint - c3_op-manual.pdf

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

ユーザーマニュアル

Microsoft Word - MyWebPortalOffice_BackupRestore2012.doc

施 工 P お 気 に 入 り データを 活 用 するための 準 備 施 工 パッケージデータをお 気 に 入 りに 登 録 し 単 価 を 閲 覧 するための 方 法 を 説 明 します 1. 施 工 パッケージデータをダウンロードする 施 工 パッケージデータのダウンロードは 下 記 から 行

横型:「an」PowerPoint(背景・白)

AFFILIATE ASP SYSTEM. インストール 手 順 -. 圧 縮 ファイルの 解 凍 -2. 設 定 ファイルの 編 集 -3.ファイルのアップロード -4.データベースの 初 期 化 -5.w3cディレクトリのアップロード インストール 後 の 設 定 手

スライド 1

€

2 研 究 資 源 共 通 化 統 合 検 索 システムソフトウェア 利 用 者 用 マニュアル(ゲートウェイシステム) 目 次 1. はじめに 主 な 利 用 の 流 れ 検 索 検 索 画 面 検 索 画 面 の 設 定...

(3) 下 記 画 面 が 表 示 されます 参 照 ボタンを 押 下 すると 図 5.1-4フォルダ 指 定 画 面 が 表 示 されるので 保 存 先 を 指 定 し OKボタン を 押 下 します 展 開 ボタンを 押 下 します 図 ファイルの 展 開 先 ( 保 存 場 所 )

スライド 1

Microsoft Word - PubMed検索マニュアル10_改訂 _.doc

もくじ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Enterprise Architect日本語版 モデリング操作ガイド (データベースモデリング編)

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

SchITコモンズ【活用編】

Fckeditor の 基 本 的 な 使 い 方 Point!! fckeditor を 上 手 く 使 うコツ 始 めにページ 内 に 一 通 り 文 章 ( 画 像 や 表 を 含 む)を 書 いてから 文 字 装 飾 をして 下 さい 編 集 したいテキストや 画 像 を 選 択 し アイコ

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

電子納品チェックシステム利用マニュアル

1-1 一覧画面からの印刷

更 新 作 業 は 次 のステップで 行 ってください また 更 新 操 作 はログオン 後 に 表 示 される 電 子 証 明 書 更 新 のお 知 らせ 画 面 から 行 います ステップ 1 ステップ 2 ステップ 3 事 前 準 備 電 子 証 明 書 の 更 新 操 作 電 子 証 明 書

目 次 1.ログイン 方 法 P2 2.ログアウト 方 法 P3 3. 基 本 設 定 変 更 サイトネーム スローガンの 設 定 P10~11 カラーバリエーションの 選 択 P12 メニュースタイル 色 の 設 定 P12 4.トップページの 画 像 編 集 画 像 の 変 更 P13~14 T

PC 移 行 は 以 下 の 流 れで 行 います 次 ページ 以 降 に 各 手 順 を 記 載 しますのでご 確 認 ください ( をクリックすると 該 当 の 説 明 にジャンプします ) 移 行 元 のPCでの 作 業 Step1 移 行 するデータをバックアップする (3ページ) [データ

研究者情報データベース

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

PowerPoint プレゼンテーション

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

intra-mart Accel Platform — ViewCreator ユーザ操作ガイド   第6版  

Sol-007 内部統制一元管理 _ppt [互換モード]

目 次 目 次 1 ログイン ログアウト ログインする...1 ログイン 画 面 が 表 示 されないときは?... 1 初 めてログインするときのパスワードは?... 2 初 期 パスワードを 忘 れてしまったときは?... 2 変 更 したパスワードを 忘 れてしまったときは?.

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

目 次 1. ログイン ユーザー 登 録 TOP 職 員...8 (1) 職 員 の 名 刺 表 示...8 (2) 職 員 の 名 刺 一 括 ダウンロード...8 (3) 職 員 の 名 刺 帳 から 検 索 検 索...9 (1) 氏 名

目 次 機 能 運 用 上 の 注 意 処 理 手 順 画 面 説 明 ログイン 直 送 先 選 択

Android 端 末 でのインストールと 簡 単 な 使 い 方 平 成 23 年 12 月 時 点 でのアンドロイドマーケットを 参 照 しています アンドロイドマーケットのアップデートなどでデザイン 等 変 更 になることがありますのでご 注 意 ください

Windows XPファイル送信方法 SMB編

_禑暥ã†�ã…“ã……ã…‹ç«¯æœ«ã‡»ã……ã…‹ã‡¢ã……ã…Šæ›‰é€ƒæł¸ã•’10ã•‚V1.3.xls

消 費 ~ 軽 減 率 消 費 の 軽 減 率 制 度 が 消 費 率 10% 時 に 導 入 することとされています 平 成 26 年 4 月 1 日 平 成 27 年 10 月 1 日 ( 予 定 ) 消 費 率 5% 消 費 率 8% 消 費 率 10% 軽 減 率 の 導 入 平 成 26

1. 概 要 ここでは CGI のインストールを 行 います CGI をインストールして 実 際 に 使 用 できるようになるまでは 以 下 のような 流 れになります フローチャート CGI の 登 録 CGI の 提 供 許 可 管 理 者 が 行 う CGI のインストール 初 期 設 定 ユ

Microsoft Word - Active.doc

2

Transcription:

使 ってみよう kohana v3 kohana は MVC を 使 用 している PHP5のフレームワークです セキュア 軽 量 使 い 安 さを 目 的 としています 一 般 的 なデサインパターン 概 念 を 再 利 用 していますが kohana が 独 自 のものがあります コミュニティによる 開 発 厳 密 なオブジェクト 指 向 PHP 自 動 クラスローディング インターフェイス 抽 象 化 シングルトン 超 軽 量 kohana は 大 型 のモノシリックライブラリを 避 けるため PECL 拡 張 PEAR ライブラリとは 依 存 関 係 がありません 1/18

目 次 1 はじめに... 3 2 導 入... 4 3 設 定... 5 4 テストアプリケーションを 作 ろう... 8 5 プログラムの 作 成... 10 5.2 コントローラー...11 5.3 ビュー... 12 5.4 モデル... 13 6 エラーを 出 してみよう... 15 6.2 ; を 忘 れた... 16 6.4 モデルのクラス 名 を 間 違 えた... 16 6.5 定 義 されていない 関 数 を 使 用 した... 16 6.6 データベースの 結 果 セットから 間 違 った 項 目 名 で 情 報 を 取 得 した... 16 7 モジュール... エラー! ブックマークが 定 義 されていません 2/18

1 はじめに PHP のフレームワークは 多 数 ありますが 私 自 身 これらを 利 用 したプロジェクトを 行 った 経 験 がありません 実 際 には フレームワークを 適 用 するために 幾 度 となく 各 フレームワークの 機 能 や 使 い 方 にトライしてみましたが いまいち 気 に 入 ったフレームワークに 遭 遇 しませんでした 本 心 は 是 非 ともレームワークを 使 いたかったのですが! 皆 さんはできるだけフレームワークを 利 用 すべきと 思 います 現 在 主 流 のフレームワークは Symfony CakePHP Zend Framework ethna です 利 点 と 欠 点 がありますが 利 点 は 欠 点 を 補 って 余 りあるものです ここでフレームワークのおさらいをして 見 ましょう 利 点 MVC アーキテクチャによる 機 能 分 離 モデル データベース ビュー 表 示 コントローラー 制 御 生 産 性 向 上 コード 量 の 劇 的 減 少 オブジェクトを 利 用 することで 書 くコードの 量 が 劇 的 に 少 なくなる 同 じようなコード(DB 接 続 データ 読 み 込 み HTML 表 示 など)を 重 複 して 書 かなく てもよい 均 質 な 開 発 保 守 性 の 向 上 欠 点 フレームワークの 理 解 コスト 機 能 不 足 対 処 そこで kohana はどうなの? とにかく 超 軽 量 インストール 簡 単 使 うのも 簡 単 に 惹 かれました 3/18

2 導 入 私 の 環 境 は OS windowsxp SP3 XAMPP1.7.1 kohana の 取 得 は 下 記 の URL からできます http://v3.kohanaphp.com/ ダウンロードタブで 安 定 版 を 選 択 します kohana_v3..x.x,zip がダウンロードされます ZIP を 解 凍 します 出 来 上 がったディレクトリ kohana を xampp の htdocs に 移 動 します 確 認 作 業 アドレスは http://localhost/kohana/index.php これが 表 示 されれば OK です 4/18

3 設 定 kohana が 動 いたので 設 定 をしましょう kanaha/install.php を 削 除 します 再 度 アクセス http://localhost/kohana/index.php hello world 表 示 されました ここで kohana のファイル 構 造 を 見 て 見 ましょう ディレクトリ 構 成 が 変 わりました root +- application +- cache +- classes +- controllers +- config +- logs +- bootstrap +- modules +- auth +- codebench +- database +- images +- orm +- pageination +- userguide +-... +- system +- classes +- config +- i18n +- messages +- utf8 +- views +- index.php +- example.htaccess 5/18

名 前 の 付 け 方 ルール クラスは application/classes の 中 に 入 れる アンダースコアはスラッシュに 変 換 される ファイル 名 は 小 文 字 クラス 記 述 クラスの 種 類 をプレフィックスでつける controller_xxxxx Model_XXXXX Public 関 数 は action_をプレフィックスでつける コントローラ 格 納 場 所 が 変 更 されました application/classes/controller フォルダーにアプリケーションを 作 っていきます モデル 格 納 場 所 application/classes/model ビュー 格 納 場 所 application/views 設 定 場 所 も 変 更 されますた それではまず konoha//application/bootstrap.php を 修 正 しましょう Kohana::modules(array( コメントを 外 し database =MODPATH.database, データベースを 有 効 にします 次 にデータベースの 設 定 modules database config database.php type にデータベース 種 類 mysql user に 使 用 者 root database にデータベース 名 testdb 注 意 :dietdb はまだ 作 っていません xampp の phpmyadmin で 作 成 します 6/18

.htaccess の 作 成 example.htaccessa をそのまま 使 ってください windowsではリネイムができません v.2.3.4 のものを 使 いました URI のリライトとは http://localhost/コントローラ 名 /メゾット 名 / 引 数 / 引 数 のように 記 述 できます 7/18

4 テストアプリケーションを 作 ろう ダイエットの 記 録 と 登 録 表 示 するアプリを 作 ります 起 動 すると 過 去 の 記 録 を 表 示 します 本 日 の 記 録 を 入 力 して 更 新 ボタンを 押 すと 登 録 し ページを 更 新 します データベースは dietdb,テーブルは diet とします http://127.0.0.1 で xammp を 起 動 します phpmyadmin を 起 動 し,dietdb を 作 ります 8/18

テーブル diet を 作 ります 項 目 数 は3 個 です 項 目 数 を 作 ります wait,percent,udate 作 成 結 果 初 期 データを 入 れましょう 挿 入 タブ 押 します 挿 入 結 果 9/18

5 プログラムの 作 成 5.1 kohana を 使 わないで PHP でデータを 取 得 する <?PHP //(1)パラーメータの 取 得 $parm=$_post['parm']; //(2)データベース 設 定 if (!($cn = mysql_connect("localhost", "root", ""))) { print "db error"; die; $db="dietdb"; // MySQL DB 選 択 if (!(mysql_select_db($db))) { print "DB select error $db"; die; $sql="set names UTF8"; mysql_query($sql); //(3)データの 取 得 $sql="select wait,percent,udate from diet limit 1"; if (!($result = mysql_query($sql))) { print "err:$sql";die; $row = mysql_fetch_row($result); $wait=$row[0]; // $percent=$row[1]; // $udate=$row[2]; // //(4) 出 力 print "<html><body>"; print "<tabel><tr>"; print "<td>$wait</td><td> percent</td><td>$udate</td>"; print "</tr></table>" print "</body></html>"; //テンプレートエンジン(Smarty など)を 使 うときはここで 指 定 このように 何 もかも コーディングしなければなりません これが kohana を 使 うとどのようになるのでしょうか? 10/18

5.2 コントローラー 次 は MVC のコントローラを 作 ります これが WEB からアクセスする 基 点 になります konoha/application/classes/controller/diet diet.php を 作 成 します まず helloworld を 表 示 しましょう ここで 注 意 しなければならないのは クラスの 名 前 は ontroller プレフィックスの 次 に PHP の 名 前 と 同 じ かつ クラスの 先 頭 文 字 を 大 文 字 にしなければなりません <?php defined('syspath') OR die('no direct access allowed.'); class Controller_Diet extends Controller { public function action_index() { $this->request->response = 'hello, world!';?> さあ 実 行 してみましょう http://127.0.0.1/konoha/diet Hello World が 表 示 されました 実 行 されるのはコントローラーの 関 数 index です http://127.0.0.1/konoha/diet/index でも 同 じです 説 明 をすると http://localhost/konoha/コントローラ 名 /メゾット 名 / 引 数 / 引 数 11/18

5.3 ビュー 出 力 する HTML を 用 意 します <?php defined('syspath') OR die('no direct access allowed.');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <?php echo $content?> </body> </html><body> <html> <body> <table><tr> <?PHP foreach ($data as $d) { print "<tr><td>$d->wait</td> <td>$d->percent </td><td>$d->udate</td></tr>";?> </tr></table> </body> </html> ビューのファイルを 保 存 konoha/application/view views/diet diettemplate.php を 作 成 します konoha/application/view views/diet diet.php を 作 成 します HTML のなかに PHP を 書 くのは テンプレートを 使 ってきた 方 には 違 和 感 を 感 じる 方 がいる と 思 います これも 軽 量 化 のためです 我 慢 しましょう 記 述 された 変 数 は コントローラから 渡 されます 12/18

5.4 モデル データベースをアクセスする 部 分 を 作 りましょう konohaapplication/clsses/ clsses/mo model/ del/diet diet.php を 作 成 します クラス 名 の 書 き 方 が 変 更 になりました query の 引 数 も 変 更 になりました type sql の 種 類 を 入 れなければなりません select:,insert. Query 同 じ Object true:stdclass 関 数 GetData で 情 報 を 取 得 します <?php defined('syspath') or die('no direct script access.'); class Model_diet extends Model { protected $db; public function construct() { parent:: construct(); $this->db = Database::instance(); public function getdata() { $sql="select wait,percent,udate from diet order by udate DESC"; $result=$this->db->query(database::select,$sql,true); return $result;?> さあ 準 備 ができました コントローラーを 修 正 して モデル ビューを 使 えるようにしましょ う 13/18

5.5 コントローラの 修 正 konoha/application/classes/controller/diet diet.php を 修 正 します <?php defined('syspath') or die('no direct script access.'); class Controller_diet extends Controller_Template { public $template = 'diettemplate';?> public function action_index() { $this->template->content = new View('diet'); $dat = new model_diet; $result=$dat->getdata(); $this->template->content->data=$result; //ビュー //モデル //データ 取 得 アクセスしてみましょう http://127.0.0.1/konoha/diet どうですか? データは 表 示 されましたか? kohana を 使 うと ファイルが3 個 に 分 割 され それぞれの 役 割 分 担 ができています データベースの 出 力 は stdclass になっている テーブルの 項 目 名 で 参 照 できるは ミスが 少 なくなって 便 利 です データベース 接 続 などは 書 かなくてもいいです 分 割 されているので 単 体 検 査 が 楽 になります 14/18

6 エラーを 出 してみよう プログラムを 作 成 する 段 階 で 必 ず 行 うことがシンタックスのデバッグです たとえば 変 数 名 を 間 違 った SQL 文 を 間 違 った ; を 忘 れた 関 数 名 を 間 違 った PHP の 書 き 方 間 違 い まあ 数 え 上 げればきりがありません このようなときに kohana はどのようなエラーを 返 してくれるのでしょうか 結 構 いい 情 報 を 出 してくれるので 開 発 の 生 産 性 に 寄 与 します 出 力 例 controller/diet.php で 定 義 されていない 変 数 $results を 使 ったときです 実 際 はミススペルで $result でした v2.3.4 より 見 やすくなりました 15/18

6.1 定 義 されていない 変 数 を 使 った 変 数 のミススペル 6.2 ; を 忘 れた 通 常 の PHP エラーが 出 ます 6.3 定 義 されてないビューを 指 定 した 6.4 モデルのクラス 名 を 間 違 えた クラス 名 がないと 表 示 される model/diet.php 内 に Class Dietm_model()がない 6.5 定 義 されていない 関 数 を 使 用 した model/diet.php に Getdata1 関 数 がない 6.6 データベースの 結 果 セットから 間 違 った 項 目 名 で 情 報 を 取 得 した 間 違 った 項 目 名 が 表 示 されます 6,7 データベースからデータが 取 得 できなかったの 結 果 セットからデータを 取 り 出 そうとし たこのような 例 が 一 番 面 倒 です 具 体 的 な 行 や 変 数 名 などが 表 示 されません 16/18

テーブル スキーマ CREATE TABLE IF NOT EXISTS `roles` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `description` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `roles` (`id`, `name`, `description`) VALUES(1, 'login', 'Login privileges, granted after account confirmation'); INSERT INTO `roles` (`id`, `name`, `description`) VALUES(2, 'admin', 'Administrative user, has access to everything.'); CREATE TABLE IF NOT EXISTS `roles_users` ( `user_id` int(10) UNSIGNED NOT NULL, `role_id` int(10) UNSIGNED NOT NULL, PRIMARY KEY (`user_id`,`role_id`), KEY `fk_role_id` (`role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `email` varchar(127) NOT NULL, `username` varchar(32) NOT NULL DEFAULT '', `password` char(50) NOT NULL, `logins` int(10) UNSIGNED NOT NULL DEFAULT '0', `last_login` int(10) UNSIGNED, PRIMARY KEY (`id`), UNIQUE KEY `uniq_username` (`username`), UNIQUE KEY `uniq_email` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `user_tokens` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `user_id` int(11) UNSIGNED NOT NULL, `user_agent` varchar(40) NOT NULL, 17/18

`token` varchar(32) NOT NULL, `created` int(10) UNSIGNED NOT NULL, `expires` int(10) UNSIGNED NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_token` (`token`), KEY `fk_user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `roles_users` ADD CONSTRAINT `roles_users_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `roles_users_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE; ALTER TABLE `user_tokens` ADD CONSTRAINT `user_tokens_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; データ Users Roles_user Roles 18/18