SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

symfony入門

symfony入門(1):symfonyで始めるPHPフレームワーク

symfonyによる実践的なPHPアプリケーション開発


  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード sample.zip (794.0 B)

symfonyを使ってみよう(1/3)

 ではここから実際にsymfonyをインストールして、ごく簡単なアプリケーションを作成してみることにしましょう。

symfony利用のための環境構築設定

 symfonyにはsandboxという練習用環境まで用意されているのですが、今後実際にアプリケーションを作っていきますので、今回はこれを利用せず、一からインストールすることにしましょう。

sandbox
 sandboxはsymfonyの練習用環境として作られたファイルセットのアーカイブです。中身は空のプロジェクトで、symfonyでアプリケーションを作るのに必要なライブラリがすべて入っています(symfony、pake、creole、propel、phing)。一度ダウンロードして解凍すれば、設定などなしにすぐにsymfonyを使ったアプリケーションの作成を試すことができます。ただし、sandbox自体のアップデートはそれほど多くなく、あくまで「砂箱(sandbox)」的な位置付けとなっています。
 →ダウンロード先
 また、sandboxを使ったチュートリアルも公開されています。

 インストールはPEARを使うのが便利です。PEARを使わなくてもインストールは可能ですが(詳細な手順についてはsymfony book(後述)を参照してください)が、本稿ではよりシンプルなPEARを用いた手順に沿って解説します。

 Windows版PHP5.2.0でgo-pear.bat(正確にはgo-pear.phar)が破損しているという不具合があるようで、修正版go-pear.pharが出ています。

[1]symfonyをインストールする

 symfony本体のインストールは、コマンドプロンプトから以下の手順で行ってください。ここでは安定版の0.6.3ではなく、PHP5.2に正式対応しているベータ版の1.0.0-beta2をインストールします。

symfonyのインストール
> pear upgrade PEAR (PEARをアップグレード)
> pear channel-discover pear.symfony-project.com
  (symfonyのチャネルに接続)
> pear install symfony/symfony-beta (symfonyをインストール)
downloading symfony-1.0.0beta2.tgz ...
Starting to download symfony-1.0.0beta2.tgz (1,632,555 bytes)
......................................................................
......................................................................
......................................................................
......................................................................
.........................................done: 1,632,555 bytes
install ok: channel://pear.symfony-project.com/symfony-1.0.0beta2

 インストールの成否については、symfonyコマンドで確認が可能です。

インストールの確認
> symfony -V
symfony version 1.0.0-beta2

 上記のように、現在インストールされているsymfonyのバージョンが表示されれば、symfonyは正しくインストールされています。

 symfonyをインストールすると、依存関係にあるpakeが合わせてインストールされます。pakeとは、主にsymfonyコマンドが内部で使用しているプロジェクト管理ツールです(名前はrubyのrakeコマンドからきています)。「pakefile.php」という設定ファイルに従って、後述するプロジェクトやアプリケーション、モジュールの管理作業を自動化しています。実際面ではsymfonyコマンドを入力することでpakeが使用されます。ちなみに2006年12月27日現在では、

  • symfony 1.0.0-beta2
  • pake 1.1.4

 がインストールされます。実際はこれらと同時に、依存関係にあるcreole(データベースアクセス用ライブラリ)、propel(O/Rマッパー)がインストールされています。さらに0.6.3では必須にもかかわらず別個にインストールが必要だったphing(Javaで言うAntのようなもので、PHPアプリケーションのテストやアーカイブ化などを支援するツール)も、1.0.0-beta2では同時にインストールされるようになりました。

[2]symfony動作のための環境設定を行う(httpd.conf)

 次は、「httpd.conf」ファイル内の以下の記述をコメントインしてください。

LoadModule rewrite_module modules/mod_rewrite.so

 これによって後述するスマートURLに対応することができます。

symfonyのフォルダ構造

 これまでのインストールによってsymfonyのファイル群が次のとおりに配置されています(PEARが「c:\php\PEAR」にインストールされている場合)。

インストールされたsymfonyのフォルダ構造
フォルダ内容
c:\php\PEAR\symfonyメインライブラリ、実行ファイル
c:\php\PEAR\data\symfonyアプリケーション用スケルトン
c:\php\PEAR\doc\symfonyドキュメント
c:\php\PEAR\test\symfony単体テスト

 以上でsymfonyを利用するための準備は完了です。

symfonyで作るWebアプリケーションの構造について

 実際にアプリケーションを作成する前に、symfonyで作成するアプリケーションがどのような構造になっているのかをざっと見ておきましょう。

 symfonyでは、構築する一つのWebサイト全体を「プロジェクト」と名付けています。そしてその中に、サイトの中で特定の役割を果たす「アプリケーション」が一つ以上存在しています。さらに一つ一つのアプリケーションの中には「モジュール」が存在し、アプリケーションの個々の動作を担っています。図にすると、次のようになります。

symfonyアプリケーションの構造
symfonyアプリケーションの構造

 例としてプロジェクトにECサイトを想定すると、「商品管理」「商品購入」といったアプリケーションが存在し、さらに「商品購入」アプリケーションには「商品を検索/提示する」「購入手続きをとる」などのモジュールが存在するわけです。

 symfonyは、これらプロジェクト構築に必要なモジュールをコードジェネレーターで自動生成することができます。

次のページ
symfonyを使ってみよう(2/3)

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
symfony入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 川北 季(カワキタ ミノル)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/704 2007/01/09 18:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング