在Symfony创建您的第一个页面欧宝娱乐app下载地址

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

在Symfony创建您的第一个页面欧宝娱乐app下载地址

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

  1. 创建一个路线(如:路线是URL。/对)页面,点一个控制器;
  2. 创建一个控制器:一个控制器是你编写的PHP函数构建的页面。你把传入的请求信息,并使用它来创建一个Symfony欧宝娱乐app下载地址响应对象,它可以容纳HTML内容,JSON字符串或二进制文件像一个图像或PDF。

截屏视频

你喜欢视频教程?检查Symfony的开发欧宝娱乐app下载地址视频系列。

另请参阅

欧宝娱乐app下载地址拥抱HTTP请求-响应生命周期。了解更多,明白了欧宝娱乐app下载地址Symfony和HTTP基本原理

创建一个页面:路线和控制器

提示

在继续之前,确保您已经阅读了设置篇文章,可以访问你的新Symfony应用程序在浏览器中。欧宝娱乐app下载地址

假设您希望创建一个页面/幸运数字生成一个幸运(随机)并打印数量。为此,创建一个“控制器”类和“控制器”方法里面:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
< ? php/ / src /控制器/ LuckyController.php名称空间应用程序\控制器;使用欧宝娱乐app下载地址\组件\HttpFoundation\响应;LuckyController{公共函数数量():响应{美元数量= random_int (0,One hundred.);返回响应(“< html > <身体>的幸运数字:美元数量“< /身体> < / html >”);}}

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

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

就是这样!如果您正在使用Symfony we欧宝娱乐app下载地址b服务器,要试一下:http://localhost: 8000 /幸运号码

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

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

注释的路线

而不是在YAML定义你的路线,Symfony还允许您使用欧宝娱乐app下载地址注释路线。要做到这一点,注释安装包:

1
美元作曲家需要注释

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src /控制器/ LuckyController.php/ /……+使用Sym欧宝娱乐app下载地址fony \组件\路由\注释\路线;类LuckyController {+ / * *+ * @Route(“/幸运数字”)+ * /公共函数数量(){/ /这看起来完全相同的}}

就是这样!页面- - - - - -http://localhost: 8000 /幸运号码将工作之前完全一样!注释是推荐的方式来配置路线。

用Symfony Flex Auto-Installing欧宝娱乐app下载地址食谱

你可能没有注意到,但是当你跑作曲家需要注释两个特殊的事情发生了,由于强大的作曲家插件Flex

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

第二,这个包下载后,Flex运行配方,这是一套自动化的指令,告诉Symfony如何整合外部包。欧宝娱乐app下载地址Flex的食谱存在许多包和有能力做很多,比如添加配置文件,创建目录,更新.gitignore和添加新的配置.env文件。Flex自动化的安装包,这样你就可以回到编码。

bin /控制台命令

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

1
美元php bin /控制台

您应该看到一个命令列表,可以给你调试信息,帮助生成代码,生成数据库迁移和更多。当你安装更多的包,你会看到更多的命令。

得到的列表所有路线在你系统的使用调试:路由器命令:

1
美元php bin /控制台调试:路由器

您应该看到你app_lucky_number路线列表中:

的名字 方法 计划 主机 路径
app_lucky_number 任何 任何 任何 /幸运数字

您还将看到除了调试路线app_lucky_number——更多的调试在下一节路线。

你将了解更多的命令继续!

Web调试工具栏:调试的梦想

Symfony欧宝娱乐app下载地址的一个令人惊异的特点是Web调试工具栏:显示一个酒吧巨大的调试信息的页面的底部而发展。这是所有包括开箱即用的使用欧宝娱乐app下载地址Symfony包被称为欧宝娱乐app下载地址symfony / profiler-pack

您将看到一个昏暗的酒吧在页面的底部。你会了解更多关于它的所有信息,但随意实验:上空盘旋,然后单击不同的图标来获得路由信息,性能,日志等等。

呈现一个模板

如果你从控制器返回的HTML,您可能需要提供一个模板。幸运的是,Symfony提欧宝娱乐app下载地址供了嫩枝:一个最小的模板语言,强大的和非常有趣。

安装树枝包:

1
美元作曲家要求树枝

确保LuckyController扩展Symfon欧宝娱乐app下载地址y的基地AbstractController类:

1 2 3 4 5 6 7 8 9 10
/ / src /控制器/ LuckyController.php/ /……+使用控制器欧宝娱乐app下载地址Symfony \包\ FrameworkBundle \ \ AbstractController;——类LuckyController+类LuckyController AbstractController延伸{/ /……}

现在,使用方便呈现()方法来呈现一个模板。通过一个数量变量,所以你可以使用它在树枝:

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

住在模板文件模板/目录,创建时自动安装的树枝。创建一个新的模板/幸运与一个新的目录number.html.twig内部文件:

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

{{号码}}语法是用来打印变量在树枝。让你刷新浏览器幸运数字!

http://localhost: 8000 /幸运号码

现在你可能想知道Web调试工具栏已经:因为没有< /身体>标签在当前的模板。你可以自己添加body元素,或者扩展base.html.twig,其中包含所有默认的HTML元素。

模板篇文章中,您将了解所有树枝:如何循环,使其他模板,利用其强大的布局的产业系统。

检查项目结构

好消息!欧宝app在哪里找你已经工作在最重要的目录在您的项目:

配置/
包含…配置!您将配置路线,服务和包。
src /
住在这里你所有的PHP代码。
模板/
住在这里你所有的树枝模板。

大多数时候,你会在src /,模板/配置/。当你继续阅读,你会学到什么可以做这些。

所以在项目的其他目录呢?

bin /
著名的bin /控制台住在这里的文件(和其他不那么重要的可执行文件)。
var /
这就是自动创建文件存储,比如缓存文件(var /缓存/)和日志(var / log /)。
供应商/
第三方(即。“供应商”)库住在这里!这些都是通过下载作曲家包管理器。
公共/
这是为您的项目文档根:你把任何公开文件。

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

接下来是什么?

恭喜!你已经开始掌握Symfony和学习一种全新的方式建设美丽、功能、快速欧宝娱乐app下载地址、可维护的应用程序。

好的,时间完成掌握基本面通过阅读这些文章:

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

玩得开心!

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。