分1234データアクセスコードの実装─新規エントリー入力フローでは,データアクセスコードの実装を行います。具体的な作業は,アクションクラスへのデータアクセスコードの実装,マッパー定義ファイルの作成,Piece_ORM設定ファイルの作成の3つになります。下記はデータアクセスコードの実装です。}}?>最初にコンストラクタのstdClassのインスタンスを生成していた部分がPiece_ORM::createObject('Entry')で置換されていますが,返されるオブジェクトは依然としてstdClassのインスタンスであることに注意してください。元のコードとの違いは,Piece_ORM::createObject()によってあらかじめテーブルのフィールドに対応したプロパティが用意されていることだけです。イベントハンドラには実際のデータアクセスコードが記述されています。Piece_ORM::getMapper()は引数に与えられたマッパー名に対応するマッパーオブジェクトを返します。$mapper->insert()は,引数に与えられたオブジェクトを新規レコードとしてマッパーに対応するテーブルに追加します。マッパー名はテーブル名に対応しており,マッパーのコンテキストではテーブル名はキャメルケースで取り扱われます。名称の先頭は大文字に変換されます。,“⁠_⁠”(アンダースコア)は削除され,“⁠_⁠”(アンダースコア)の直後の文字が大文字に変換されます。今回の場合,対象テーブル名はentryなのでマッパー名はEntryになります。現在のところ,Piece_ORMはメタデータに基づいたマッパーオブジェクト生成を行いません。言い換えると,対象テーブルが存在することによってマッパーが有効になるわけではありません。そのため,Entryマッパーを有効にするには,マッパー定義ファイルEntry.yamlを準備する必要があります。マッパー定義ファイルの最も重要な用途は対象テーブルのマッパーを有効にすることです。その他の用途としては,任意のメソッド名とSQLのマッピング,SQLのオーバーライト,メソッドに対するリレーションシップの設定などがあります。対象テーブルのマッパーを有効にする用途のみに使用する場合は,単に空のファイルを用意します。よって今回の場合,空のファイル/path/to/pieceblog/web/webapp/config/orm/mappers/Entry.yamlを作成することになります。最後の作業は,データベースへの接続情報をPiece_ORM設定ファイルに定義することです。pgsql://pieceblog:pieceblog@localhost/pieceblog作業が完了したら,ブラウザから動作を確認してください。エラーが発生せずにエントリー一覧画面が表示されたら成功です。現段階ではエントリー一覧画面には本物のレコードは反映されないため,直接データベースにアクセスし,レコードが追加されているかどうかを確認しましょう。row)おわりに今回はデータベース設計とテーブル定義,各種環境設定を行ったあと新規エントリー入力フローにデータアクセスコードを組み込みました。上記のようにPiece_ORMによるデータアクセスコードは非常に簡潔なものになります。一般的にアクションクラスへのデータアクセスコードの配置は推奨されていませんが,上記のような簡潔なコードを別のクラスに配置することに意味があるとは思えません。筆者はPiece_ORMを使ったデータアクセスコードはむしろイベントハンドラに記述することを推奨しています。いえ,イベントハンドラやアクションクラスが複雑になったときは,他のクラス同様メソッド抽出やクラス抽出によるリファクタリングを行ってください。次回は残りの2つのフローにデータアクセスコードを組み込み,アプリケーション全体がデータベースを使った形で動作するようにします。Frameworkのアーキテクト及びプログラマー。PEARのNet_UserAgent_Mobileの開発者でもある。今春に株式会社アイテマンを設立。『PHPライブラリ&サンプル実践活用[厳選100]』,Kindleストア・楽天Koboにて販売開始。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。