top


総投稿数 本 
no_

スポンサーサイト

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

symfony:今までの作業を「よく」復習。プロジェクト>アプリケーション>モジュール と作成してゆく基本の流れを再確認・完全理解する・・・ 【symfonyで、企業サイトを創る】

 2009-06-30
【前回】
symfony:なんとなく理解し始めたsymfony。求めていたフレームワーク、?かもしれない・・・ 【symfonyで、企業サイトを創る】
 ・symfony での開発の環境
  本番環境(prod),開発環境(dev),検証環境(test)
  を理解し
 ・homepageのルーティングルールを再定義
 ・テストデータの作成 をスキーマファイル変更して
  行うことをん習い
 ・モデルでデータの利用を確認した。

今回の目的は、今までの作業を「よく」復習することだ。
 ※symfonyで構築したいとき、まずこの頁を再確認
  すればいいように・・・


  追記に ▼(長文ご容赦)


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

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


more

************************************************
◎ symfonyで、企業サイトを創る:8回目
  ※ちょっと復習しておく
************************************************


 いろいろなプログラム言語やシステムを学び利用していると
 かなり混乱してくることがある。今がそうだ。


 欲張りな私は常に複数のことを同時にやろうとする癖がある。
 良くないと思っていても性格だから・・・
 今混乱してて
  ・学んでいる
   ・symfony
   ・Ruby
   ・Flex に加え
  ・仕事で利用している
   ・PHP
   ・Ajax
   ・AccessVBA
 が、頭の中で、複雑なシンフォニーを奏でている(ようだ)。


 ちょっと立ち止まり、今日はまず、ここまでの
 基本的な(これから何回もやるであろう)
 ・symfonyでのプロジェクト準備
 を、再度反芻して、箇条書きでまとめておこう。


 /*------------------------------------------*/
  ●symfony でのプロジェクト準備
 /*-------------------------------------------*/
  ※単純に箇条書きで反芻する。


  □プロジェクトの準備
   □sshで、プロジェクトディレクトリに入り、プロジェクト作成


$ symfony generate:project (プロジェクト名)

  □frontendアプリケーションの作成
   □一般公開し実際に見てもらうサイトとして


$ symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend

  □symfonyの「ディレクトリ指定」の修正
   ※絶対ディレクトリを相対指定に変更
    (symfonyプロジェクトフォルダ)/config/ProjectConfiguration.class.php


#require_once '(PEARディレクトリ)/symfony/autoload/sfCoreAutoload.class.php';
require_once(dirname(__FILE__).'/../../../(PEARフォルダ)/symfony/autoload/sfCoreAutoload.class.php');

  【さくらレンタルサーバーの場合】
  □webにある、.htaccessファイル編集
   ※ExecCGI が使えない


#Options +FollowSymLinks +ExecCGI ## コメントアウト
RewriteBase / ## コメントアウトはずす

   ※これをやらないと、Internal Server Error となる

  □(必要に応じ)シンボリックリンクを作成
   ※今回は、サイトURL/(プロジェクト名)/ でアクセスさせたいので
    サイトのrootディレクトリに移動し


$ ln -s (symfonyプロジェクトフォルダ)/web (サイトのroot)/(プロジェクト名)

  □symfony標準画像へのシンボリックリンク
   ※組み込まれたsymfonyの標準画像


$ ln -s (PEARディレクトリ)/data/symfony/web/sf (symfonyプロジェクトフォルダ)/web/sf

  ■アクセス確認
  (サイトのroot)/(プロジェクト名)/frontend_dev.php/
   ・「Symfony Project Created」が表示される
   ※ローカルでアクセスしない場合は、REMOTE_ADDRでの
    アクセス制限をはずしておく


 !ここで!
 /*------------------------------------------*/
  ●今回の構成 をもう一度考える
 /*-------------------------------------------*/
  ※今回、このチュートリアルを学びながら、いきなり
   企業サイトとして構築してやろう、という思惑なので
   もう一度構成を整理する。


  ・問い合わせをモチーフに
   ・アプリケーションにぶら下がる
    ・モジュール作成の基礎、と
    ・テストデータの組み込み
    ・基本的なデータへのアクセス方法の学習は終えた


   【(再)構成】
    ・サイトのTOP頁
      ┃index.html
      ┃ ・whatsnewからの抜粋
      ┃ ・contactへのリンク
      ┃
      ┣ whatsnew
      ┃ ・最新情報の一覧
      ┃  ┗ 個別の表示
      ┃
      ┗ contact
        ・問い合わせフォーム

      と、する。


   【用意するモジュール】※frontendアプリケーションにおいて
     ・whatsnew
      ・リスト表示
      ・個別表示
     ・contact
      ・新規作成(new)


さぁ、復習・整理の続きだ。
 /*------------------------------------------*/
  ●symfony でのモジュール準備
 /*-------------------------------------------*/
  ※単純に箇条書きで反芻する。


  □データベースをハンドリングする「ORマッパー」の準備
   ※基本的に「Doctrine」を利用
   ※テーブルは先に、phpMyAdmin で用意しておく
   ・プラグインの設定
    (symfonyプロジェクトフォルダ)/config/ProjectConfiguration.class.php


  public function setup()
{
# // for compatibility / remove and enable only the plugins you want
# $this->enableAllPluginsExcept(array('sfDoctrinePlugin', 'sfCompat10Plugin'));
$this->enablePlugins('sfDoctrinePlugin');
$this->disablePlugins('sfPropelPlugin');
}

   ・symfonyに接続情報を記述
    (symfonyプロジェクトフォルダ)/config/database.yml
    ※propelに関連するところをすべてコメントアウトし、


  main:
class: sfDoctrineDatabase
param:
dsn: 'mysql:host=(ホスト名);dbname=(データベース名)'
username: *****:
password: *****
encoding: utf8
persistent: true
pooling: true
   の追加。

  □schema.yml の作成
   ※用意したテーブルから、まず初期段階の
    schema.yml を作成する


$ symfony doctrine:build-schema

   ・通常の、(プロジェクト)config/ 以下ではなく
   ・(プロジェクト)config/doctrine/ 以下に作成される。

  □schema.yml の調整
   ※生成されたファイル内の微調整
   ・smallint・・・桁数を修正
   ・text・・・clobに変更


  □モデルの作成
   ※データベースから各テーブルへアクセス
    するモデル用のファイル


$ symfony doctrine:build-model

   ・通常の、(プロジェクト)lib/model 以下に作成される。

  □フォームクラスを生成
   ※フォームフレームワーク の利用


$ symfony doctrine:build-form

   ・通常の、(プロジェクト)lib/model 以下に作成される。

  □CRUDの自動作成


$ symfony doctrine:generate-module (アプリ名) (モジュール名) (テーブル名)

 !ここで!
 /*------------------------------------------*/
  ●モジュールを作成しておく
 /*-------------------------------------------*/
  ※必要なモジュール
   ・whatsnew
   ・contact の作成


$ symfony doctrine:generate-module (アプリ名) whatsnew (テーブル名)
$ symfony doctrine:generate-module (アプリ名) contact (テーブル名)

さぁ、復習・整理。
 /*------------------------------------------*/
  ●テーブル構造の変更やら微調整
 /*-------------------------------------------*/


  □一度基本修正した、schema.ymlに
   編集加筆加え、テーブルの微調整を行い
   各テーブルのモデルを再作成


$ symfony doctrine:build-model
$ symfony doctrine:build-form
$ symfony doctrine:generate-mod
ule frontend contact Contact
$ symfony doctrine:generate-mod
ule frontend whatsnew Whatsnew

  □何か構造に変更を与えたら必ず
   キャッシュをクリア


$ symfony cc

  □デフォルトのレイアウトテンプレート
   を基礎編集
   /apps/(アプリ名)/templates/layout.php
   > 詳細はこちらの記録
   ※ここで編集した内容は、用意したモジュール
    (whatsnew や contact)には反映されていることを確認
    しかし、デフォルトで最初に表示される
    「Symfony Project Created」は、symfony共有のものなので
    反映されない。ここを変更 ▼


  □defaultモジュールの作成


$ symfony init-module frontend default

   デフォルトで作成される
    (symfonyプロジェクトフォルダ)/modules/default/actions/actions.class.php
   を、
  public function executeIndex(sfWebRequest $request)
{
# $this->forward('default', 'module');
}
 ・・・とコメントアウトしておく。

  □最初にアクセスされる「トップページ」としての
   テンプレートは、
    (symfonyプロジェクトフォルダ)/modules/default/templates/indexSuccess.php
   になる。


 これで、先回行ったテストデータの用意までやれば
 基本的な準備が完了だ。


 ふ~。
 再度ここまでやって、ようやく身体になじんできた、かな。

commentsコメント
comment_post












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

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

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

 

リンク集

 

最近の記事

 

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

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

 

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