Symfonyに挑戦10「Jobeet 4日目」

4日目: コントローラとビュー
この回ではSymfonyのテンプレート機能を使って見た目を整えるみたいだ。

テンプレートの編集

コピペするコードは長いので書かない。

  1. jobeet/apps/frontend/templates/layout.phpを開いて編集。
  2. 画像ファイルをダウンロードしてjobeet/web/images/の中に入れる。
  3. スタイルシートをダウンロードしてjobeet/web/css/の中に入れる。main.cssがすでに存在しているけど上書き。
  4. Jobeetのファビコンをダウンロードしてjobeet/web/の中に入れる。
  5. http://jobeet.local/job/newとかにアクセス。

view.ymlの編集

読み込むCSSファイルの設定はテンプレートに記述することも出来るけど、view.ymlファイルに設定するのが普通みたいだ。
そしてモジュール毎にview.ymlを設置し、個別に読み込ませることもできるようだ。

  1. jobeet/apps/frontend/config/view.ymlにはmain.cssを記述(元々記述されている)
  2. jobeet/apps/frontend/modules/job/ディレクトリにconfigフォルダを作成
  3. jobeet/apps/frontend/modules/job/config/ディレクトリにview.ymlファイルを作成し、jobs.cssを読み込む設定を記述

各ページのアクションとテンプレートを編集

  1. トップページ:jobeet/apps/frontend/modules/job/templates/indexSuccess.phpを編集。
  2. Jobページ:jobeet/apps/frontend/modules/job/templates/showSuccess.phpを編集。
  3. Jobページのアクションを編集:jobeet/apps/frontend/modules/job/actions/actions.class.phpを編集。
  4. http://jobeet.local/job/show/id/1にアクセス。

「スロット」を使ってタイトル部分を動的に書き出す。

各ページのタイトルを各ページ毎に動的に書き出すために、スロットという機能を使う。

  1. jobeet/apps/frontend/templates/layout.phpを開いてタイトル部分を編集。
<title>
  <?php if (!include_slot('title')): ?>
    Jobeet - Your best job board
  <?php endif; ?>
</title>
  1. jobeet/apps/frontend/modules/job/templates/showSuccess.phpを開いて下記を一番上に追加。
<?php slot('title') ?>
  <?php echo sprintf('%s is looking for a %s', $job->getCompany(), $job->getPosition()) ?>
<?php end_slot(); ?>


今回はほとんどコピペだけでスムーズに進んだ。