Skip to content

Latest commit

 

History

History
102 lines (67 loc) · 4.46 KB

14-next-step.markdown

File metadata and controls

102 lines (67 loc) · 4.46 KB

blogチュートリアル(14) まとめと応用

このチュートリアルをマスターできたら、次はどうしますか?

チュートリアルのプログラムを改良してみる

このチュートリアルのアプリケーションは非常にシンプルなので、いろいろと不足しています。 必要だと思う機能を追加してみてください。 例えば、以下のような機能が考えられます。

  • 各投稿データにカテゴリを追加
  • 投稿の削除画面や編集画面のURLで無効なIDが指定された場合のエラー処理
  • 投稿の一覧画面に検索機能を追加
  • 投稿の一覧画面にページング機能を追加

次のチュートリアルへ進んでみる

symfonyには、もう少し複雑で規模の大きなアプリケーションを扱うJobeetチュートリアルがあります。

Jobeetチュートリアルでは、symfonyのほぼすべての機能について学ぶことができます。

Symfonyについて、詳しく学んでみる

Symfonyについて学ぶには、上記Jobeetチュートリアルと合わせて、以下のドキュメントを読んでおくとよいでしょう。

  • Symfony完全ガイド 1.2(The Definitive Guide to symfony 1.2)
    Symfony 1.2時点でのドキュメントですが、Symfony 1.4でも根本の部分は共通していますので、十分に役立ちます。 Symfonyの基本をしっかり学ぶ事ができます。 入門者から中級者まで、一読をおすすめします。

チュートリアルをさらに理解するための補足

symfonyの理解を深めるために、本文では触れなかったsymfonyの機能についていくつか解説します。

symfonyのオートロード

symfonyでは、PHPのオートロード機能を利用して、ライブラリ内のクラスや自動生成されるモデルクラス、フォームクラスなどを、明示的にincludeやrequireすることなく利用できます。

この「オートロード対象」となるクラスの設定は、autoload.ymlという設定ファイルで設定でき、symfonyのデフォルトのオートロード設定は以下のファイルに記述されています。

(symfony)/lib/config/config/autoload.yml

このファイルの中身は以下のようになっています。

autoload:
  # project
  project:
    name:           project
    path:           %SF_LIB_DIR%
    recursive:      true
    exclude:        [model, symfony, vendor]

  project_model:
    name:           project model
    path:           %SF_LIB_DIR%/model
    recursive:      true

  # application
  application:
    name:           application
    path:           %SF_APP_LIB_DIR%
    recursive:      true

  modules:
    name:           module
    path:           %SF_APP_DIR%/modules/*/lib
    prefix:         1
    recursive:      true

つまり、以下のパスにあるクラスファイルは自動的にオートロード対象になります。

  • (プロジェクトルート)/lib ディレクトリ以下で、model、symfony、vendorという名前以外のディレクトリ内のファイル
  • (プロジェクトルート)/lib/model ディレクトリ以下のファイル
  • (プロジェクトルート)/apps/(アプリケーション)/lib ディレクトリ以下のファイル
  • (プロジェクトルート)/apps/(アプリケーション)/modules/*/lib ディレクトリ以下のファイル

上記以外のディレクトリをオートロード対象に追加したい場合は、プロジェクトやアプリケーションのconfigディレクトリにautoload.ymlファイルを作成し、追加したい設定を記述します。

autoload.ymlファイルの各項目については、The symfony Reference Book その他の設定ファイルを参照してください。

NOTE symfonyライブラリに含まれるクラス(Doctrine等も含む全て)は、autoload.ymlの設定に関わらず無条件にオートロード対象になっています。