0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHPフレームワークFlow】Fluidを用いてHTMLのテンプレートを作成する

Last updated at Posted at 2024-05-16

初めに

Webアプリケーションを作成する際、ヘッダーやフッターなどは共通的な部品にしたいですよね。今回は、FlowのテンプレートエンジンであるFluidを用いた、HTMLのテンプレート作成方法を解説します。

テンプレート作成してみる

プロジェクト構成は以下です。

Project
  └ Packages/
      └ Application/
           ├ Neos.Welcome/
           |    └ Classes/
           |         └ Controller/
           |              └ LayoutTestController.php(★)
           |
           └ Resources/
                ├ Private/
                |    ├ Layouts/
                |    |  └ Default.html
                |    └ Templates/
                |         └ LayoutTest/
                |              └ index.html(★)
                └ Public/
                     └ Styles/
                          └ Default.css

1. 共通的なテンプレートを用意

以下のようなHTMLファイルを作りました。
ヘッダーとフッターを定義し、コンテンツは各HTMLファイルで作成するような作りです。

Default.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><f:render section="Title" /></title>
    <link rel="stylesheet" type="text/css" href="{f:uri.resource(path: 'Styles/Default.css')}">
</head>
<body>
    <header class="stylish-header">
        <h1>Header</h1>
    </header>

    <f:render section="Content" />

    <footer class="stylish-footer">
        <h2>Footer</h2>
    </footer>
</body>
</html>

ポイントは以下

  • HTMLをLayouts配下に作成する
  • 各ファイルで作成するコンテンツをf:renderタグで指定

Fluidのf:uri.resourceを用いることで、Resources/Public配下のコンテンツを参照することができます。

2. 各HTMLファイルでテンプレートを使用

各HTMLファイルは以下のようにしてテンプレートを呼び出します。

index.html
<f:layout name="Default.html" />

<f:section name="Title">
    タイトル
</f:section>

<f:section name="Content">
    <h1>コンテンツ</h1>
    <p>コンテンツの内容</p>
</f:section>

ポイントは以下

  • f:layoutタグで参照したいLayouts配下のファイルを指定
  • f:sectionタグでf:renderのファイルの内容を指定

こんな感じで、参照することができました。
image.png

テンプレートHTMLファイル内にf:renderタグが複数ある場合、全てf:sectionで紐づける必要があります。

終わりに

フロントエンドは経験が乏しく、苦手なイメージがあったのですが、テンプレートエンジンを使えば簡単に作ることができました。
Fluidは便利な機能がたくさんあるので、これからも活用していきたいです。

ここまで読んでいただきありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?