Symfonyに挑戦10「Jobeet 4日目」
4日目: コントローラとビュー。
この回ではSymfonyのテンプレート機能を使って見た目を整えるみたいだ。
テンプレートの編集
コピペするコードは長いので書かない。
- jobeet/apps/frontend/templates/layout.phpを開いて編集。
- 画像ファイルをダウンロードしてjobeet/web/images/の中に入れる。
- スタイルシートをダウンロードしてjobeet/web/css/の中に入れる。main.cssがすでに存在しているけど上書き。
- Jobeetのファビコンをダウンロードしてjobeet/web/の中に入れる。
- http://jobeet.local/job/newとかにアクセス。
view.ymlの編集
読み込むCSSファイルの設定はテンプレートに記述することも出来るけど、view.ymlファイルに設定するのが普通みたいだ。
そしてモジュール毎にview.ymlを設置し、個別に読み込ませることもできるようだ。
各ページのアクションとテンプレートを編集
- トップページ:jobeet/apps/frontend/modules/job/templates/indexSuccess.phpを編集。
- Jobページ:jobeet/apps/frontend/modules/job/templates/showSuccess.phpを編集。
- Jobページのアクションを編集:jobeet/apps/frontend/modules/job/actions/actions.class.phpを編集。
- http://jobeet.local/job/show/id/1にアクセス。
「スロット」を使ってタイトル部分を動的に書き出す。
各ページのタイトルを各ページ毎に動的に書き出すために、スロットという機能を使う。
- jobeet/apps/frontend/templates/layout.phpを開いてタイトル部分を編集。
<title> <?php if (!include_slot('title')): ?> Jobeet - Your best job board <?php endif; ?> </title>
- 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(); ?>
今回はほとんどコピペだけでスムーズに進んだ。