Symfonyのオートロード、ヘルパー、スタイルシートの読み込み
仕事で今使っているSymfonyなんですが、気軽に開発できて大好きなのですが、使い始めのころは、アクションとテンプレート辺りしか見えていなくて、「良いやり方があるんだろうなー」と思いながらも、工程に追われて力技で押し切っていました。
チュートリアルをきちんとやっていればそういうことも無かったのでしょうが、仕事なので、チュートリアルを悠然とやる余裕が無かったんですよね。まー言い訳なんですけどね。職業プログラマ的にはそういうことは多いのではないかとも思います。
で、最初の案件が落ち着いてから、きちんと調べてみたら、やはりイロイロ便利な機能が見つかりまして、少し損した気分を味わっておりますが、せっかくなので、ここに書き残しておきます。(あとでちゃんと整理する可能性ありますがとりあえず以下にまとめ書き)
lib/○○.class.php
: クラスのオートロード
プロジェクトディレクトリやアプリケーションディレクトリ、モジュールディレクトリの直下にlib
というフォルダを作ってPHPのクラスファイルを置いておくと、プログラム中でいきなりこのクラスを使用できます。
- プロジェクトの下 ―
/$(project)/lib/
- アプリケーションの下 ―
/$(project)/apps/$(app)/lib/
- モジュールの下 ―
$(project)/apps/$(app)/modules/$(module)/lib/
モジュールの中だけで使うクラスなら、モジュールの下にすればよいということですね。
余談ですけど、オートロードされるクラスの置き場所はSymfonyがキャッシュしています。ファイルの位置を移動した場合は、このキャッシュをクリアしなければ正しく動きません。Symfonyのキャッシュをクリアするにはプロジェクトディレクトリで php symfony cc[Enter]
とやります)
lib/helper/○○Helper.php
: ヘルパーの利用
Symfonyのヘルパーは複数のテンプレートから利用される関数をまとめたものです。
「○○」というヘルパーはlib/helper
の下の○○Helper.php
というphpファイルに記述します。
利用するテンプレートの先頭で、<?php use_helper('○○') ?>
とすれば、このテンプレートからヘルパーファイル内の関数を呼び出せるようになるわけです。
config/view.yml
: テンプレートごとにCSSを読み込む
モジュール直下の config ディレクトリに view.yml を作成して、テンプレート毎に使用するスタイルシートを定義できます。
foobarSuccess: stylesheets: [foo/bar.css, hogehoge.css]
上の定義では foobarアクションのテンプレートfoobarSuccess.php
では、/web/css/foo/bar.css
と/web/css/hogehoge.css
が読み込まれます。
検索パスは/web/cssなどで変更や追加も出来るようですが、基本的には/web/cssなどのようですね。
« いまさらだけど「ニンテンドー3DS」すごいね | トップページ | 【ACOR(エイカー)】AFD-21201 イノヴェイティブ リアフェンダー »
「プログラミング」カテゴリの記事
- 自分で書いたコードが大好き(2020.09.20)
- NPMのヨロコビ(2020.05.14)
- VanilaJS は必須科目(2019.02.25)
- MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース(2019.01.26)
- 戦々恐々GitHub vs BitBucket(2019.01.08)
「php」カテゴリの記事
- ワレキでググってビビった件(2012.03.02)
- [php] PHPExcelで幅と高さを指定して画像を貼り付ける(2012.02.28)
- [php] 日付演算 DateTime/DateIntervalのうるう年対応(2012.02.24)
- Twitterアプリを試作してみた(2012.02.15)
- PHPで「なんちゃって静的URL」(2012.02.10)
« いまさらだけど「ニンテンドー3DS」すごいね | トップページ | 【ACOR(エイカー)】AFD-21201 イノヴェイティブ リアフェンダー »
コメント