top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_972

symfony:あれからどうしたって!? 随分作業して環境も一新(Propel > Doctrine)・・・ 【symfonyで、企業サイトを創る】

 2009-06-11
【前回】
symfony:データモデルの実装に入るぞ。今日から、バリバリ書き始める・・・ 【symfonyで、企業サイトを創る】

さくらインターネットに、作業場所を移して、
作業久しぶりに。


その間で変化。


それは、

symfony & Doctrine
symfony & Doctrine※引用転載
 ・symfonyで採用されている
  デフォルトのO/Rマッパ「Propel
  ・SQLをほとんど書かずに
   オブジェクト操作でDBに
   アクセスする設計
 対して
 ・Doctrine
  ・よりSQLに近い、
   DQLというものを使用してDBを操作



 ・・・あぁ、こりゃ完璧に
    私には、「Doctrine」だな、と。
    即効入れ替え。

 ・・・といっても
 すでにプラグインとしてはインストールされて
 いるので、設定変えただけですが。


それでは、その後の顛末を・・・


  追記に ▼


※この連載は、はじめて「symfony」に取り組んだmetaboyが、
 いきなり、企業サイトをこれで創ってしまお、という企画。
 参考にするチュートリアルは、
 ◆Practical symfony | Web PHP Framework

FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎ symfonyで、企業サイトを創る:5回目
************************************************


 /*------------------------------------------*/
  ●O/Rマッパ:変更
 /*-------------------------------------------*/
   ほんとにネットって有難いもので。
   たくさんの有用な情報が、いつも役に立つ。
   【参照ありがとうサイト】
    ・symfony & Doctrine
    ・DAY2: データモデルの作成 : エクスギア Blog
    ・Doctrineとは?
    ・Doctrine | process S+D
    ・sfDoctrinePlugin - symfony-doc-ja -

   □configファイル の変更


    ※sfPropelPlugin をやめて、sfDoctrinePlugin
     にする。
## *****/config/ProjectConfiguration.class.php
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
# // for compatibility / remove and enable only the plugins you want
# $this->enableAllPluginsExcept(array('sfDoctrinePlugin', 'sfCompat10Plugin'));
$this->enablePlugins('sfDoctrinePlugin');
$this->disablePlugins('sfPropelPlugin');
}
}
 ・・・両方一緒でも利用できるらしいけど。

   □データベース設定ファイル の変更


    ※Doctrine用に記述内容変更
all:
main:
class: sfDoctrineDatabase
param:
dsn: 'mysql:host=*****;dbname=*****'
username: *****
password: *****
encoding: utf8
persistent: true
pooling: true

   □SSH で、使えるコマンド確認


    ※SSHで入り、
$ symfony list doctrine
 と打つと
     ずらずらと、使えるコマンド説明が表示される。

   (ここで、ポカ)恥ずかしいけど記録。
     最初、今回のプロジェクトディレクトリに入らず、
     このコマンドを打っていたので、どうしてもリストが出ない
     どこかおかしいのか、随分はまった。


   □schema.yml の作成


    ※引き続き、SSHで、
$ symfony doctrine:build-schema
 と打つと
>> doctrine  generating yaml schema from database
>> doctrine Generate YAML schema successfully from database
 と返ってくる。
    ・configフォルダに、doctrineフォルダが作成され、
    ・中に、schema.yml が作成された。

   (ここで、注意)データベースに接続して
     自動的に解析して、生成してくれるわけだけど・・・
     随分表現が違うなぁ。
     int(10) > integer(4)
     smallint(1) > integer(2)
     smallint(6) > integer(2)
     varchar(255) > string(255)
     varchar(45) > string(45)
     varchar(255) > string(255)
     text > string(2147483647)
     datetime > timestamp(25)
     ※varchar と、datetimeは、
      問題ないようだけど、
      他は修正。


      smallint・・・桁数を修正
      text・・・clob という表現にするようだ。


   □モデルの作成


    ※SSHで入り、
$ symfony doctrine:build-model
 と打つと
>> doctrine  generating yaml schema from database
>> doctrine generating model classes
 と返ってくる。出来たようだ。
    ・lib/modelディレクトリ以下に、
     doctrineフォルダが作成され、
    ・中に、ずらずらっと、ファイル郡が生成された。

    > これらのファイルには今後修正をしてゆくようだ。


   (ここで、注意)同じように作成される
     lib/model/baseディレクトリ以下の
    ファイルは、プログラムによる自動作成のもので
    これは編集してはいけない・・・了解。


 /*------------------------------------------*/
  ●フォームクラスを生成
 /*-------------------------------------------*/
   チュートリアル「The Askeet Tutorial」では、
   ・Propel を中心にした解説がつづくわけだが、
   私は
   ・Doctrine に変更したので、
    今回見つけた
    ・DAY2: データモデルの作成 : エクスギア Blog さんの
     解説にある記述も参考にして、進めてゆく。


   今回は、「企業サイト」なので
   チュートリアルにある「Q&A の問い合わせフォーム」を
   > 会社への「お問い合わせフォーム」に変更して、進める。


   □フォームフレームワーク の利用


    ※SSHで入り、
$ symfony doctrine:build-form
 と打つと
企業サイトなので、モザイクご勘弁 と返ってくる。
     (※企業サイトなので、モザイクご勘弁)
    ・lib/form/doctrine以下に、
     ファイル郡が生成された。

 /*------------------------------------------*/
  ●CRUDでデータアクセス
 /*-------------------------------------------*/
   CRUD ・・・ Create,Read,Update,Deletenの操作


   □CRUDの自動作成


    ※SSHで入り、
$ symfony doctrine:generate-module (アプリ名) (モジュール名) (テーブル名)
 と打つと生成される。

   □アクセスして確認
    ※URLは
     アプリケーション名/モジュール名/アクション名(省略時はindex)
    最初の画面が出て、[New] のテキストリンク
     ・最初の画面が出て、[New] のテキストリンク
       クリックすると
        ▼
    入力用のフォーム画面が表示された
     入力用のフォーム画面が表示された。
     ・URLも ・・・/new という形式だ。


    試しに入力>保存(Save)
    入力必須には、Required と表示される
     ・自動的に、基礎Validateされて、
      入力必須には、Required と表示される


    再入力して>保存(Save)
    (保存されたようで)編集画面に切り替わる
     ・(保存されたようで)編集画面に切り替わる。
      (※実際の用途としては、これは必要ないが)


   □phpMyAdmin で確認
    確かに、保存されている


     ・確かに、保存されている。

 明日、この続きを必ずやろう。
 なんだか、楽しくなってきた。
 明日は、MVCモデルを理解して、
 ・ぜひ、レイアウトを変更してみたい。

commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/972-cd497c4d
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。