在Symfony中创建您的第一页ob娱乐下载
编辑本页在Symfony中创建您的第一页ob娱乐下载
创建一个新页面——无论是HTML页面还是JSON端点——是一个两步过程:
- 创建路由:路由是URL(例如:
/对
)到你的页面并指向一个控制器; - 创建控制器:控制器是您编写的构建页面的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 (0,One 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
如果你看到一个幸运数字被打印回来,恭喜你!但在你跑去买彩票之前,看看它是如何工作的。还记得创建页面的两个步骤吗?
注释的路线
与在YAML中定义路由不同,Symfony还允许您使用ob娱乐下载注释或属性路线。从PHP 8开始,属性是内置在PHP中的。在早期的PHP版本中,您可以使用注释。要做到这一点,安装注释包:
1
$作曲家需要注解
您现在可以直接添加您的路线以上控制器:
- 注释
- 属性
12 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src /控制器/ LuckyController.php/ /……+使用ob娱乐下载\组件\路由\注释\路线;类LuckyController{+/** + *@Route(“/幸运/数字”)+ */公共函数数量():响应{//这看起来完全一样}}
就是这样!页面——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
——下一节将详细介绍调试路由。
在继续学习的过程中,您将了解更多命令!
提示
如果您正在使用Bash shell,则可以设置补全支持。这将在使用时自动完成命令和其他输入bin /控制台
.看到控制台文档有关如何设置补全的详细信息。
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 (0,One hundred.);返回$这->呈现(“幸运/ number.html.twig”, (“数量”= >$数量]);}}
模板文件存在于模板/
目录,它是在你安装Twig时自动创建的。创建一个新的模板/幸运
目录,使用新的number.html.twig
内部文件:
1 2
{/幸运/ number.html #模板。树枝#}<h1>你的幸运数字是{{number}}h1>
的{{number}}
语法用于打印变量在Twig。刷新浏览器以获得您的新幸运数字!
现在你可能想知道Web调试工具栏去哪儿了:那是因为没有身体< / >
标记。您可以自己添加body元素,或者进行扩展base.html.twig
,其中包含所有默认的HTML元素。
在模板在这篇文章中,你将学到关于Twig的所有知识:如何循环,渲染其他模板和利用其强大的布局继承系统。
检查项目结构
好消息!欧宝平台是合法的吗你已经在项目中最重要的目录中工作过了:
-
配置/
- 包含…配置!你会配置路由,服务和包。
-
src /
- 所有PHP代码都在这里。
-
模板/
- 你所有的Twig模板都在这里。
大多数时候,你会在src /
,模板/
或配置/
.在继续阅读的过程中,您将了解到可以在每个容器中执行哪些操作。
那么项目中的其他目录呢?
-
bin /
-
著名的
bin /控制台
文件存在于此(以及其他不太重要的可执行文件)。 -
var /
-
这是自动创建的文件存储的地方,如缓存文件(
var /缓存/
)和日志(var / log /
). -
供应商/
- 第三方(即。“供应商”)图书馆住在这里!可以通过作曲家包管理器。
-
公共/
- 这是项目的文档根目录:您可以将任何公共可访问的文件放在这里。
当您安装新包时,需要时将自动创建新目录。