Getting Started with symfony

プロジェクトのセットアップ

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Tutorial Content

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

プロジェクトの作成

データベースを設定する

アプリケーションの作成

ディレクトリ構造

symfonyのパス

symfony training
Be trained by symfony experts
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "Getting Started with symfony" in Japanese for the 1.4 version - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

symfonyでは、同じデータモデルを共有するアプリケーション(application)はプロジェクト(project)に再分類されます。多くのプロジェクトでは、2つの異なるアプリケーション: フロントエンド(frontend)とバックエンド(backend)が用意されます。

プロジェクトの作成

sfproject/ディレクトリから、symfonyプロジェクトを実際に作成するためにgenerate:projectタスクを実行します:

$ php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME

Windowsでは次のようになります:

c:\> php lib\vendor\symfony\data\bin\symfony generate:project PROJECT_NAME

generate:projectタスクはsymfonyプロジェクトに必要なデフォルトのディレクトリ構造を生成します:

ディレクトリ 説明
apps/ すべてのプロジェクトのアプリケーションをホストする
cache/ フレームワークによってキャッシュされるファイル
config/ プロジェクトの設定ファイル
data/ -
lib/ プロジェクトのライブラリとクラス
log/ フレームワークのログファイル
plugins/ インストールされたプラグイン
test/ ユニットテストと機能テストのファイル
web/ Web公開のルートディレクトリ(下記を参照)

なぜsymfonyはこんなに多くのファイルを生成するのか? フルスタックフレームワークを使う主な利点の1つは開発プロセスを標準化することです。 symfonyのファイルとディレクトリのデフォルト構造のおかげで、symfonyの知識がある開発者であればsymfonyプロジェクトのメンテナンスを引き継ぐことができます。 数分のうちに、開発者はコードに飛び込み、バグを修正し、新しい機能を追加できるようになります。

タスクを実行するときに書かなければならない文字数を短くするためにgenerate:projectタスクはプロジェクトのルートディレクトリでsymfonyショートカットも作りました。

ですので今後は、symfonyプログラムへのフルパスを使う代わりに、symfonyショートカットを使うことができます。

データベースを設定する

symfonyフレームワークはPDOでサポートされるすべてのデータベース(MySQL、PostgreSQL、SQLite、Oracle、MSSQL、・・・)をそのまま使えます。 PDOの上に、symfonyは2つのORMツール: PropelとDoctrineを搭載しています。

新しいプロジェクトを始めるとき、デフォルトではDoctrineが有効です。 Doctrineによって使われるデータベースを設定するのは簡単でconfigure:databaseタスクを使います:

$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret

configure:databaseタスクはデータベースにアクセスするための3つの引数: PDO DSN、ユーザー名とパスワードをとります。 開発サーバーのデータベースにアクセスする必要がない場合、3番目の引数を省略するだけです。

Doctrineの代わりにPropelを使いたい場合、generate:projectタスクで新しいプロジェクトを作るとき、--orm=Propelを加えます。 ORMを使いたくない場合、--orm=noneを渡すだけです。

アプリケーションの作成

generate:appタスクを実行してfrontendアプリケーションを作ります:

$ php symfony generate:app

symfonyショートカットは実行可能なファイルなので、Unixユーザーはsymfonyを'./symfony'に置き換えることができます。

Windowsでは'symfony.bat'ファイルをプロジェクトにコピーして'php symfony'の代わりに'symfony'を使うことができます:

c:\> copy lib\vendor\symfony\data\bin\symfony.bat .

引数として渡されるアプリケーションの名前をもとに、generate:appタスクはアプリケーションに必要なデフォルトのディレクトリ構造をapps/frontend/ディレクトリで作ります:

ディレクトリ 説明
config/ アプリケーションの設定ファイル
lib/ アプリケーションのライブラリとクラス
modules/ アプリケーションのコード(MVC)
templates/ グローバルテンプレートファイル

ディレクトリ構造

新しく作成したプロジェクトにアクセスしてみる前に、Webサーバーが書き込みできるようにcache/log/ディレクトリに書き込みできるようにこれらのディレクトリの書き込みパーミッションを適切なレベルに設定する必要があります:

$ chmod 777 cache/ log/

symfonyのパス

次のコマンドを入力すればプロジェクトで使われるsymfonyのバージョンを表示できます:

$ php symfony -V

-Vオプションはsymfonyのインストールディレクトリへのパスも表示します。 このパスはconfig/ProjectConfiguration.class.phpに保存されています:

// config/ProjectConfiguration.class.php
require_once '/Users/fabien/symfony-1.4/lib/autoload/sfCoreAutoload.class.php';

よりよいポータビリティのために、symfonyのインストールの絶対パスを相対パスに変更します:

// config/ProjectConfiguration.class.php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

この方法では、プロジェクトのディレクトリをマシンの別の場所、もしくはほかのマシンに移動させてもプロジェクトは立派に動作します。

Webサーバーの設定 »
« symfonyのインストール

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.