三愛企画ブログ

tanaka 1日目 プロジェクトスタート

前書き
symfonyフレームワークは オープンソースプロジェクトで3年以上ですげーポピュラーなPHPのフレームワークとなりました。
すぐれた機能と優れたドキュメントへ感謝したい。
2005年12月、 symfonyの最初の公式リリース直後に、”Askeet チュートリアル”が公開され、構成される24のチュートリアルは12月1日からクリスマスまで1日ごとに公開されたとさ。
このチュートリアルはフレームワーク初心者にプロモートにすごく有益なツールです。
たくさんのデベロッパーさんがsymfonyの学習をaskeetで行い感謝してるそうです。それと今でもたくさんの方々がaskeetをトレーニング資料として使用しているそうです。
symfony1.2のリリースを記念、それとアナザーな新しいチュートリアルの誕生です。
Jobeet 2008年チュートリアル開始!

チャレンジ!
それではもう一度。毎日 週末を含んで、新しいチュートリアルは公開されます。それぞれのチュートリアルは1時間でできることをを意味し、実サイトとして初めから最後までコーディングすることはsymfonyの学習する機会となるでしょう。
1時間の24は1日と同じ。そして、それはまさに、どれくらい長い間開発者が、symfonyの原理を学ぶ必要であると思うかということです。
毎日機能が追加され、symfonyの新機能について、できるだけ良い開発ができるように、私たちはこの開発を行います。
askeetの21日目は”get-a-symfony-guru-for-a-day”(どーゆー意味?)でした。案がなく、コミュニティーは、askeetに加えるべき特徴を提案しなければなりませんでした。コミュニチーはアプリケーションにサーチエンジンが必要と考えることができ そして、それが実装されました。そして21日のチュートリアルはaskeetでもっともポピュラーなチュートリアルとなりました。
冬の21日と”デザイン・デー”をJobeet記念とします。4日後に  Jobeetのパブリックなウェブサイトデザインあたり、全てのHTMLとCSSの情報が必要とされます。
なんで、デザイナーとお仕事をする場合や、デザイン部が会社にある場合、デザインを寄付することが可能です。21日に投票を開催しコミュニティーがデフォルトで使用されるデザインを選び、Jobeetにバンドルされます。あなたはクレジットと名声を得る事ができるでしょう!

このチュートリアルはいままでと異なります
初めのPHP4のころを思い出してください。 Ah, la Belle Epoque!(よーわからん)PHPは一番初めにwebに貢献した言語の一つであり、最も習得しやすい言語の一つでもあります。
webの技術は大変速いペースで進化し、web開発者に最新なプラクティスとツールを維持することが必要とされます。ベストな学習方法はプログ、チュートリアルそれと、本を読むことです。
サンプル作成時 PHP、Python、Java、RubyやPerlで書かれたコードを言語関係なく、私たちは解読しました。

あんたはたいてい下記のような警告を読んでるでしょう。
”実際のアプリで、バリデーションや、エラーハンドリング忘れるべからず”
とか、
”セキュリティー対策は読者の練習としてください”
とか、
”絶対にテストしてくれ”
これらのことはすごい重要です。これらは重要なコードの一つです。そんでこれは大抵そのままにしておかれます。
例にはたくさん有るけど使えなくこれらの問題は取り上げられていない。あんたは、はじめるにあたってそれらを使用しなくてもいいです。なぜって?セキュリティー、バリデーション、エラーハンドリング、テスト 正しいコードを書くようにすればいいです。
チュートリアルの中で、私たちはちゃんとしたエラーハンドリング、バリデーションコードを書くので、前の例は見ないでしょう。それはsymfonyがコードに関して、良い練習や、どうやってプロ級アプリの開発だからです。私たちはこのよい事を余裕ですることができる。なぜならsymfonyはコードで必要な全てのツールを持ち少ないコーディングで簡単にできる。バリデーション、エラーハンドリング、セキュリティー、テストはsymnfonyで最大項目です。なので、説明するのに時間を必要とさせません。これは実際のプロジェクトにてフレームワークが使われる たくさんの理由のひとつです。このチュートリアルで読む全てのコードは実際のプロジェクトで使えるかも。スニペットをコピーペーストやそのままコードをコピーすることで適当に楽してください。

プロジェクト
アプリケーションはもう一つのブログエンジンにデザインします。我々はsynfonyを使用し有用なプロジェクトにします。ゴールはデモンストレーションをしながらsymfonyを使用しプロフェッショナルな開発を取り組みます。
後日のためにプロジェクトのシークレットがありますが、今やることがたくさんあります。それはもう既に知っているJobeetです。

今日は何するか?
24時間はsymfonyで開発するのに十分な時間 今日はPHPコードを書かないです。ただ1つの1行を除いて。新しいプロジェクトを立ち上げたときにあんたはsymfonyのようなフレームワークを使う理由を理解と思うよ。
本日の議題は開発環境や、ブラウザでの表示をセットアップします。symfonyのインストール方法、アプリケーションの作成、サーバの設定を含みます。

必須条件
第一に、webサーバとweb開発環境が揃っていること(アパッチとか)、データベース(MySQL、PostgreSQL、SQLite))もな、それとPHP5.2.4よりもあたらしいやつ
コマンドラインをたくさん使うので、UNIXライクなOSがベター、でもウィンドウズでもOK。コマンドプロンプトを使用します。

UNIX shellコマンドはウィンドウズ環境で役立ちます。tar、gzip、grepコマンドをウィンドウズでつかえるならCygwin使うべき。オフィシャルな資料はわずかなので、ここで探してください。マイクロソフトウィンドウズサービスfor UNIXも挑戦していいかも。

このチュートリアルはsymfony フレームワークにフォーカスしています。既にPHP5やOOPを理解していると仮定している。

Symfonyのインストール
まず、Jobeetのプロジェクトディレクトリを作成する。

$ mkdir -p /home/sfprojects/jobeet
$ cd /home/sfprojects/jobeet


ウィンドウズ

c:\> mkdir c:\development\sfprojects\jobeet
c:\> cd c:\development\sfprojects\jobeet
ウィンドウズユーザーは新しいプロジェクト作成時パスにスペースを含めない。Documents and Settings やMy Documents下 ディレクトリを避けよう!

symfony フレームワークのライブラリーファイルを作成する。
$ mkdir -p lib/vendor
symfonyのインストールはsymfonyのサイトからパッケージを探しダウンロードします。このチュートリアルはsymfony1.2で書かれているので、最新のバージョンをダウンロードしてくれ。

“Source Download”の.tgz拡張子か、.zip拡張子を探してください。それをダウンロードして新しく作成したlib/vendorディレクトリの下に配置します。
$ cd lib/vendor
$ tar zxpf symfony-1.2-latest.tgz
$ mv symfony-1.2.0 symfony
ウィンドウズではエクスプローラで解凍できます。そんでディレクトリの名称をsymfonyに。こんな感じc:\development\sfprojects\jobeet\lib\vendor\symfony.
PHPの設定はディストリビューションにより多岐に分かれるんで、PHPの設定とsymfonyの最低限の設定を確認します。symfony付属の設定チェッカーをコマンドラインで立ち上げよう!
$ cd ../..
$ php lib/vendor/symfony/data/bin/check_configuration.php
問題があったら、解決方法が出ます。ブラウザでもチェックしてください。PHPの設定と異なるかも。ウェブサーバのルートディレクトリにあるファイルをコピーします。ウェブサーバのルートディレクトリにあるファイルは削除しないで。



エラーが出なかったら、インストールしたsymfonyのコマンドラインを使用しバージョンが表示します。(大文字のV)
$ php lib/vendor/symfony/data/bin/symfony -V
ウィンドウズ
c:\> cd ..\..
c:\> php lib\vendor\symfony\data\bin\symfony -V
このコマンドを知りたいなら、symfonyと打つと使用できるオプションとタスクがリストアップされる。
$ php lib/vendor/symfony/data/bin/symfony
ウィンドウズ
c:\> php lib\vendor\symfony\data\bin\symfony
symfonyコマンドラインは開発者の良い友。たくさんのユーティリティーが提供され、日々使われるキャッシュのクリア、コードの生成 他が生産性を高めます。

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

symfonyで、アプリケーションのモデルが組み合いプロジェクトに含まれます。Jobeetプロジェクトでは2つの異なるアプリケーションが使用されます。フロントエンドとバックエンド(askeetと同じじゃん)

プロジェクト作成

Jobeetディレクトリから、symfony generate:projectタスクを実行しプロジェクトの作成をします。
$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet
ウィンドウズ
c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet
generate:project タスクはsymfonyプロジェクトで必要なディレクトリやファイルが作成されます。
ディレクトリ 内容
apps/ サーバで提供される全てのプロジェクト
cache/ フレームワークで作成されるキャッシュファイル
config/ プロジェクトのコンフィグファイル
lib/ プロジェクトのライブラリとクラス群
log/ フレームワークのログファイル
plugins/ インストールされたプラグイン群
test/ ユニットとファンクションテスト
web/ web公開ディレクトリ(下記参照)
なぜ、symfonyは沢山のファイルを生成するのか? フルスタックのフレームワークを利用する主な理由は開発の標準化があります。
symfonyの標準ファイルやディレクトリ構造に感謝しましょう。symfonyプロジェクトのメンテナンスの際に開発者は引継ぎが出来ます。
ほんの数分でコーディング、バグフィックス、新しい機能拡張が行えるのです。

つづく

tanakaさんの投稿 | Published in 三愛企画ブログ