top


総投稿数 本 
no_

スポンサーサイト

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

symfony:symfony初体験。さてフレームワーク。今度はこれを利用してあるサイトを実際に構築する・・・ 【symfonyで、企業サイトを創る】

 2009-05-18

ある企業サイトを創ることになった。
詳細は明かせないが、自身に近いところなので
その顛末を記録してゆく。


さて、方法だが、
・ゴリゴリすべて書く方法はやめて
フレームワークを利用する


何にするか?
CakePHP はすでに何度か利用している。
できれば未体験のものを使ってみたい。


 ・Zend Framework は興味だけで体験はないのだが、
  何か「重い」イメージがあり
  (スピード、というわけではない)
  なかなか手を出せない。
 ・CodeIgniter は途中まで進めていたが
  どうもしっくりこない。
  やめるわけではなく、腰を落ち着けて
  引き続き他のプロジェクトで利用する。
 ・フレームワークでなく、CubeなどのCMSで、
  とも思っていたのだが・・・


頭の中に「symfony」が流れるのだ。
・・・なんて似合わないことは言うまいが、
   とにかく前から気になってた。
これを使おう。


それでは早速・・・


  追記に ▼


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


more

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


 物事を始めるのに、今は決して「手探り」の時代
 ではない。まったく新しいことを発見・追究するなら
 ともかく、やりたいことをただ実現するのであれば、
 優れた先人がたくさんの知識と技術を公開してくれている。
 素直に、利用させていただく・・・


 流れを創るために有効となりそうな記事がある。
 随分古い記事ではあるが・・・


symfony入門:symfonyで始めるPHPフレームワーク
symfony入門:symfonyで始めるPHPフレームワーク フレームワークを利用するのは
 初めてではないが、日頃どうしても
 ゴリゴリ書く癖が抜けない私は、
 まだまだフレームワーク初心者
 といえる。この基本的なところから
 始めるチュートリアル記事が最適
 だろう・・・




 ※この記事の環境とは少し異なるが
  (サーバーは、Linux)、それは問題ではない
  だろう。


 ■フレームワークについての再認識


  触れられている内容を反芻し、改めて
  整理しておく。
・フレームワーク利用による改善点
  ・定型的なコードの記述
  ・平行作業(ビューとロジックの切り分け)
  ・メンテナンス(コーディングルールの統一性)
  ・品質(コーディングルールの統一性)
  ・MVCWikipedia)
  ・アプリケーションをM(モデル)、V(ビュー)、
   C(コントローラ)、の組み合わせで開発するモデル
   ・モデルとはビジネスロジックを指し、
    プログラマーが担当
   ・ビューは見た目を指し、デザイナーが担当
   ・てモデルとビューとが連携する
    橋渡しを行っているのがコントローラ

 ■symphony 基礎知識(※引用転載)


・MITライセンスに基づくオープンソース
・PHP5用フレームワーク
Mojaviから派生し、
 Ruby用フレームワークRuby on Railの影響
・特徴
 * シンプルなテンプレートとヘルパー
 * キャッシュ・コントロール
 * 種々の環境(OS、データベース)に対応
 * 管理ツール(アプリケーションファイル群の管理――変更、更新など)
 * scaffolding機能(データベースの基本操作に必要なモジュールを自動生成する)
 * スマートURL(設定ファイルによりURLの形式を決めることができる)
 * 多言語(I18N)対応
 * オブジェクトモデルとMVC分離
 * Ajaxサポート
 * プラグインによる機能追加が可能
   ・これを見ると最近の
    フレームワークと同じような感じ
    だけれど。

 さぁ、始めよう・・・


 ■PEARを利用してインストール
  ・SSHでサーバーに入り
   ・まず、symfonyのチャンネルに接続
> pear channel-discover pear.symfony-project.com
> Adding Channel "pear.symfony-project.com" succeeded
> Discovery of channel "pear.symfony-project.com" succeeded

   ・インストール
> pear install symfony/symfony
> Adding Channel "pear.symfony-project.com" succeeded
> Discovery of channel "pear.symfony-project.com" succeeded
downloading symfony-1.2.7.tgz ...
Starting to download symfony-1.2.7.tgz (2,695,475 bytes)
install ok: channel://pear.symfony-project.com/symfony-1.2.7

   ・確認
> symfony -V
Content-type: text/html
symfony version 1.0.5

  ・設定にはmod_rewriteを利用するから、設定されていない場合は
   SSHでサーバーに入り httpd.conf を 書き換えなくてはならない。


LoadModule rewrite_module modules/mod_rewrite.so

  ・FTPアクセスしてディレクトリを確認
   してみた。


(PEARディレクトリ)/php/symfony
(PEARディレクトリ)/data/symfony
(PEARディレクトリ)/doc/symfony

   が、それぞれ生成されている。
   ※チュートリアルにあった
    「(PEARディレクトリ)/test/symfony」は
    出来ていなかった。

 ■コードジェネレーター を使ってみる
  ※プロジェクト構築に必要なモジュール
   の自動生成


  ・生成する場所を用意
   rootディレクトリ以下に、
   プロジェクト用フォルダを用意
   ※今回はまずテストだが、サイト全体を創る場所では
    rootディレクトリそのまま


  ・プロジェクトの作成
   SSHでサーバーに入り
   ・プロジェクト用フォルダに移動し


> cd public_html/(プロジェクト用フォルダ)

   ・symfonyコマンドでプロジェクトを作成
> symfony init-project (プロジェクト名)

    おぉ、「プロジェクトのスケルトン」
    が、生成される。
    プロジェクトのスケルトン

   それぞれは、下記(※引用転載)


*****/(プロジェクトフォルダ)
 apps/ アプリケーションフォルダ
 batch/ コマンドラインやスケジューラー
     から呼び出されるバッチファイル群
 cache/ 表示を高速化するための
     キャッシュフォルダ
 config/ プロジェクトの設定ファイル群
 data/ データ用フォルダ
 doc/ ドキュメント用フォルダ
 lib/ 外部クラス・ライブラリ用フォルダ
 log/ symfonyによるログファイル群
 test/ 単体テスト用フォルダ
 web/ Webサーバー用ルートフォルダ

    ここに無いもので、
    ・plugins というフォルダもできていた。

  ・アプリケーションの宣言
   ※一つのプロジェクト内に
    複数のアプリケーションを作成
    することができて、それを宣言する


> symfony init-app home

   ※まずは、homeを用意する

   このような構成になった


*****/(プロジェクトフォルダ)
 apps/
  home/
   config/ YAMLによる設定ファイル群
   i18n/ 国際化用ファイル群
   lib/ アプリケーション特有のクラス
         /ライブラリ用フォルダ
   modules/ モジュール用フォルダ
   templates/ アプリケーション、
         モジュール用テンプレートフォルダ

   ※YAMLとは、
    ・人間にとって見やすいことを目指して
     作られたデータ構造記述フォーマット
     ということだ
      > The Official YAML Web Site
      > Wikipedia

  ・(プロジェクトフォルダ)/web/index.php
   自動的に生成されている。
   ちょっと開いてみる。


define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));
define('SF_APP', '*****');
define('SF_ENVIRONMENT', 'prod');
define('SF_DEBUG', false);
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
sfContext::getInstance()->getController()->dispatch();

   ※このファイルを変更することはあまり
    無いということだが・・・

 さて、明日は
 実際に構築をテストし始める・・・

commentsコメント
comment_post












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

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

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

 

リンク集

 

最近の記事

 

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

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

 

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