成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Symfony4中文文檔: 創(chuàng)建你的第一個Symfony頁面

AlanKeene / 3000人閱讀

摘要:創(chuàng)建你的第一個頁面創(chuàng)建一個新頁面無論是頁面還是端點分為兩步創(chuàng)建一個路由路由是一個指向你的頁面比如同時它映射到一個控制器創(chuàng)建一個控制器控制器是你為了構(gòu)造頁面而寫的功能獲取傳入的請求信息并用它創(chuàng)建一個對象該對象可以包含內(nèi)容字符串甚至是圖像或

創(chuàng)建你的第一個Symfony頁面

創(chuàng)建一個新頁面 - 無論是HTML頁面還是JSON端點 - 分為兩步:

創(chuàng)建一個路由: 路由(route)是一個指向你的頁面URL(比如/about), 同時它映射到一個控制器.

創(chuàng)建一個控制器: 控制器(controller)是你為了構(gòu)造頁面而寫的功能. 獲取傳入的request請求信息并用它創(chuàng)建一個Symfony Response對象, 該對象可以包含HTML內(nèi)容, JSON字符串甚至是圖像或PDF等二進制文件.

創(chuàng)建一個頁面: 路由和控制器
在開始之前, 請確保你已經(jīng)閱讀安裝和配置Symfony章節(jié), 并可以在瀏覽器中訪問你的Symfony應(yīng)用程序.

假設(shè)你要新建一個 /lucky/number 頁面, 用于生成一個隨機的幸運數(shù)字并且輸出它. 為此,要先創(chuàng)建一個控制器類和控制器方法:

Lucky number: ".$number.""
        );
    }
}

現(xiàn)在, 你需要將此控制器功能與公共URL(例如: /lucky/number)相關(guān)聯(lián), 以便在用戶訪問此鏈接時執(zhí)行 number() 方法. 通過在 config/routes.yaml 文件中創(chuàng)建路由來定義此關(guān)聯(lián):

# config/routes.yaml

# the "app_lucky_number" route name is not important yet
app_lucky_number:
    path: /lucky/number
    controller: AppControllerLuckyController::number

就這樣, 如果你正在使用Symfony Web服務(wù), 可以嘗試訪問下:

http://localhost:8000/lucky/number

如果你看到幸運號碼被輸出到瀏覽器, 那么恭喜! 但是在你開始玩彩票之前, 先要了解它是如何運行的. 還記得創(chuàng)建頁面的兩個步驟嗎?

創(chuàng)建一個路由: 在 config/routes.yaml 文件中, 路由定義了URL到頁面的映射和要調(diào)用的控制器. 在本章節(jié)中你將會了解有關(guān)路由的更多信息, 包括如何創(chuàng)建變量URL.

創(chuàng)建一個控制器: 這是一個構(gòu)建并最終返回一個Response對象的功能, 在本章節(jié)中你將會了解有關(guān)控制器的更多信息, 包括如何返回JSON響應(yīng).

要更快的創(chuàng)建控制器, 可以讓 Symfony 來生成:

$ php bin/console make:controller
Annotation 路由

除了YAML, Symfony 允許使用annotation來定義路由. 為此, 請安裝annotation包:

$ composer require annotations

你可以直接在控制器上方添加路由:


就這樣, 頁面 - http://localhost/lucky/number 將像以前一樣工作! Annotations 是配置路由的推薦方法.

使用 Symfony Flex 自動安裝『食譜』

你可能沒有注意到, 但當你運行 composer require annotations 時, 發(fā)生了兩件特別的事情, 這要歸功于一個名為Flex的強大的Componser插件.

首先, annotations 不是一個真正的包名: 它是Flex解析為 sensio/framework-extra-bundle 的別名.

其次, 此軟件包被下載之后, Flex執(zhí)行一個『食譜』, 這是一組自動指令, 告訴Symfony如何繼承外部軟件包. Flex『食譜』適用于許多軟件包, 并且能夠做很多事情, 例如增加配置文件, 創(chuàng)建目錄, 更新.gitignore以及向.env文件添加新配置. Flex自動安裝軟件包, 以便于你能專注于編碼.

你可以通過閱讀 "Using Symfony Flex to Manage Symfony Applications"來了解有關(guān)Flex的更多信息. 但這不是必須的: 當你添加包時, Flex會在后臺自動運行.

bin/console 命令

你的項目已經(jīng)集成一個強大的調(diào)試工具: bin/console 命令. 嘗試運行一下:

$ php bin/console

你應(yīng)該可以看到一組命令列表, 可以為你提供調(diào)試信息, 幫助生成代碼, 生成數(shù)據(jù)庫遷移等. 當你安裝更多軟件包時, 你將看到更多命令.

要獲取你的系統(tǒng)中所有路由列表, 可以使用 debug:router 命令:

php bin/console debug:router

你可以在最頂端看到你的 app_lucky_number 路由:

Name Method Scheme Host Path
app_lucky_apinumber ANY ANY ANY /lucky/number

你還將在 app_lucky_number 之后看到調(diào)試路由 - 更多信息將在下一節(jié)中介紹.

Web調(diào)試工具欄: Debugging Dream

Web Debug Toolbar 是Symfony的殺手級工具之一: 在開發(fā)過程中大量調(diào)試信息輸出在頁面底部,便于調(diào)試. 安裝 symfony/profiler-pack 即可開箱即用.

安裝好后, 頁面底部會出現(xiàn)一個黑色工具條. 你將了解更多有關(guān)它所包含的所有信息, 并可自由嘗試: 鼠標懸停或點擊工具條上不同圖標即可獲取有關(guān)路由, 性能, 日志記錄等信息.

渲染模板

如果要從控制器返回HTML, 則可能需要渲染模板. 幸好, Symfony帶有Twig: 一個簡單,強大并且非常有趣的模板語言.

確保 LuckyController 繼承了Symfony的基礎(chǔ) AbstractController 類:

// src/Controller/LuckyController.php

// ...
+ use SymfonyBundleFrameworkBundleControllerAbstractController;

- class LuckyController
+ class LuckyController extends AbstractController
{
    // ...
}

現(xiàn)在, 使用簡便的 render() 函數(shù)來渲染模板. 傳遞一個數(shù)字變量, 以便于你可以在Twig中使用它:

// src/Controller/LuckyController.php

// ...
class LuckyController extends AbstractController
{
    /**
     * @Route("/lucky/number")
     */
    public function number()
    {
        $number = random_int(0, 100);

        return $this->render("lucky/number.html.twig", [
            "number" => $number,
        ]);
    }
}

模板文件存在于 templates/ 目錄中, 該目錄是在安裝Twig時自動創(chuàng)建的. 創(chuàng)建一個新目錄 templates/lucky , 在新目錄中創(chuàng)建模板文件 number.html.twig, 寫入內(nèi)容:

{# templates/lucky/number.html.twig #}

Your lucky number is {{ number }}

{{number}} 語法在Twig中用來打印變量. 刷新瀏覽器以獲取新的幸運數(shù)字.

http://localhost:8000/lucky/number

現(xiàn)在你可能擔心Web Debug工具去了哪里: 那是因為當前模板中沒有 標簽. 你可以自己添加body元素, 或者擴展 base.html.twig , 它包含所有默認的HTML元素.

在創(chuàng)建和使用模板章節(jié)中, 你將了解有關(guān)Twig的所有信息: 如何渲染, 渲染其他模板以及利用其強大的布局繼承系統(tǒng).

查看項目結(jié)構(gòu)

好消息! 你已經(jīng)在項目中最重要的目錄中工作:

config/

配置路由, 服務(wù)和包

src/

所有PHP代碼都在此處.

templates/

所有Twig模板文件都在此處.

大多數(shù)情況下, 你將在 src/, templates/config/ 中工作. 當你繼續(xù)閱讀時, 你將學(xué)習(xí)在每個目錄中可以做些什么.

那么項目中的其他目錄呢?

bin/

著名的 `bin/console` 文件存在于此 (以及其他不太重要的可執(zhí)行文件).

var/

這里存儲項目自動創(chuàng)建的文件, 如緩存文件 ( `var/cache/` ) 和 ( `var/log` ) .

vendor/

第三方 (即"vendor") 類庫都在這里! 這些是通過Composer包管理器下載的.

public/

這是項目的文檔根目錄: 你可以在此目錄放置任何可公開訪問的文件.

當你安裝新軟件包時, 將在需要時自動創(chuàng)建新目錄.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29704.html

相關(guān)文章

  • Symfony4中文文檔: 安裝和設(shè)置Symfony框架

    摘要:安裝和設(shè)置框架要創(chuàng)建新的應(yīng)用程序首先確保使用的是或更高版本并且已經(jīng)安裝如果未安裝請首先在系統(tǒng)上全局安裝如果你想使用虛擬機請查看通過運行以下命令來創(chuàng)建新項目這將創(chuàng)建一個新的目錄下載所需的依賴,甚至生成你所需的基本目錄和文件換句話說你的 安裝和設(shè)置Symfony框架 要創(chuàng)建新的Symfony應(yīng)用程序, 首先確保使用的是PHP7.1 或更高版本并且已經(jīng)安裝Componser. 如果未安裝, ...

    jsummer 評論0 收藏0
  • Symfony4中文文檔: 路由

    摘要:路由漂亮的是任何嚴謹?shù)膽?yīng)用程序所必須的這意味著像這樣丑陋的要被所取代具有靈活性更加重要如果你需要將更改為需要做些什么你需要搜索并更新多少鏈接才能做出這種改動如果你使用的是的路由更改將是很簡單的創(chuàng)建路由路由是從到控制器的映射假如你想要一個 路由 漂亮的URL是任何嚴謹?shù)腤eb應(yīng)用程序所必須的. 這意味著像 index.php?article_id=57 這樣丑陋的URL要被 /read/...

    everfight 評論0 收藏0
  • [譯]第三章 安裝和設(shè)置symfony(未完)

    摘要:安裝安裝器創(chuàng)建新應(yīng)用的唯一推薦方式就是使用安裝器。安裝器是安裝在你的系統(tǒng)里的一個應(yīng)用程序。安裝器需要及以上版本。如果您仍使用老舊的版本,你將不能使用安裝器。 原文鏈接 本章的目標是教導(dǎo)你建立一個運行在Symfony之上的應(yīng)用程序。為了簡化創(chuàng)建新應(yīng)用的步驟,Symfony提供了一個安裝程序。 安裝Symfony安裝器 創(chuàng)建新應(yīng)用的唯一推薦方式就是使用Symfony Installer(S...

    dcr309duan 評論0 收藏0
  • 轉(zhuǎn):從框架看PHP的五種境界及各自的薪資待遇

    摘要:語言行為及特征狀態(tài)看不懂任何英語技術(shù),英語文檔,凡事沒有培訓(xùn)部在搞的,只有英文文檔的東西國內(nèi)一律沒大公司在用,都非主流,排斥英文文檔和新技術(shù),以及各種超出他學(xué)習(xí)能力范圍的技術(shù)。 在撰寫此文前首先必須申明的是本人不鄙視任何一種框架,也無意于挑起PHP框架間的戰(zhàn)爭,更沒有貶低某個框架使用者的用意,本文純粹個人的看法。你可以認為我無知也好,或者裝逼也好,請不要試著在任何情況下,隨便發(fā)起言語的...

    Godtoy 評論0 收藏0
  • Linux 安裝 Symfony2.8

    摘要:環(huán)境說明操作系統(tǒng)安裝準備均使用安裝至少要有個的環(huán)境是少不了了安裝步驟下載官方命令工具創(chuàng)建項目這里執(zhí)行項目創(chuàng)建時,會從官網(wǎng)下載源碼包,執(zhí)行完后就能在當前目錄看到了這里我創(chuàng)建了一個新的項目叫,最后的不是項目名字中的是要下載指定的版本的源 環(huán)境說明 操作系統(tǒng) tony@ubuntu:~$ lsb_release -a No LSB modules are available. Distrib...

    Yang_River 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<