Changeset 25109
- Timestamp:
- 12/09/09 00:08:24 (3 years ago)
- Files:
-
- doc/branches/1.4/jobeet/ja/01.markdown (modified) (21 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
doc/branches/1.4/jobeet/ja/01.markdown
r24166 r25109 5 5 -------- 6 6 7 symfony~フレームワーク~は~オープンソース~プロジェクトとして3年間以上開発され、すばらしい機能とドキュメントのおかげで今ではもっとも人気のあるフレームワークの1つになりました。 8 9 この本は仕様から実装まで段階的にWebアプリケーションをsymfonyで作る方法を説明します。 10 この本はsymfonyを学び、これがどのように動くのか理解し、またWeb開発のベストプラクティスも学びたい初心者をターゲットとしてします。 11 12 アプリケーションを別のblogエンジンにする選択肢もありました。 13 しかし私たちは実用上のプロジェクトでsymfonyを使うことを望んでいます。 14 ゴールはスタイルと少しの労力でプロフェッショナルなアプリケーションを開発するために使えることを実証することです。 15 16 今日はすでにたくさんのやることがあるので別の日のプロジェクトの内容は秘密にしておきます。 17 しかしながら、プロジェクトの名前を教えます: **Jobeet**です。 18 19 この本のそれぞれの章は1時間から2時間かけることを想定しており、 20 最初から最後まで実際のWebサイトのコーディングをすることでsymfonyを学ぶ機会になります。 21 毎日、新しい機能がアプリケーションに追加され、symfonyのWeb開発と同様に新しいsymfonyの機能を紹介するためにこの開発を利用します。 7 symfony ~フレームワーク~は~オープンソース~プロジェクトとして3年間以上開発され、すばらしい機能とドキュメントのおかげで今ではもっとも人気のあるフレームワークの1つになりました。 8 9 この本は仕様から実装まで段階的に Web アプリケーションを symfony で作る方法を説明します。この本は symfony を学び、これがどのように動くのか理解し、また Web 開発のベストプラクティスも学びたい初心者をターゲットとしてします。 10 11 アプリケーションを別のブログエンジンにする選択肢もありました。しかし私たちは実際のプロジェクトで symfony を使うことを望んでいます。ゴールはスタイルと少しの労力でプロフェッショナルなアプリケーションを開発するために使えることを実証することです。 12 13 今日はすでにたくさんのやることがあるので別の日のプロジェクトの内容は秘密にしておきます。しかしながら、プロジェクトの名前を教えます: **Jobeet** です。 14 15 この本のそれぞれの章は1時間から2時間かけることを想定しており、最初から最後まで実際の Web サイトのコーディングをすることで symfony を学ぶ機会になります。毎日、新しい機能がアプリケーションに追加され、symfony の Web 開発と同様に新しい symfony の機能を紹介するためにこの開発を利用します。 22 16 23 17 チャレンジ 24 18 ---------- 25 19 26 チュートリアルの各章は約1時間ほどで終わる程度であり、実際のWebサイトを最初から最後までコーディングすることでsymfonyを学習します。 27 28 1日1時間24日で合計1日になります。 29 これはsymfonyの基本を学ぶために必要な時間であると私たちは考えています。 30 毎日、新しい機能がアプリケーションに追加され、symfonyのWeb開発のベストプラクティスと同時に新しい機能を紹介するためにこの開発プロセスを利用します。 31 32 askeetでは、21日目は「get-a-symfony-guru-for-a-day」でした。 33 私たちはノープランであり、コミュニティはaskeetに追加する要素を提案しなければなりませんでした。 34 21日目はすばらしい成功例であり、コミュニティはアプリケーションに検索エンジンを実装することが必要だと判断しました。 35 そして私たちは実装しました。 36 21日目のチュートリアルはaskeetチュートリアルの中でもっとも人気があります。 37 38 Jobeetでは、21日目に行われたデザインコンテストの優勝者を祝福しました。 39 優勝したデザインはcenter{source}によるもので、このチュートリアルのデフォルトのデザインとして使用しています。 40 また、実際のJobeetのWebサイトでもこのデザインが採用されています。 20 チュートリアルの各章は約1時間ほどで終わる程度であり、実際のWebサイトを最初から最後までコーディングすることで symfony を学習します。 21 22 1日1時間24日で合計1日になります。これは symfony の基本を学ぶために必要な時間であると私たちは考えています。毎日、新しい機能がアプリケーションに追加され、symfony の Web 開発のベストプラクティスと同時に新しい機能を紹介するためにこの開発プロセスを利用します。 23 24 askeet では、21日目は「get-a-symfony-guru-for-a-day」でした。私たちはノープランであり、コミュニティは askeet に追加する要素を提案しなければなりませんでした。21日目はすばらしい成功例であり、コミュニティはアプリケーションに検索エンジンを実装することが必要だと判断しました。そして私たちは実装しました。21日目のチュートリアルは askeet チュートリアルのなかでもっとも人気があります。 25 26 Jobeet では、21日目に行われたデザインコンテストの優勝者を祝福しました。優勝したデザインは center{source} によるもので、このチュートリアルのデフォルトのデザインとして使用しています。また、実際の Jobeet の Web サイトでもこのデザインが採用されています。 41 27 42 28 この本は一味違います 43 29 ------------------- 44 30 45 初期のころのPHP 4を覚えていますか? 46 [ベル・エポック(よき時代)](http://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E3%83%BB%E3%82%A8%E3%83%9D%E3%83%83%E3%82%AF)でした。 47 PHPはWeb専用でもっとも習得しやすい最初の言語の1つでした。 48 49 しかし、Webテクノロジーは早く進化し、Web開発者は最新のベストプラクティスとツールについてゆくことが必要になりました。 50 学ぶための最良の方法はブログやチュートリアルや書籍を読むことです。 51 私たちはPHP、Python、Java、Ruby、Perlで書かれたたくさんの資料を読んできましたが、筆者がコードスニペットの例を提供するときにこれらの多くは不十分でした。 31 初期のころの PHP 4 を覚えていますか? 32 [ベル・エポック(よき時代)](http://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E3%83%BB%E3%82%A8%E3%83%9D%E3%83%83%E3%82%AF)でした。PHP は Web 専用でもっとも習得しやすい最初の言語の1つでした。 33 34 しかし、Web テクノロジーは早く進化し、Web 開発者は最新のベストプラクティスとツールについてゆくことが必要になりました。 35 学ぶための最良の方法はブログやチュートリアルや書籍を読むことです。私たちは PHP、Python、Java、Ruby、Perl で書かれたたくさんの資料を読んできましたが、筆者がコードスニペットの例を提供するときにこれらの多くは不十分でした。 52 36 53 37 おそらく次のような注意書きを見たことがあるでしょう: … … 65 49 などです。 66 50 67 何ということでしょう。 68 これらは深刻な問題です。 69 これらはコードのもっとも重要な部分です。 70 それなのに読者は置き去りにされます。 71 これらの問題を考慮していないのであれば、サンプルコードは役に立ちませんし、よい出発点として使えません。 72 ひどいとは思いません? 73 セキュリティやバリデーションやエラーハンドリングやテストは2・3の例を挙げると、きちんとコーディングしなければならないからです。 74 75 この本では、「テスト、エラーハンドリング、バリデーションコードは後で書きます」、「セキュアなアプリケーションを開発してください」といった文は見ることはいっさいありません。 76 なぜならsymfonyはコードそのものであり、企業向けのプロフェッショナルなアプリケーションを開発するためのベストプラクティスおよび手段でもあるからです。 77 symfonyは多くのコードを書かずにこれらの面を簡単に実装するために必要なすべてのツールを提供するのでこのような豪華なことができます。 78 79 80 symfonyではバリデーションやエラーハンドリング、セキュリティ、テストは第一級の扱いを受けます。 81 ですので説明にそれほどの時間はかかりません。 82 この点が「日常生活の」プロジェクトとしてフレームワークが使われる多くの理由の1つとなっています。 83 84 この本で読むすべてのコードは実際のプロジェクトで使えます。 85 コードのスニペットをコピー&ペーストするもしくはコード全体を流用することを推奨します。 51 何ということでしょう。これらは深刻な問題です。これらはコードのもっとも重要な部分です。それなのに読者は置き去りにされます。これらの問題を考慮していないのであれば、サンプルコードは役に立ちませんし、よい出発点として使えません。ひどいとは思いません?セキュリティやバリデーションやエラーハンドリングやテストは2・3の例を挙げると、きちんとコーディングしなければならないからです。 52 53 この本では、「テスト、エラーハンドリング、バリデーションコードは後で書きます」、「セキュアなアプリケーションを開発してください」といった文は見ることはいっさいありません。なぜなら symfony はコードそのものであり、企業向けのプロフェッショナルなアプリケーションを開発するためのベストプラクティスおよび手段でもあるからです。symfony は多くのコードを書かずにこれらの面を簡単に実装するために必要なすべてのツールを提供するのでこのような豪華なことができます。 54 55 56 symfony ではバリデーションやエラーハンドリング、セキュリティ、テストは第一級の扱いを受けます。ですので説明にそれほどの時間はかかりません。この点が「日常生活の」プロジェクトとしてフレームワークが使われる多くの理由の1つとなっています。 57 58 この本で読むすべてのコードは実際のプロジェクトで使えます。コードのスニペットをコピー&ペーストするもしくはコード全体を流用することを推奨します。 86 59 87 60 プロジェクト 88 61 ------------ 89 62 90 設計するアプリケーションを別のblogエンジンにすることもできました。 91 しかし私たちはsymfonyを実用的なプロジェクトとして使うことを望んでいます。 92 symfonyがスタイルと少しの労力でプロ仕様のアプリケーションの開発に使えることを実証するのがゴールです。 93 94 今日は多くの作業があるので別の日のプロジェクトのコンテンツは秘密にしておきます。 95 でもアプリケーションの名前はもうご存知ですよね?: **Jobeet**です。 63 設計するアプリケーションを別のブログエンジンにすることもできました。しかし私たちは symfony を実用的なプロジェクトとして使うことを望んでいます。symfony がスタイルと少しの労力でプロ仕様のアプリケーションの開発に使えることを実証するのがゴールです。 64 65 今日は多くの作業があるので別の日のプロジェクトのコンテンツは秘密にしておきます。でもアプリケーションの名前はもうご存知ですよね?: **Jobeet**です。 96 66 97 67 今日は何を? 98 68 ----------- 99 69 100 今日はPHPコードを書きません。 101 しかし1行もコードを書かないにしても新規プロジェクトをブートストラップすることでsymfonyのようなフレームワークを使うことの利点を理解し始めるでしょう。 102 103 この章の目標は開発環境のセットアップとWebブラウザーでアプリケーションのページを表示させることです。 104 これらはsymfonyのインストールとアプリケーションの作成、Webサーバーの設定も含まれます。 105 106 この本は主にsymfonyフレームワークに焦点を当てるので、PHP 5とオブジェクト指向のプログラミングのきちんとした知識があることを前提とします。 70 今日は PHP コードを書きません。しかし1行もコードを書かないにしても新規プロジェクトをブートストラップすることで symfony のようなフレームワークを使うことの利点を理解し始めるでしょう。 71 72 この章の目標は開発環境のセットアップと Web ブラウザーでアプリケーションのページを表示させることです。これらは symfony のインストールとアプリケーションの作成、Web サーバーの設定も含まれます。 73 74 この本は主に symfony フレームワークに焦点を当てるので、PHP 5 とオブジェクト指向のプログラミングのきちんとした知識があることを前提とします。 107 75 108 76 前提条件 109 77 -------- 110 78 111 symfonyをインストールする前に、すべてのソフトウェアがコンピューターにインストールされ正しく設定されているか確認する必要があります。 112 この章は入念に読み、コンフィギュレーションを確認するために必須のすべての手順に従ってください。 113 将来の時間を節約することになるでしょう。 79 symfony をインストールする前に、すべてのソフトウェアがコンピューターにインストールされ正しく設定されているか確認する必要があります。この章は入念に読み、コンフィギュレーションを確認するために必須のすべての手順に従ってください。将来の時間を節約することになるでしょう。 114 80 115 81 ### サードパーティのソフトウェア 116 82 117 最初に、コンピューターにWeb開発にフレンドリーな作業環境があることを確認する必要があります。 118 最小要件として、Webサーバー(たとえばApache)、データベースエンジン(MySQL、PostgreSQL、SQLite、もしくは[PDO](http://www.php.net/PDO)と互換性のある任意のデータベースエンジン)、とバージョン5.2.4とそれ以降のPHPが必要です。 83 最初に、コンピューターに Web 開発にフレンドリーな作業環境があることを確認する必要があります。最小要件として、Web サーバー(たとえば Apache)、データベースエンジン(MySQL、PostgreSQL、SQLite、もしくは [PDO](http://www.php.net/PDO)と互換性のある任意のデータベースエンジン)、とバージョン5.2.4とそれ以降のPHPが必要です。 119 84 120 85 ### コマンドラインインターフェイス 121 86 122 symfonyフレームワークは多くの作業を自動化するコマンドツールを搭載しています。 123 Unix系OSのユーザーであるなら、快適に感じるでしょう。。 124 Windowsシステムを稼働させているのであれば、これまた立派に動きますが、`cmd`プロンプトでいくつかんコマンドを入力しなければなりません。 87 symfony フレームワークは多くの作業を自動化するコマンドツールを搭載しています。Unix 系 OS のユーザーであるなら、快適に感じるでしょう。Windows システムを稼働させているのであれば、これまた立派に動きますが、`cmd` プロンプトでいくつかコマンドを入力しなければなりません。 125 88 126 89 >**Note** 127 >UnixシェルのコマンドはWindows環境で重宝します。 128 >Windowsで`tar`、`gzip`もしくは`grep`のようなツールを使いたいなら、[Cygwin](http://cygwin.com/)をインストールします。 129 >冒険好きな人はMicrosoftの[Windows Services for Unix](http://technet.microsoft.com/en-gb/interopmigration/bb380242.aspx)を試すのもよいでしょう。 130 131 ### ~PHPのコンフィギュレーション~ 132 133 PHPのコンフィギュレーションはOSごと、Linuxディストリビューションごとでも異なるので、symfonyの最小要件を満たすことを確認する必要があります。 134 135 最初に、組み込みの`phpinfo()`関数を使うかコマンドラインで`php -v`を実行するかによって少なくともPHP 5.2.4がインストールされていることを確認してください。 136 コンフィギュレーションによっては、1つはコマンドラインのために、もう1つはWebのために異なるバージョンのPHPをインストールすることが必要になることに注意してください。 137 138 それから、次のURLからsymfonyのコンフィギュレーションチェッカースクリプトをダウンロードします: 90 >Unix シェルのコマンドは Windows 環境で重宝します。Windows で `tar`、`gzip` もしくは `grep` のようなツールを使いたいなら、[Cygwin](http://cygwin.com/) をインストールします。冒険好きな人は Microsoftの[Windows Services for Unix](http://technet.microsoft.com/en-gb/interopmigration/bb380242.aspx) を試すのもよいでしょう。 91 92 ### ~PHP のコンフィギュレーション~ 93 94 PHP のコンフィギュレーションは OS ごと、Linux ディストリビューションごとでも異なるので、symfony の最小要件を満たすことを確認する必要があります。 95 96 最初に、組み込みの `phpinfo()` 関数を使うかコマンドラインで `php -v` を実行するかによって少なくとも PHP 5.2.4 がインストールされていることを確認してください。コンフィギュレーションによっては、1つはコマンドラインのために、もう1つは Web のために異なるバージョンの PHP をインストールすることが必要になることに注意してください。 97 98 それから、次の URL から symfony のコンフィギュレーションチェッカースクリプトをダウンロードします: 139 99 140 100 http://sf-to.org/1.4/check.php 141 101 142 スクリプトは現在の Web公開ディレクトリのルートのどこかに保存してください。102 スクリプトは現在の Web 公開ディレクトリのルートのどこかに保存してください。 143 103 144 104 コマンドラインからコンフィギュレーションチェッカースクリプトを立ち上げます: … … 146 106 $ php check_configuration.php 147 107 148 PHPのコンフィギュレーションに問題がある場合、コマンドの出力は何を修正しどのように直すのかのためのヒントを示します。 149 150 またブラウザーからチェッカーを実行し見つかる問題を修正します。 151 これは異なる設定を持つ2つの環境に対して異なる`php.ini`設定ファイルがあるからです。 108 PHP のコンフィギュレーションに問題がある場合、コマンドの出力は何を修正しどのように直すのかのためのヒントを示します。 109 110 またブラウザーからチェッカーを実行し見つかる問題を修正します。これは異なる設定を持つ2つの環境に対して異なる `php.ini` 設定ファイルがあるからです。 152 111 153 112 >**NOTE** 154 >後で Web公開のルートディレクトリのチェッカーを削除するのをお忘れなく。155 156 symfony の~インストール~113 >後で Web 公開のルートディレクトリのチェッカーを削除するのをお忘れなく。 114 115 symfony の~インストール~ 157 116 ----------------------- 158 117 159 118 ### プロジェクトディレクトリを初期化する 160 119 161 symfony をインストールする前に、最初にJobeetに関連するファイルをすべて格納するディレクトリを作る必要があります:120 symfony をインストールする前に、最初に Jobeet に関連するファイルをすべて格納するディレクトリを作る必要があります: 162 121 163 122 $ mkdir -p /home/sfprojects/jobeet 164 123 $ cd /home/sfprojects/jobeet 165 124 166 Windows では次の通りです:125 Windows では次のとおりです: 167 126 168 127 c:\> mkdir c:\development\sfprojects\jobeet … … 170 129 171 130 >**NOTE**: 172 >Windowsユーザーの方はsymfonyの新しいプロジェクトをスペースが含まれないパスでセットアップすることをおすすめします。 173 >`My Documents`より下の場所を含めて`Documents and Settings`ディレクトリを使うのは避けるべきです。 131 >Windows ユーザーの方は symfony の新しいプロジェクトをスペースが含まれないパスでセットアップすることをおすすめします。`My Documents` より下の場所を含めて `Documents and Settings` ディレクトリを使うのは避けるべきです。 174 132 175 133 - 176 134 177 135 >**TIP** 178 >symfonyのプロジェクトディレクトリをWeb公開のルートディレクトリで作るのであれば、Webサーバーのコンフィギュレーションを修正する必要はありません。 179 >もちろん、運用環境では、Webサーバーのコンフィギュレーションのセクションで説明したように、サーバーのコンフィギュレーションを修正する必要があります。 180 181 ### symfonyのバージョンを選ぶ 182 183 では、symfonyをインストールします。 184 symfonyフレームワークにはいくつかの安定バージョンがあるので、symfonyの公式サイトの[インストールの手引きのページ](http://www.symfony-project.org/installation)を読んでインストールしたいバージョンを選ぶ必要があります。 185 186 この本ではsymfony 1.3もしくはsymfony 1.4をインストールすることを想定しています。 187 188 ### symfonyのインストール位置を選ぶ 189 190 symfonyをグローバルで利用できるようにインストールする、もしくはそれぞれのプロジェクトごとに組み込むことができます。 191 それぞれのプロジェクトは全体的に独立しているので後者がおすすめです。 192 ローカルでアップグレードすればインストールしたsymfonyが意図せずにいくつかのプロジェクトを壊すことはありません。 193 これは異なるバージョンのsymfonyで複数のプロジェクトを持ち、これらを1つづ適切にアップグレードできることを意味します。 194 195 ベストプラクティスとして、多くの人がsymfonyフレームワークをプロジェクトの`lib/vendor`ディレクトリにインストールします。ですので、最初にこのディレクトリを作ります: 136 >symfony のプロジェクトディレクトリを Web 公開のルートディレクトリで作るのであれば、Web サーバーのコンフィギュレーションを修正する必要はありません。もちろん、運用環境では、Web サーバーのコンフィギュレーションのセクションで説明したように、サーバーのコンフィギュレーションを修正する必要があります。 137 138 ### symfony のバージョンを選ぶ 139 140 では、symfony をインストールします。symfony フレームワークにはいくつかの安定バージョンがあるので、symfony の公式サイトの[インストールの手引きのページ](http://www.symfony-project.org/installation)を読んでインストールしたいバージョンを選ぶ必要があります。 141 142 この本では symfony 1.3 もしくは symfony 1.4 をインストールすることを想定しています。 143 144 ### symfony のインストール位置を選ぶ 145 146 symfony をグローバルで利用できるようにインストールする、もしくはそれぞれのプロジェクトごとに組み込むことができます。それぞれのプロジェクトは全体的に独立しているので後者がおすすめです。ローカルでアップグレードすればインストールした symfony が意図せずにいくつかのプロジェクトを壊すことはありません。これは異なるバージョンの symfony で複数のプロジェクトを持ち、これらを1つづ適切にアップグレードできることを意味します。 147 148 ベストプラクティスとして、多くの人が symfony フレームワークをプロジェクトの `lib/vendor` ディレクトリにインストールします。ですので、最初にこのディレクトリを作ります: 196 149 197 150 $ mkdir -p lib/vendor 198 151 199 ### symfony をインストールする152 ### symfony をインストールする 200 153 201 154 #### アーカイブからインストールする 202 155 203 symfonyをインストールするもっとも簡単な方法はsymfonyのWebサイトからバージョンを選んだバージョンのアーカイブをダウンロードすることです。 204 選んだバージョン、たとえばsymfony [1.4](http://www.symfony-project.org/installation/1_4)のインストールページに移動します。 205 206 "**Source Download**"のセクションの下で、`.tgz`もしくは`.zip`フォーマットのアーカイブが見つかります。 207 アーカイブをダウンロードし、新たに作られた`lib/vendor/`ディレクトリの下に置き、展開し、ディレクトリの名前を`symfony`に変更します: 156 symfony をインストールするもっとも簡単な方法は symfony の Web サイトからバージョンを選んだバージョンのアーカイブをダウンロードすることです。選んだバージョン、たとえば symfony [1.4](http://www.symfony-project.org/installation/1_4)のインストールページに移動します。 157 158 "**Source Download**" のセクションの下で、`.tgz` もしくは `.zip` フォーマットのアーカイブが見つかります。アーカイブをダウンロードし、新たに作られた `lib/vendor/` ディレクトリの下に置き、展開し、ディレクトリの名前を `symfony` に変更します: 208 159 209 160 $ cd lib/vendor … … 212 163 $ rm symfony-1.4.0.tgz 213 164 214 Windows環境ではzipファイルの展開はエクスプローラーで行います。 215 ディレクトリの名前を`symfony`に変更すると、`c:\dev\sfprojects\jobeet\lib\vendor\symfony`のような構造になります。 216 217 #### Subversionからインストールする(推奨) 218 219 Subversionを使うのであれば、プロジェクトの`lib/vendor/`ディレクトリに組み込むために`svn:externals`を使うのがよいです: 165 Windows 環境では zip ファイルの展開はエクスプローラーで行います。ディレクトリの名前を `symfony` に変更すると、`c:\dev\sfprojects\jobeet\lib\vendor\symfony` のような構造になります。 166 167 #### Subversion からインストールする(推奨) 168 169 Subversion を使うのであれば、プロジェクトの `lib/vendor/` ディレクトリに組み込むために `svn:externals` を使うのがよいです: 220 170 221 171 $ svn pe svn:externals lib/vendor/ 222 172 223 173 >**NOTE** 224 >プロジェクトを新しい Subversionリポジトリにインポートする方法はこの章の最後で説明します。225 226 すべてがうまくいっているのであれば、このコマンドは Subversionの外部ソースを設定する機会を提供する好みのエディターを走らせます。227 228 >**TIP** 229 >Windows では、コンソールを使わずにすべての作業ができる[TortoiseSVN](http://tortoisesvn.net/)のようなツールを使うことができます。230 231 慎重に利用するのであれば、プロジェクトを特定のリリースに結びつけます( subversionタグ):174 >プロジェクトを新しい Subversion リポジトリにインポートする方法はこの章の最後で説明します。 175 176 すべてがうまくいっているのであれば、このコマンドは Subversion の外部ソースを設定する機会を提供する好みのエディターを走らせます。 177 178 >**TIP** 179 >Windows では、コンソールを使わずにすべての作業ができる [TortoiseSVN](http://tortoisesvn.net/) のようなツールを使うことができます。 180 181 慎重に利用するのであれば、プロジェクトを特定のリリースに結びつけます(Subversion のタグ): 232 182 233 183 symfony http://svn.symfony-project.com/tags/RELEASE_1_4_0 234 184 235 新しいリリースが公開されるときに(symfony の公式236 [ blog](http://www.symfony-project.org/blog/)でアナウンスされるたびに)、URLを新しいバージョンに変更する必要があります。237 238 開発最先端の If you want to go the bleeding-edge route、1.4ブランチを使います:185 新しいリリースが公開されるときに(symfony の公式 186 [ブログ](http://www.symfony-project.org/blog/)でアナウンスされるたびに)、URL を新しいバージョンに変更する必要があります。 187 188 開発最先端のルートを使いたいのであれば、1.4ブランチを使います: 239 189 240 190 symfony http://svn.symfony-project.com/branches/1.4/ 241 191 242 Using the branch makes your project benefits from the bug fixes automatically 243 whenever you run a `svn update`. 244 245 #### Installation Verification 246 247 Now that symfony is installed, check that everything is working by using the 248 symfony command line to display the symfony version (note the capital `V`): 192 ブランチを使えばプロジェクトは `svn update` を使うことによる自動的なバグ修正の恩恵を得られます。 193 194 #### インストールの検証 195 196 symfony がインストールされたので、symfony のバージョンを表示する symfony コマンドラインを使ってすべてが動くのかチェックします(大文字の `V` であることに注意): 249 197 250 198 $ cd ../.. … … 256 204 c:\> php lib\vendor\symfony\data\bin\symfony -V 257 205 258 The `-V` option also displays the path to the symfony installation directory, 259 which is stored in `config/ProjectConfiguration.class.php`. 260 261 If the path to symfony is an absolute one (which should not be by default if 262 you follow the above instructions), change it so it reads like follows for 263 better portability: 206 `-V` オプションは symfony のインストールディレクトリへのパス、`config/ProjectConfiguration.class.php` も表示します。 207 208 symfony へのパスが絶対パスである場合(上記の手引きに従って入ればデフォルトではありません)、次のようなよりよいポータビリティのために変更します: 264 209 265 210 [php] … … 267 212 require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php'; 268 213 269 That way, you can move the project directory anywhere on your machine or 270 another one, and it will just work. 271 272 >**TIP** 273 >If you are curious about what this command line tool can do for you, type 274 >`symfony` to list the available options and tasks: 214 この方法では、プロジェクトディレクトリをあなたのマシンもしくは別のマシンの任意の場所に移動させても、きちんと動きます。 215 216 >**TIP** 217 >このコマンドラインツールができることに興味があれば、利用可能なオプションとタスクの一覧を表示する `symfony` を打ち込んでください: 275 218 > 276 219 > $ php lib/vendor/symfony/data/bin/symfony 277 220 > 278 > On Windows:221 >Windowsでは: 279 222 > 280 223 > c:\> php lib\vendor\symfony\data\bin\symfony 281 224 > 282 >The symfony command line is the developer's best friend. It provides a lot of 283 >utilities that improve your productivity for day-to-day activities like 284 >cleaning the cache, generating code, and much more. 225 >symfony コマンドラインツールは開発者の最良の友です。これはキャッシュの消去、コードの生成などの日々の活動の生産性を高めるたくさんのユーティリティを提供します。 285 226 286 227 プロジェクトのセットアップ 287 228 -------------------------- 288 229 289 In symfony, **~applications|Applications~** sharing the same data model are 290 regrouped into **~projects|Projects~**. For most projects, you will have two 291 different applications: a ~frontend|Frontend~ and a ~backend|Backend~. 230 symfony では、同じデータモデルを共有する**~アプリケーション~**は**~プロジェクト~**に再分類されます。たいていのプロジェクトでは、2つの異なるアプリケーション: ~frontend|Frontend~ と ~backend|Backend~ を用意します。 292 231 293 232 プロジェクトの作成 294 233 ------------------ 295 234 296 From the `sfprojects/jobeet` directory, run the symfony `generate:project` 297 task to actually create the symfony project: 235 `sfprojects/jobeet` ディレクトリから、実際の symfony プロジェクトを作成する `generate:project` タスクを実行します: 298 236 299 237 <doctrine> … … 304 242 </propel> 305 243 306 On Windows:244 Windowsでは: 307 245 308 246 <doctrine> … … 313 251 </propel> 314 252 315 The `generate:project` task generates the default structure of directories and 316 files needed for a symfony project: 253 `generate:project` タスクは symfony プロジェクトに必要なディレクトリとファイルのデフォルト構造を生成します: 317 254 318 255 | ディレクトリ | 説明 … … 325 262 | `plugins/` | インストールされたプラグイン 326 263 | `test/` | ユニットテストと機能テストのファイル 327 | `web/` | Web 公開ルートディレクトリ(下記を参照)264 | `web/` | Web 公開ルートディレクトリ(下記を参照) 328 265 329 266 >**NOTE** 330 >なぜsymfonyはたくさんのファイルを生成するのでしょうか? 331 >フルスタックフレームワークを使う主な利点の1つは開発作業を標準化することです。 332 >symfonyのファイルとディレクトリのデフォルト構造のおかげで、ある程度の知識がある開発者はsymfonyプロジェクトのメンテナンスを引き継ぎできます。 333 >ほんの数分で、引き継ぎ者はコードに飛び込むことが可能で、バグを修正し新しい機能を追加します。 334 335 タスクを実行するときに入力しなければならない文字数を短くするためにで`generate:project`タスクは`symfony`のショートカットをJobeetプロジェクトのルートディレクトリに作りました。 336 337 これからは、symfonyプログラムへのフルパスの代わりに`symfony`ショートカットを使います。 267 >なぜ symfony はたくさんのファイルを生成するのでしょうか?フルスタックフレームワークを使う主な利点の1つは開発作業を標準化することです。symfony のファイルとディレクトリのデフォルト構造のおかげで、ある程度の知識がある開発者は symfony プロジェクトのメンテナンスを引き継ぎできます。ほんの数分で、引き継ぎの人はコードに飛び込むことが可能で、バグを修正し新しい機能を追加します。 268 269 タスクを実行するときに入力しなければならない文字数を短くするために `generate:project` タスクは `symfony` のショートカットを Jobeet プロジェクトのルートディレクトリに作りました。 270 271 これからは、symfony プログラムへのフルパスの代わりに `symfony` ショートカットを使います。 338 272 339 273 ### アプリケーションの作成 340 274 341 今度は `generate:app`タスクを実行してfrontendアプリケーションを生成します。275 今度は `generate:app` タスクを実行して frontend アプリケーションを生成します。 342 276 343 277 $ symfony generate:app frontend 344 278 345 279 >**TIP** 346 >symfonyファイルが実行可能なので、Unixのユーザーはすべての'php symfony'を'./symfony'に置き換えできます。 347 >Windowsでは'symfony.bat'ファイルをプロジェクトにコピーして'php symfony'の代わりに'symfony'コマンドが使えます: 280 >symfony ファイルが実行可能なので、Unix のユーザーはすべての `php symfony` を `./symfony` に置き換えできます。Windows では `symfony.bat ` ファイルをプロジェクトにコピーして `php symfony` の代わりに `symfony` コマンドが使えます: 348 281 > 349 282 > c:\> copy lib\vendor\symfony\data\bin\symfony.bat . 350 283 351 プロジェクト生成と同じように、`generate:app` タスクはアプリケーションに必要なディレクトリを`apps/frontend/`ディレクトリ以下で生成します。284 プロジェクト生成と同じように、`generate:app` タスクはアプリケーションに必要なディレクトリを `apps/frontend/` ディレクトリ以下で生成します。 352 285 353 286 | ディレクトリ | 説明 … … 361 294 >セキュリティ 362 295 > 363 >By default, the `generate:app` task has secured our application from the two 364 >most widespread vulnerabilities found on the web. That's right, symfony 365 >automatically takes ~security|Security~ measures on our behalf. 366 > 367 >To prevent ~XSS~ attacks, output escaping has been enabled; and to prevent 368 >~CSRF~ attacks, a random CSRF secret has been generated. 369 > 370 >Of course, you can tweak these settings thanks to the following *options*: 371 > 372 > * `--escaping-strategy`: Enables or disables output escaping 373 > * `--csrf-secret`: Enables session tokens in forms 374 > 375 >[XSS](http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0)もしくは[CSRF](http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA)に関して何も知らなければ、これらの脆弱性について学ぶ時間を割いてください。 296 >デフォルトでは、`generate:app` タスクはで見つかるもっとも広く知られている2つの脆弱性からアプリケーションをセキュアにします。これで symfony は私たちに代わって自動的に ~セキュリティ~ を配慮します。 297 > 298 >~XSS~ 攻撃を阻止するために、出力エスケーピングが有効になり; ~CSRF~ 攻撃を阻止するために、CSRF 用のランダムな秘密の文字列が生成されました。 299 > 300 >もちろん、次の*オプション*のおかげでこれらの設定を調整できます: 301 > 302 > * `--escaping-strategy`: 出力エスケーピングを有効もしくは無効にする 303 > * `--csrf-secret`: フォームのセッショントークンを有功にする 304 > 305 >[XSS](http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0) もしくは [CSRF](http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%AA) に関して何も知らなければ、これらの脆弱性について学ぶ時間を割いてください。 376 306 377 307 378 308 ### ディレクトリ構造の権限 379 309 380 Before trying to access your newly created project, you need to set the write 381 permissions on the `cache/` and `log/` directories to the appropriate levels, 382 so that your web server can write to them: 310 新しく作成されたプロジェクトにアクセスする前に、Web サーバーが `cache/` と `log/` ディレクトリに書き込みできるよう、これらのディレクトリに適切な書き込み権限を設定する必要があります: 383 311 384 312 $ chmod 777 cache/ log/ … … 387 315 >SCMツールを使う方のための豆知識 388 316 > 389 >symfony only ever writes in two directories of a symfony project, 390 >`cache/` and `log/`. The content of these directories should be ignored 391 >by your SCM (by editing the `svn:ignore` property if you use Subversion 392 >for instance). 317 >symfony はプロジェクトの2つのディレクトリ、 `cache/` と `log/` のみに書き込みします。これらのディレクトリの内容は SCM によって無視されます(たとえば Subversion を使う場合 `svn:ignore` プロパティを編集する)。 393 318 394 319 ~Webサーバー~のコンフィギュレーション:好ましくないやり方 395 ---------------------------------------------- 396 397 If you have created the project directory it somewhere under the web root 398 directory of your web server, you can already access the project in a web 399 browser. 400 401 もちろん設定ファイルを編集しないので、迅速なセットアップができますが、`config/database.yml`にブラウザーから直接アクセスできるので手抜きの悪い結果を見ることになります。 402 Webサイトがsymfonyで開発されたことをユーザーが知っていたら、たくさんのデリケートなファイルにアクセスが可能となってしまします。 320 ------------------------------------------------------- 321 322 プロジェクトを Web サーバーの Web 公開ルートディレクトリのどこかで作成したのであれば。すでに Web ブラウザーでプロジェクトにアクセスできます。 323 324 もちろん設定ファイルを編集しないので、迅速なセットアップができますが、`config/database.yml` にブラウザーから直接アクセスできるので手抜きの悪い結果を見ることになります。Web サイトが symfony で開発されたことをユーザーが知っていたら、たくさんのデリケートなファイルにアクセスが可能となってしまします。 403 325 404 326 **運用サーバーでこのセットアップ方法は絶対に実行してはなりません。 405 327 **次の節を読んでWebサーバーの適切な設定方法を学んでください。 406 328 407 Webサーバーのセットアップ:セキュアな方法 408 ---------------------------------------- 409 410 Web開発のよい習慣はスタイルシート、JavaScript、もしくは画像のようなWebブラウザーがアクセスする必要のあるファイルだけを~Webのルートディレクトリ~の下に設置することです。 411 デフォルトでは、symfonyプロジェクトの`web`サブディレクトリにこれらのファイルを保存することをおすすめします。 412 413 If you have a look at this directory, you will find some sub-directories for 414 web ~assets|Assets~ (`css/` and `images/`) and the two front controller files. 415 The front controllers are the only PHP files that need to be under the web 416 root directory. All other PHP files can be hidden from the browser, which is a 417 good idea as far as ~security|Security~ is concerned. 418 419 ### Webサーバーのコンフィギュレーション 420 421 世界中から新しいプロジェクトにアクセスできるように~Apache~のコンフィギュレーションを変更しましょう。 422 423 `httpd.conf`設定ファイルを見つけて開き次のコンフィギュレーションを最後の行を追加します: 329 Web サーバーのセットアップ:セキュアな方法 330 ----------------------------------------- 331 332 Web 開発のよい習慣はスタイルシート、JavaScript、もしくは画像のようなWebブラウザーがアクセスする必要のあるファイルだけを~Web 公開ルートディレクトリ~の下に設置することです。デフォルトでは、symfony プロジェクトの `web` サブディレクトリにこれらのファイルを保存することをおすすめします。 333 334 このディレクトリを見てみると、Web ~アセット~ (`css/` と `images/`) と2つのフロントコントローラーファイル用のサブディレクトリが見つかります。フロントコントローラーは Web 公開のルートディレクトリの下に必要な唯一の PHP ファイルです。ほかのすべての PHP ファイルはブラウザーから隠すことが可能で、~セキュリティ~に関してよいアイディアです。 335 336 ### Web サーバーのコンフィギュレーション 337 338 世界中から新しいプロジェクトにアクセスできるように ~Apache~ のコンフィギュレーションを変更しましょう。 339 340 `httpd.conf` 設定ファイルを見つけて開き次のコンフィギュレーションを最後の行を追加します: 424 341 425 342 # Be sure to only have this line once in your configuration … … 445 362 446 363 >**NOTE** 447 >`/sf` ~エイリアス|エイリアス(Apache)~ gives you access to images and javascript files needed 448 >to properly display ~default symfony pages|Default symfony Pages~ and the ~web debug toolbar~|Web Debug Toolbar. 449 > 450 >On ~Windows~, you need to replace the `Alias` line with something like: 364 >`/sf` ~エイリアス|エイリアス(Apache)~ は~デフォルトの symfony ページ~と ~Web デバッグツールバー~を適切に表示するために必要な画像と JavaScript のファイルにアクセスできるようにします。 365 > 366 >~Windows~ では、`Alias` の行を次のようなものに置き換える必要があります: 451 367 > 452 368 > Alias /sf "c:\dev\sfprojects\jobeet\lib\vendor\symfony\data\web\sf" 453 369 > 454 > And `/home/sfprojects/jobeet/web` should be replaced with:370 >`/home/sfprojects/jobeet/web` は次のものに置き換えられます: 455 371 > 456 372 > c:\dev\sfprojects\jobeet\web 457 373 458 この設定によって Apacheはマシンのポート番号`8080`をリスニングするようになるので、Webサイトは次のURLからアクセスできるようになります:374 この設定によって Apache はマシンのポート番号`8080`をリスニングするようになるので、Web サイトは次の URL からアクセスできるようになります: 459 375 460 376 http://~localhost~:8080/ … … 465 381 >~ドメイン名~を設定する 466 382 > 467 >マシンの管理者であるなら、新しいプロジェクトを始めるたびに新しいポート番号を追加する代わりに~バーチャルホスト~をセットアップするほうがよいです。 468 >ポート番号を選ぶ代わりに`Listen`ステートメントを追加し、ドメイン名を選び`ServerName`ステートメントを追加します: 383 >マシンの管理者であるなら、新しいプロジェクトを始めるたびに新しいポート番号を追加する代わりに~バーチャルホスト~をセットアップするほうがよいです。ポート番号を選ぶ代わりに `Listen` ステートメントを追加し、ドメイン名を選び `ServerName` ステートメントを追加します: 469 384 > 470 385 > # This is the configuration for Jobeet … … 474 389 > </VirtualHost> 475 390 > 476 >ドメイン名の`jobeet.localhost`はローカルで宣言されなければなりません。 477 >Linuxシステムを稼働させているのであれば、`/etc/hosts`ファイルで行わなければなりません。 478 >Windows XPを稼働させているのであれば、このファイルは`C:\WINDOWS\system32\drivers\etc\`ディレクトリの中で見つかります。 391 >ドメイン名の `jobeet.localhost` はローカルで宣言されなければなりません。Linux システムを稼働させているのであれば、`/etc/hosts` ファイルで行わなければなりません。Windows XP を稼働させているのであれば、このファイルは `C:\WINDOWS\system32\drivers\etc\` ディレクトリのなかで見つかります。 479 392 > 480 393 >次の行を追加します: … … 484 397 ### 新しい設定をテストする 485 398 486 Apacheを再起動し、ブラウザーを開き`http://localhost:8080/index.php/`もしくは`http://jobeet.localhost/index.php/`を入力することで新しいアプリケーションにアクセスできるか確認します。 487 どちらのURLになるかは以前のセクションで選んだ設定によります。 399 Apache を再起動し、ブラウザーを開き `http://localhost:8080/index.php/` もしくは `http://jobeet.localhost/index.php/` を入力することで新しいアプリケーションにアクセスできるか確認します。どちらの URL になるかは以前のセクションで選んだ設定によります。 488 400 489 401  490 402 491 403 >**NOTE**: 492 >Apacheの~`mod_rewrite`|mod_rewrite(Apache)~モジュールをインストールした場合、URLの`index.php/`部分を取り除くことができます。 493 >これは`web/~.htaccess|.htaccess(Apache)~`ファイルで設定される書き換えルールのおかげで可能です。 494 495 開発環境のアプリケーションにもアクセスしてみることにします。 496 次のURLを入力します: 404 >Apache の ~`mod_rewrite`|mod_rewrite(Apache)~ モジュールをインストールした場合、URL の `index.php/` 部分を取り除くことができます。これは `web/~.htaccess|.htaccess(Apache)~` ファイルで設定される書き換えルールのおかげで可能です。 405 406 開発環境のアプリケーションにもアクセスしてみることにします。次の URL を入力します: 497 407 498 408 http://jobeet.localhost/frontend_dev.php/ 499 409 500 ~Web デバッグツールバー~は右上コーナーに表示され、小さなアイコンが含まれていれば`sf/`エイリアスの設定が正しいことがわかります。501 502 503 504 Web デバッグツールバーは 開発環境のすべてのページに存在し異なるタブにクリックすれば多くの情報: 現在のアプリケーションの設定、現在のリクエストのログ、データベースエンジンで実行されたSQLステートメント、メモリ情報、時間の情報が得られます。410 ~Web デバッグツールバー~は右上コーナーに表示され、小さなアイコンが含まれていれば`sf/`エイリアスの設定が正しいことがわかります。 411 412  413 414 Web デバッグツールバーは 開発環境のすべてのページに存在し異なるタブにクリックすれば多くの情報: 現在のアプリケーションの設定、現在のリクエストのログ、データベースエンジンで実行されたSQLステートメント、メモリ情報、時間の情報が得られます。 505 415 506 416 >**NOTE** 507 >Windows環境のIISサーバーでsymfonyを動かしたい場合セットアップ方法が少し異なります。 508 >[関連チュートリアル](http://www.symfony-project.org/cookbook/1_0/ja/web_server_iis)で設定する方法がわかります。 417 >Windows 環境の IIS サーバーで symfony を動かしたい場合セットアップ方法が少し異なります。[関連チュートリアル](http://www.symfony-project.org/cookbook/1_2/ja/web_server_iis)で設定する方法がわかります。 509 418 510 419 ~Subversion~ 511 420 ------------ 512 421 513 Webアプリケーションを開発するときにバージョン管理ツールを利用するのはよい習慣です。 514 バージョン管理ツールを利用することで次のことが可能になります: 422 Web アプリケーションを開発するときにバージョン管理ツールを利用するのはよい習慣です。バージョン管理ツールを利用することで次のことが可能になります: 515 423 516 424 * 安心して作業する … … 519 427 * 連続するすべてのバージョンのアプリケーションを入手できる 520 428 521 この節では、[Subversion](http://subversion.tigris.org/)の使い方を説明します。 522 別のソースコード管理ツールを利用しているのであれば、私たちがSubversionについて説明することを適用するのは簡単でしょう。 523 524 Subversionサーバーへの権限がありHTTPを通してアクセスできることを前提とします。 525 526 >**TIP** 527 >自由に使えるSubversionサーバーがなければ、無料の[Google Code](http://code.google.com/hosting/)で作成するかより多くの選択肢を探すためにGoogle検索で"free subversion repository"を入力して検索します。 528 529 最初に、リポジトリサーバーで`jobeet`プロジェクト用のリポジトリを作ります: 429 この節では、[Subversion](http://subversion.tigris.org/) の使い方を説明します。別のソースコード管理ツールを利用しているのであれば、私たちが Subversion について説明することを適用するのは簡単でしょう。 430 431 Subversion サーバーへの権限があり HTTP を通してアクセスできることを前提とします。 432 433 >**TIP** 434 >自由に使える Subversion サーバーがなければ、無料の [Google Code](http://code.google.com/hosting/) で作成するかより多くの選択肢を探すために Google 検索で "free subversion repository" を入力して検索します。 435 436 最初に、リポジトリサーバーで `jobeet` プロジェクト用のリポジトリを作ります: 530 437 531 438 $ svnadmin create /path/to/jobeet/repository … … 538 445 ➥ http://svn.example.com/jobeet/branches 539 446 540 そして空の `trunk/`ディレクトリをチェックアウトします:447 そして空の `trunk/` ディレクトリをチェックアウトします: 541 448 542 449 $ cd /home/sfprojects/jobeet 543 450 $ svn co http://svn.example.com/jobeet/trunk/ . 544 451 545 それから、`cache/` と`log/`ディレクトリをリポジトリに置きたくないのでこれらの内容を削除します。452 それから、`cache/` と `log/` ディレクトリをリポジトリに置きたくないのでこれらの内容を削除します。 546 453 547 454 $ rm -rf cache/* log/* 548 455 549 Web サーバーが書き込みできるようにcacheとlogディレクトリに適切なレベルの書き込み権限をかならず設定してください:456 Web サーバーが書き込みできるように `cache/` と `log/` ディレクトリに適切なレベルの書き込み権限をかならず設定してください: 550 457 551 458 $ chmod 777 cache/ log/ … … 555 462 $ svn add * 556 463 557 `cache/` と`/log`ディレクトリに設定されたファイルをコミットしたくないので、無視リストを指定する必要があります:464 `cache/` と `/log` ディレクトリに設定されたファイルをコミットしたくないので、無視リストを指定する必要があります: 558 465 559 466 $ svn propedit svn:ignore cache 560 467 561 SVN用に設定されたデフォルトのテキストエディターが起動します。 562 Subversionはこのディレクトリのすべての内容を無視しなければなりません: 468 SVN 用に設定されたデフォルトのテキストエディターが起動します。Subversion はこのディレクトリのすべての内容を無視しなければなりません: 563 469 564 470 * … … 566 472 保存して終了します。終わりました。 567 473 568 `log/` ディレクトリ用に手順を繰り返します:474 `log/` ディレクトリ用に手順を繰り返します: 569 475 570 476 $ svn propedit svn:ignore log … … 580 486 581 487 >**TIP** 582 >~Windows~ ユーザーはSubvresionのレポジトリを管理するためにすばらしい [TortoiseSVN](http://tortoisesvn.tigris.org/) クライアントを利用できます。488 >~Windows~ ユーザーは Subvresion のレポジトリを管理するためにすばらしい [TortoiseSVN](http://tortoisesvn.tigris.org/) クライアントを利用できます。 583 489 584 490 それではまた明日 585 491 ---------------- 586 492 587 はい、今日はここまでです! 588 symfonyについてまだ何も話していませんが、確固とした開発環境をセットアップし、Web開発のベストプラクティスを話し、コーディングを始める準備ができています。 589 590 明日は、アプリケーションが何を行うのかを明らかにしJobeetのために実装する必要のある要件を話します。 493 はい、今日はここまでです!symfony についてまだ何も話していませんが、確固とした開発環境をセットアップし、Web開発のベストプラクティスを話し、コーディングを始める準備ができています。 494 495 明日は、アプリケーションが何を行うのかを明らかにし Jobeet のために実装する必要のある要件を話します。 591 496 592 497 __ORM__