在Symfony中创建您的第一页ob娱乐下载

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.4,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

在Symfony中创建您的第一页ob娱乐下载

创建一个新页面——无论是HTML页面还是JSON端点——是一个两步过程:

  1. 创建路由:路由是URL(例如:/对)到你的页面并指向一个控制器;
  2. 创建控制器:控制器是您编写的构建页面的PHP函数。获取传入的请求信息并使用它来创建Symfonyob娱乐下载响应对象,它可以保存HTML内容,JSON字符串,甚至像图像或PDF这样的二进制文件。

截屏视频

你更喜欢视频教程吗?请查看Symfony的Stellar Developmeob娱乐下载nt视频系列。

另请参阅

ob娱乐下载拥抱HTTP请求-响应生命周期。要了解更多信息,请参见ob娱乐下载Symfony和HTTP基础

创建页面:路由和控制器

提示

在继续之前,请确保已阅读设置文章,并可以在浏览器中访问您的新Symfony应用程序。ob娱乐下载

假设您想创建一个页面-/幸运数字-生成一个幸运(嗯,随机)数字并打印出来。为此,创建一个“Controller”类,并在其中创建一个“Controller”方法:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?php/ / src /控制器/ LuckyController.php名称空间应用程序控制器使用ob娱乐下载组件HttpFoundation响应LuckyController公共函数数量()数量= random_int (0One hundred.);返回响应(' '数量' < /身体> < / html >”);}}

现在您需要将这个控制器函数与一个公共URL(例如:/幸运数字),以便数量()方法在用户浏览时调用。这种关联是通过创建路线配置/ routes.yaml文件:

1 2 3 4 5 6
#配置/ routes.yaml“app_lucky_number”路由名还不重要app_lucky_number:路径:/幸运数字控制器:控制器应用\ \ LuckyController:号码

就是这样!如果您正在使用Symfony weob娱乐下载b服务器,请通过转到:http://localhost:8000/lucky/number

如果你看到一个幸运数字被打印回来,恭喜你!但在你跑去买彩票之前,看看它是如何工作的。还记得创建页面的两个步骤吗?

  1. 创建控制器和方法:这是一个函数构建页面并最终返回响应对象。你会学到更多控制器在它们自己的部分,包括如何返回JSON响应;
  2. 创建路由:在配置/ routes.yaml,该路由定义到页面的URL (路径)和什么控制器打电话给。你会学到更多路由在自己的章节里,包括如何制作变量url。

注释的路线

与在YAML中定义路由不同,Symfony还允许您使用ob娱乐下载注释路线。要做到这一点,安装注释包:

1
作曲家需要注解

您现在可以直接添加您的路线以上控制器:

12 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Controller/LuckyController.php…+使用Symob娱乐下载fony\组件\路由\注释\路由;类LuckyController {+ / * *+ * @路径("/lucky/number")+ * /公共函数号(){//这看起来完全相同}}

就是这样!页面——http://localhost:8000/lucky/number会像以前一样工作!推荐使用标注的方式配置路由。

使用Symfony Flex自动安装食谱ob娱乐下载

你可能没注意到,但你跑的时候作曲家需要注解,发生了两件特别的事情,这都要归功于一个名为Flex

首先,注释不是真正的包名:它是别名(即快捷方式),Flex解析sensio赞助/ framework-extra-bundle

其次,下载这个包之后,Flex运行一个配方,这是一组自动指令,告诉Symfony如何集成外部包。ob娱乐下载Flex的食谱存在于许多包,并有能力做很多事情,如添加配置文件,创建目录,更新.gitignore并添加一个新的配置到您的.env文件。Flex自动化安装包,以便您可以继续编码。

bin/console命令

项目内部已经有一个功能强大的调试工具:bin /控制台命令。试着运行它:

1
php bin /控制台

您应该会看到一个命令列表,这些命令可以提供调试信息、帮助生成代码、生成数据库迁移等等。当您安装更多的包时,您将看到更多的命令。

来获得一份清单所有的路由,使用调试:路由器命令:

1
PHP bin/控制台调试:路由器

你应该看看你的app_lucky_number列表中的路由:

1 2 3 4 5
---------------- ------- ------- ----- -------------- 名方法方案主机的路径  ---------------- ------- ------- ----- -------------- app_lucky_number任何任何/幸运号码  ---------------- ------- ------- ----- --------------

此外,您还将看到调试路由app_lucky_number——下一节将详细介绍调试路由。

在继续学习的过程中,您将了解更多命令!

Web调试工具栏:调试梦想

Symfonyob娱乐下载的作品之一令人惊异的功能是Web调试工具栏:一个显示巨大的开发时页面底部的大量调试信息。这都包括在盒子外使用ob娱乐下载Symfony包被称为ob娱乐下载symfony / profiler-pack

您将在页面底部看到一个黑色的条。在此过程中,您将了解到更多关于它所包含的所有信息,但请随意进行实验:将鼠标悬停在上面并单击不同的图标,以获得关于路由、性能、日志记录等的信息。

渲染模板

如果从控制器返回HTML,则可能需要呈现模板。幸运的是,Symfony自ob娱乐下载带嫩枝:一种简洁、强大且有趣的模板语言。

安装树枝包:

1
作曲家需要树枝

确保LuckyController扩展了Symfoob娱乐下载ny的基础AbstractController类:

1 2 3 4 5 6 7 8 9 10
// src/Controller/LuckyController.php…使用Symfob娱乐下载ony\Bundle\FrameworkBundle\Controller\AbstractController;-类LuckyControllerLuckyController扩展了AbstractController{//…}

现在,用把手呈现()方法来呈现模板。传递给它一个数量变量,所以你可以在Twig中使用它:

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
/ / src /控制器/ LuckyController.php名称空间应用程序控制器使用ob娱乐下载组件HttpFoundation响应/ /……LuckyController扩展AbstractController/ * * *@Route(“/幸运数字”)* /公共函数数量()响应数量= random_int (0One hundred.);返回->呈现(“幸运/ number.html.twig”, [“数量”= >数量]);}}

模板文件存在于模板/目录,它是在你安装Twig时自动创建的。创建一个新的模板/幸运目录,使用新的number.html.twig内部文件:

1 2
{/幸运/ number.html #模板。树枝#}<h1>你的幸运数字是{{number}}h1>

{{number}}语法用于打印变量在Twig。刷新浏览器以获得您的幸运数字!

http://localhost:8000/lucky/number

现在你可能想知道Web调试工具栏去哪儿了:那是因为没有< /身体>标记。您可以自己添加body元素,或者进行扩展base.html.twig,其中包含所有默认的HTML元素。

模板在这篇文章中,你将学到关于Twig的所有知识:如何循环,渲染其他模板和利用其强大的布局继承系统。

检查项目结构

好消息!欧宝平台是合法的吗你已经在项目中最重要的目录中工作过了:

配置/
包含…配置!你会配置路由,服务和包。
src /
所有PHP代码都在这里。
模板/
你所有的Twig模板都在这里。

大多数时候,你会在src /模板/配置/.在继续阅读的过程中,您将了解到可以在每个容器中执行哪些操作。

那么项目中的其他目录呢?

bin /
著名的bin /控制台文件存在于此(以及其他不太重要的可执行文件)。
var /
这是自动创建的文件存储的地方,如缓存文件(var /缓存/)和日志(var / log /).
供应商/
第三方(即。“供应商”)图书馆住在这里!可以通过作曲家包管理器。
公共/
这是项目的文档根目录:您可以将任何公共可访问的文件放在这里。

当您安装新包时,需要时将自动创建新目录。

接下来是什么?

恭喜!您已经开始掌握Symfony,并学习了一种构建漂亮、功能强大、快速且ob娱乐下载可维护的应用程序的全新方法。

好了,是时候通过阅读这些文章来掌握基本知识了:

然后,学习其他重要的话题,如服务容器,形式系统,使用学说(如果您需要查询数据库)和更多!

玩得开心!

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。