![]() |
|
The Askeet Tutorialsymfony アドベントカレンダー 1日目: プロジェクトを立ち上げる |
|


WARNING: The SVN source code found in the release_day tags is outdated. Please refer to the current version until each day code is updated.
You are currently reading "The Askeet Tutorial" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.
|
This work is licensed under a
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed. |
symfonyアドベントカレンダーは、12月1日からクリスマスまで毎日発表される全24編のチュートリアルです。 週末を含む毎日、新しいチュートリアルが発表されます。 それぞれのチュートリアルは1時間未満ですが、WEB2.0の現在進行中の進化に関するあらゆることを知る機会になるでしょう。クリスマスには、できあがったアプリケーションはオンライン上で公開され、オープンソースのアプリケーションとして提供されます。 このアプリケーションは、使いやすくて、面白く、便利で、かつ、楽しいものになるはずです。
1時間未満で24回ということは、合計しても1日未満です。それは、私たちが開発者がsymfonyを学ぶのに必要であると考えている時間そのものです。 毎日、新機能がアプリケーションに追加されていきますが、私たちはこの開発を、symfonyを使ったWEB開発のよい練習素材とすると同時に、symfonyの機能性をどのように利用するかを示すために利用するつもりです。 毎日、あなたは、symfonyでウェブアプリケーションを開発するのがどんなに速く・効率的であるかを実感するでしょう。そして、さらに知りたくなるにちがいありません。
たったそれだけではものたりないという割には、われわれが怠惰なせいもあって、21日目 - 冬の時間 - のためのプランが全くありません 。みなさんが最も必要とする機能は、当日、準備なしでアプリケーションに追加されるでしょう。そして、私たちはそれうまくいかせるつもりです。それが、一日でsymfonyの第一人者を得るための日になるでしょう。
設計されるアプリケーションはちょっとした「発表会」というようなアプリケーションで、TODOリスト、電話帳、または書店のようなものになるかもしれません。 しかし、我々はsymfonyを、有用で、数多くの特徴があり、有力な規模の独創的なプロジェクトで使用したいと考えています。 その目的は、symofonyは、複雑な状況で、粋なプロフェッショナル・アプリケーションを少しの努力で開発するために使えるということを本当に証明することです。
symfonyウェブサイトが重要な負荷を支えることができるのを示すために、多くの人々が実際にアプリケーションを使ってくれることを願っています。 それによって、このアプリケーションが、実際のサービスをもたらし、既存の必要性に答え、もしくは新しいものを生み出すことになるのです。 ウェブサイトの立ち上げは生きたのストレス実験になるでしょう; これは、サイトがどのくらいの訪問者を支えることができるかをチェックするために、あなたのような謙虚な訪問者…そのサイトに突っ込みをし、ブックマークし、ブログでふれ、実際の生活で話をする…を必要としていることを意味します。
プロジェクトの内容は他の日のためにに秘密しておきます。 私たちには、今日、完全装備のWEB2.0アプリケーションについて説明すること以外に、まだやらねばならないことが多くあります。 他の前提について述べ、着手するためにあなたにもう少し時間が必要でしょう。とはいえ、私たちにはその呼び名が必要ですから、こう呼ぶことにします: askeet 。
今日の目的は、ウェブブラウザでアプリケーションのページを表示することと、プロの開発環境をセットアップすることです。これはsymfonyのインストール、アプリケーションの作成、ウェブサーバ構成、およびソースのバージョン・コントロール・システムのセットアップを含んでいます。
それは、既に以前のチュートリアルをやった人々にとっては簡単で、他の人にはそれほど困難ではありません。 そして、皆、何か新しいものを学ぶでしょう。
私たちは、あなたがApache、MySQL、PHP5がインストールされているUnix系システムを利用していることを想定しています。Windowsで動かしていても、慌てないでください: その環境でも十分機能しますし、コマンドプロンプトにおいて、いくつかのコマンドをタイプする必要があるだけです。
symfonyをインストールする最も簡単な方法は PEARパッケージを使用することです。しかしながら、チャンネルを使用してsymfonyチャネルにアクセスするため、PEAR1.4.0以上にアップグレードする必要があります。(PEAR1.4.5を含んでいるPHP5.1.0を使っていれば必要ありません):
$ pear upgrade PEAR
注意: PEARを使用している間に何か問題が生じたら、インストールの章を参照してください。
では、'symfony'のチャネルを加えましょう:
$ pear channel-discover pear.symfony-project.com
これで、symfonyの最新の安定バージョンをすべての依存関係と共にインストールする準備ができました:
$ pear install symfony/symfony
symfonyのバージョンをチェックするコマンドを使用して、symfonyがインストールされているかチェックしてください:
$ symfony -V
あなたがこの新しいコマンドラインツールを使ってできることがに興味があるなら、 symfony -Tをタイプして、利用可能なオプションを表示してください。 また、tgzアーカイブやsvnレポジトリからsymfonyをインストールする方法を見るには installationの章を読んでみてください。 コミュニティの貢献によって、the symfony wikiでもPEARを使わないインストール方法が詳しく説明されています。
symfonyでは、同じデータモデルを共有する applicationsがprojectsに再編成されています。askeetプロジェクトのために、フロントエンドとバックエンドがあるという事実を明らかにすることができます: それは2つのアプリケーションを作ります。 プロジェクトがアプリケーションの外郭構造で、まずはじめに作られなければなりません。そのために必要なのは、ひとつのディレクトリと symfony init-project コマンドだけです:
$ mkdir /home/sfprojects/askeet
$ cd /home/sfprojects/askeet
$ symfony init-project askeet
では symfony init-app コマンドを使って frontendアプリケーションを作成しましょう:
$ symfony init-app frontend
おお、速い。
注意: Windowsユーザは、スペースを含まないパスで、symfonyを実行したり、新しいプロジェクトをセットアップしたりする必要があります(これはDocuments and Setting ディレクトリも含みます)。 訳注: 同様に日本語を含むディレクトリも避けたほうがよいかもしれません。
新しいアプリケーションをアクセスしやすくするように、あなたのApacheの構成を変えましょう。プロの間では、バーチャルホストとして新しいアプリケーションをセットアップするほうがよく、それをここで説明します。しかしながら、エイリアスとしてそれを加えるのを好むなら、web server configurationの章でその方法を見つけてください。
あなたの Apache/conf/ ディレクトリの httpd.conf ファイルを開いて、終わりに加えてください:
<VirtualHost *:80>
ServerName askeet
DocumentRoot "/home/sfprojects/askeet/web"
DirectoryIndex index.php
Alias /sf /usr/local/lib/php/data/symfony/web/sf
<Directory "/home/sfprojects/askeet/web">
AllowOverride All
</Directory>
</VirtualHost>
注意:
/sfエイリアスはあなたのPEARデータディレクトリにsymfonyのフォルダを指定しなければなりません。それを決定するには、pear config-showをタイプしてください。 symfonyアプリケーションは、WEBデバッグツールバーとAJAXヘルパーを動かすのに必要な画像とjavascriptファイルを得るためにこのフォルダーにアクセスできる必要があります。
Windowsでは、あなたは、Aliasラインを以下のように置き換える必要があります。
Alias /sf "C:\php\pear\data\symfony\web\sf"
ドメイン名 askeetがローカルで宣言されなければなりません。
あなたがLinux系OSを使っているなら、 /etc/hostsの中で宣言しなければなりません。 Windows XPを使っているなら、このファイルは C:\Windows\system32\driver\etc\ ディレクトリにあります。
以下の行を追加してください:
127.0.0.1 askeet
注意: この作業には管理者権限を持っている必要があります。
新しいホストをセットアップしたくないなら、あなたは、別のポートでウェブサイトを配信できるように Listen ステートメントを加えてください。 これで、localhostドメインを使用できます。
Apacheをリスタートし、新しいアプリケーションにアクセスできるかチェックしてください:
http://askeet/

注意: symfonyは、URLの/index.php/部分を取り除くのに
mod_rewriteモジュールを使用することができます。 もし、あなたがそれを使用したくないか、またはあなたのウェブサーバが同等な設備を持っていないなら、あなたは web/ディレクトリに位置する.htaccessファイルを取り除いてください。 もしあなたのApacheがmod_rewriteを含まずにコンパイルされているなら、mod_rewriteのDSOがインストールされていて、httpd.confに以下の行があるかをチェックしてください:AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so
routing chapterにおいて、smart URLs に関してさらに学ぶこともできます。
また、開発環境におけるアプリケーションにアクセスしましょう。 以下のURLを入力してください:
http://askeet/frontend_dev.php/
ウェブデバッグツールバーは先頭の右隅に表示されます。それは、Alias sf/ コンフィギュレーションが正しいと立証する小さいアイコンを含んでいます。

再度いいますが、Windows環境でIISサーバを実行する場合は、セットアップは少し異なっています。 related tutorialにて設定方法を確かめてください。
ずぼらな人々の良い原則の1つは、既存のコードが壊れるのを心配しないことです。 速く仕事を進めたいとき、変更の効果がないとき旧バージョンに戻りたいと思うとき、1人以上の人がプロジェクトにかかわるのを可能にしたいと思うとき、また、アプリケーションのすべてのバージョンにアクセスする手段が欲しいと思うときには、バージョンコントロールを採用しましょう。 この目的のため、 Subversionが使えます。既にSubversionサーバをインストールしているか、またはSubversionサーバにアクセスする手段を持っていると仮定して話をします。
まず、 askeetのために、新しいレポジトリーを作成してください。
$ svnadmin create $SVNREP_DIR/askeet
$ svn mkdir -m "layout creation" file:///$SVNREP_DIR/askeet/trunk file:///$SVNREP_DIR/askeet/tags file:///$SVNREP_DIR/askeet/branches
次に、 cathe/と log/にある一時的なファイルを除いて、あなたは最初の取り込みをしなければなりません:
$ cd /home/sfprojects/askeet
$ rm -rf cache/*
$ rm -rf log/*
$ svn import -m "initial import" . file:///$SVNREP_DIR/askeet/trunk
今度は、初期状態のアプリケーションがあるディレクトリを取り除き、SVNバージョンのチェックアウトを使用してください:
$ cd /home/sfprojects
$ mv askeet askeet.origin
$ svn co file:///$SVNREP_DIR/askeet/trunk/ askeet/
$ ls askeet
$ rm -rf askeet.origin
1つセットアップするものが残っています。 リポジトリーにあなたの作業ディレクトリをコミットするなら、プロジェクトの cache/やlog/ディレクトリにあるような、いくつかの不要なファイルをコピーしてしまうかもしれません。 したがって、このプロジェクトのSVNへの無視リストを特定する必要があります。
$ cd /home/sfprojects/askeet
$ svn propedit svn:ignore cache
SVNのためにコンフィギュアされたデフォルトのテキストエディタが立ち上がるはずです。 コミットするときSVNが無視するべきである cache/のサブディレクトリを加えてください:
*
保存して、終了ください。 これで終わりです。
log/ディレクトリのために同じ手順を繰り返してください:
$ svn propedit svn:ignore log
以下のように入力するだけです:
*
そして、cacheとlogディレクトリに対して、あなたのウェブサーバがそれらに上書きできるように適切なレベルの書き込み権限をセットしてください。 コマンドラインで:
$ chmod 777 cache
$ chmod 777 log
注意: Windowsユーザは、Subversionリポジトリーを管理するのに偉大なTortoiseSVNクライアントを使用することができます。
ソースバージョンコントロールに関してさらに知りたいなら、symfony bookで project creation chapterをチェックしてください。
注意: askeet SVNリポジトリーは公開されています。 以下から、それにアクセスすることができます。
http://svn.askeet.com/さぁどうぞ。チェックアウトしてください。
今日のコードはすでにコミットされていますから、release_day_1タグが見つかります:
$ svn co http://svn.askeet.com/tags/release_day_1/ askeet/
さて、既に1時間が経ちました。私たちは、たくさん話をしましたが、symfonyのアーリーアダプターには、何も新しいことを示しませんでした。 しかし、symfonyアドベントカレンダーの2日目に明らかにされるものを見てください:
その間、最新のaskeetニュースを受け取りたいなら、askeet mailing-listに加入するか、専用のフォーラムにてどうぞ。
また、きっと明日!
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 user mailing-list or to the forum.