[002] Symfony 4 創(chuàng)建頁(yè)面

使用 symfony/website-skeleton 初始化項(xiàng)目后, 現(xiàn)在來(lái)添加第一個(gè)自定義網(wǎng)頁(yè).

  • 添加快捷 Router 支持包. 使用 annotationsyaml 配置文件更方便.
leo@MacMini8:~/Documents/symfony/demo$ composer require annotations
  • 添加一個(gè)Hello 頁(yè)面Controller, 位于: src/Controller/FirstController.php
<?php
/**
 * src/Controller/FirstController.php
 */

// 命名空間 App 已經(jīng)在 composer.json 里已經(jīng)指向到 src 目錄.
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class FirstController
{
    /**
     * 通過(guò): http://127.0.0.1:8000/hello 訪問(wèn)此方法.
     * 
     * @Route("/hello", name="url_hello")
     */
    public function hi()
    {
        $name = 'Baby';

        return new Response(
            sprintf('<html><body>Hello: %s!</body></html>', $name)
        );
    }
}

使用 bin/console server:run 啟動(dòng)服務(wù)器, 瀏覽器打開(kāi): http://127.0.0.1:8000/hello 可以正常訪問(wèn)到 Hello: Baby!

QQ20190303-144016@2x.png
  • 創(chuàng)建新頁(yè)面, 使用視圖模板顯示頁(yè)面

創(chuàng)建一個(gè)視圖文件, 用默認(rèn)的 twig 模板引擎.

{# templates/hello/say.html.twig #}
{% extends 'base.html.twig' %}

{% block body %}
<h1>{{ name }} say: Hello!</h1>
{% endblock %}

修改 Controller, 增加一個(gè)新方法: say

//...
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class FirstController extends AbstractController
{
    /**
     * @Route("/say", name="url_say")
     */
    public function say()
    {
        $name = 'Baby';

        return $this->render(
            'hello/say.html.twig', //指定視圖模板在 templates 文件夾中的路徑
            ['name' => $name] // 模板中傳遞的數(shù)據(jù)
        );
    }
    //....
}

使用瀏覽器訪問(wèn): http://127.0.0.1:8000/say 頁(yè)面輸出正常.

QQ20190303-143848@2x.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容