top


総投稿数 本 
no_

スポンサーサイト

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

symfony:さて、スタートだ。良質なチュートリアルを見つけて、それに沿って実際の手順を知る・・・ 【symfonyで、企業サイトを創る】

 2009-05-26
さくらインターネット において
 基本的なインストール、セットアップが完了した
 ・symfony

 今回のプロジェクト「企業サイト構築」において
 具体的な
 ・デザイン
 ・ER図 廻りがあがってくる前に、
 symfony の基本的な開発手順をチュートリアル
 を利用して学んでおく。


 symfony のチュートリアル
 数はさほど多くないが、良質のものが多い
 ように見受けられる。
 とても、丁寧でわかりやすく、身になるような
 気がするのは、このフレームワークを信じて
 また好んでいる方々の真摯な姿勢から、だろうか?


 全24日のカリキュラムで構成されている


Practical symfony | symfony | Web PHP Framework
Practical symfony | symfony | Web PHP Framework 本当に24日もかかっては
 間に合わないが、とても
 理解し易そうなので、
 まずは、これをやってみよう。




  追記に ▼


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


more

************************************************
◎ symfonyで、企業サイトを創る:3回目
  ・チュートリアル:01
************************************************


 /*------------------------------------------*/
  ●1日目:ポイント
 /*-------------------------------------------*/
   □2008年版カレンダーチュートリアル 登場
   □symfonyを実用的なプロジェクトとして使いたい
   □開発環境のセットアップと
    Webブラウザでアプリケーションのページを表示
   □symfony1.2をインストール
    (※私が組み込んだのは、1.2.7 だ)

   ※symfony は、1.0 から1.1以降になった際に
    いろいろと変化したようだ。
    ・現在、ネットで検索されるsymfony の情報には
     1.0時代のものが多いのだろうか。
    ・私の知り得た、ものでも
     (例えば)最初に習うプロジェクト初期化に
      おいては、
       1.0系 : init-project
       1.1~ : generate:project
      のようだ。


    ・このあたりの詳しい対比、情報は、
     ・symfony 1.1にアップグレードしよう!
     ・Upgrade_from_1_0_to_1_1
     ・symfony 1.2 入門(アップグレード PEAR)
     などで得られた。


   ■プロジェクトの作成
    前回、バージョンの違いを意識しないで
    init-project を実行してしまったけれど
    問題ないようだ。エイリアスとして、新しい
    タスクが利用される。


   ■アプリケーションの作成


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

    このようなコードが紹介されている。
    (S が $ になってるね。注意)
    ・generate:app:1.2でのタスク名だな。
    ・--escaping-strategy=on
     ・アプリケーション内のXSSを防ぐ(XSS
      ※出力エスケープを有効にする。
    ・--csrf-secret=UniqueSecret
     ・CSRFを防ぐ(CSRF/XSRF
      ※フォーム内でのセッショントークンを有効にする。

    > 先回プロジェクト生成だけで何もしていないので
      そのまま同じプロジェクトをこれら引数付けて、
      再度構成しようとしたら、
      「すでに存在する、と怒られる」


    □サイトのトップ画面表示として
     別の「アプリケーション名」で、生成
     (今回の引数を付ける)
     ・その後、
      index.php の
      デフォルトで読み込む部分を変更した。


$configuration = ProjectConfiguration::getApplicationConfiguration('*****', 'prod', false);

   ■Configファイルのパス変更
    デフォルトで、
    symfony/(プロジェクト)/config/ProjectConfiguration.class.php
    に記述されている
    ・絶対パスを相対パスに変えておけ、と。


require_once '/home/(アカウント)/(PEARディレクトリ)/symfony/autoload/sfCoreAutoload.class.php';
   ▼
require_once(dirname(__FILE__).'/../../../(PEARディレクトリ)/symfony/autoload/sfCoreAutoload.class.php');

   ■(開発・テスト・本番)環境設定
    ・symfonyの環境はコンフィギュレーション設定
     で行う。
     ( dev, test, prod
     ※あらかじめ「開発」用にセットされているのが
      (アプリケーション)_dev.php


    ・開発(dev)環境
     ・デバッグが容易でリクエストに対する詳細なログ
     ・キャッシュは利用しない
    ・本番環境
     ・カスタマイズされたエラーメッセージを表示
     ・キャッシュ機能は当然有効


   ■セキュアなセットアップ
    ※今回の方法で良かったのだろうが、
     ・ブラウザルート以下に
      ・プロジェクトは作らない
     ・並列で、ブラウザからアクセスできない
      位置におき、
      アクセスする必要のある
      (プロジェクト)/web ディレクトリのみ
      シンボリックリンクで構成
      (httpd.conf が設定・記述できれば
       そちらの方法を採用)


   ■バージョン管理:Subversion
    ※これまた、初めての体験なんだけど、
     今回は、とても丁寧にセットアップ紹介してくれている
     記事があったので、素直に従い、組み込む。
     ◆まず、サーバー側
     ・さくらレンタルサーバでSubversion (Install編)
      ・もうほんと、ここに書かれていることそのまま。
      ・各ソフトのバージョンこそ、最新のものを
       探して組み込んだけど、打ち込んだコマンドも
       そのまんま。ありがとうございます。


◆bashを起動~インストールする場所
$ bash
$ mkdir -p $HOME/local/src
$ cd $HOME/local/src
$ mkdir -p $HOME/local/lib/python2.4/site-packages
$ ln -s ~/local/lib/python2.4 ~/local/lib/python
$ export PYTHONPATH="$HOME/local/lib/python:$HOME/local/lib/python/site-packages"
$ export PATH="$HOME/local/bin:$PATH"
$ export LD_LIBRARY_PATH="$HOME/local/lib"

◆SWIGのインストール
$ cd $HOME/local/src
$ wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.39.tar.gz
$ gunzip swig-1.3.39.tar.gz
$ tar xvf swig-1.3.39.tar
$ cd swig-1.3.39
$ ./configure --prefix=$HOME/local
$ gmake
$ gmake install

◆Neonのインストール
$ cd $HOME/local/src
$ wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/neon-0.25.5.tar.gz
$ tar xvzf neon-0.25.5.tar.gz
$ cd neon-0.25.5
$ ./configure --prefix=$HOME/local --with-ssl --with-libs=/usr/local --enable-shared
$ gmake clean && gmake && gmake install

◆APR / APR-utilのインストール
$ cd $HOME/local/src
$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.3.3.tar.gz
$ tar zxvf apr-1.3.3.tar.gz
$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.3.4.tar.gz
$ tar zxvf apr-util-1.3.4.tar.gz

◆Subversionのインストール
$ cd $HOME/local/src
$ wget http://subversion.tigris.org/downloads/subversion-1.6.2.tar.bz2
$ tar jxf subversion-1.6.2.tar.bz2

・APRとAPR-utilをSubversionのディレクトリの中にコピー
$ cd $HOME/local/src
$ cp -rf apr-1.3.3 subversion-1.6.2/apr
$ cp -rf apr-util-1.3.4 subversion-1.6.2/apr-util

・Subversionをコンパイル & インストール
$ cd $HOME/local/src/subversion-1.6.2
$ ./configure --prefix=$HOME/local --without-berkeley-db -with-python=$HOME/local/lib/python --enable-swig-bindings=python --with-swig=$HOME/local/bin/swig --with-neon=$HOME/local/ --with-ssl --with-libs=$HOME/local --disable-static
$ gmake clean && gmake && gmake install
$ gmake swig-py
$ gmake install-swig-py

・シンボリックリンクを作成
$ ln -s $HOME/local/lib/svn-python $HOME/local/lib/python/site-packages/svn-python
$ ln -s $HOME/local/lib/svn-python/svn $HOME/local/lib/python/site-packages/svn
$ ln -s $HOME/local/lib/svn-python/libsvn $HOME/local/lib/python/site-packages/libsvn

     ◆そして、クライアント
     ・さくらレンタルサーバでSubversion (Windows操作編)
      ・こちらもそのまんま。
      また、元情報でもある、
     ・TortoiseSVNのインストールと設定
     ・TortoiseSVNの使い方
      ・ここも非常に丁寧な解説で、
       とても役立ちました。ありがとうございます。


    ・実際は
     現在学んでいるチュートリアルの「Subversion
     の項を参照に、実際のプロジェクトベースで設定。


    ●この、Subversion だけでも
     相当、奥が深いな。今回は、ただ
     指示通りに進めるけれど、
     正直、何も理解できていない。課題だ。


 チュートリアル。
 しかし、これ、1回1時間
 ということだけども・・・


 とても1時間では終わらない。
 斜め読みではできるかもしれないが、
 確かめながら理解するには時間がかかる。


  しかし、続ける ▼ 次へ・・・


 /*------------------------------------------*/
  ●2日目:ポイント
 /*-------------------------------------------*/
   □プラクティス(チュートリアル)では
    Jobeetというオープンソースの
    求人ソフトウェアを創ってゆくらしい・・・
   □プロジェクトの ユーザーストーリー
    ・4種類のユーザー
     プロジェクトの ユーザーストーリー
    ※これは、今回次のように置き換える


    * 管理者(admin): 私。サイト管理。魔法使いとなれるか。
* 訪問者(user): 興味を持ち、このサイトに訪問する
* 顧客(client): すでに顧客となっている取引先に提供するサービス
   ※フィリエイト(affiliate)ってのは、今回は不要。

   □2つのアプリケーションから構成
    ※これはこのまま。
     frontend
     ・訪問者がWebサイトと情報をやり取り
     backend
     ・管理者(私)がWebサイトを管理するところ


   【ストーリー F1:】
    ○ホームページ上でユーザーは
     最新の有効な状態の仕事を見れる
     有効な状態の仕事のリスト
     ・仕事のリストはまずカテゴリー
     ・掲載日順(新しい仕事が上に)にソート
     ・各仕事ごとに就業場所、役職、会社名が表示
     ▼
    ●ホームページ上で訪問者/顧客は
     企業からの最新情報を見れる
     有効な状態の最新情報
     ・情報のリストはまずカテゴリー
     ・掲載日順(新しい情報が上に)にソート
     ・各情報ごとにタイトル、本文抜粋、カテゴリ、更新日が表示

   【ストーリー F2:】
    ○ユーザーはカテゴリーに属する
     全ての仕事を見ることができる
     カテゴリー名か"more jobs"のリンクを
     クリックすると、
     ・日付順にソートされたカテゴリーに属する仕事を
      全部見ることができる。
     ▼
    ●訪問者/顧客はカテゴリーに属する
     全ての情報を見ることができる
     カテゴリー名か"もっと情報"のリンクを
     クリックすると、
     ・日付順にソートされたカテゴリーに属する情報を
      全部見ることができる。

   【ストーリー F3:】
    ○ユーザーはキーワードで
     仕事のリストを絞り込むことができる
     検索結果を絞り込むためにキーワードを入力
     ・就業場所、役職、カテゴリー、会社名からマッチング
     ▼
    ●訪問者/顧客はキーワードで
     情報のリストを絞り込むことができる
     検索結果を絞り込むためにキーワードを入力
     ・タイトル、本文、カテゴリー、更新日からマッチング

   【ストーリー F4:】
    ○仕事をクリックすることで
     詳細な情報を見ることができる
     ▼
    ●情報をクリックすることで
     詳細な情報を見ることができる

   【ストーリー F5:】
    ○ユーザーは仕事を掲載できる
     ・仕事を掲載するためにアカウントを作る必要は無い
     ▼
    ●顧客は問い合わせ・仕事連絡を書き込める
     書き込むためにはログインが必要

    ※ここはちょっとした改造だな。
     フォームについては、チュートリアル
     を生かして・・・

    ★チュートリアルで示されている
     ・固有のURLのおかげで項目を
      後から修正することも可能
      (保護用のトークン)
     ・ユーザーがアフィリエイトの申し込み
      (JobeetのAPIを利用できる権限)
     ・XML、JSON、YAMLフォーマット
     などは、非常に興味深く、
     今回は利用しないが、いづれ
     他のサービスで利用したい。
   【ストーリー F6:】
    ○ユーザーがアフィリエイトの申し込み
   【ストーリー F7:】
    ○現在の有効な仕事のリストを取得
     ※これらは、今回利用しない。

   【ストーリー B1:】
    ●管理者はWebサイトを設定
     サイト上で利用可能なカテゴリーを編集
    ※これは、このまま。

   【ストーリー B2:】
    ○管理者は仕事を管理
     ・掲載された仕事の編集や削除が可能
     ▼
    ●管理者(私)は情報を管理
     掲載された情報の編集や削除が可能

   【ストーリー B3:】
    ○管理者はアフィリエイトユーザーを管理
     ・作成したり編集
     ▼
    ●管理者(私)は顧客を管理

 こんな感じだな。
 今日は2日分かぁ。
 本当に24日、掛かったらどうしよ・・・

commentsコメント
comment_post












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

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

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

 

リンク集

 

最近の記事

 

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

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

 

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