故障排除问题
故障排除问题
建立项目还需要使用正确的工具来调试问题。幸运的是,许多不错的助手已经包括在webapp
包中。
发现Symfony调试工具ob娱乐下载
首先,当您需要找到问题的根源时,Symob娱乐下载fony Profiler可以节省时间。
如果你看一下主页,你应该在屏幕底部看到一个工具栏:
你可能会注意到的第一件事是404红色的。记住,这个页面是一个占位符,因为我们还没有定义主页。即使欢迎你的默认页面很漂亮,它仍然是一个错误页面。所以正确的HTTP状态代码是404,而不是200。感谢web调试工具栏,你有信息马上。
如果单击小感叹号,就会在Symfony分析器的日志中得到“真正的”异常消息。ob娱乐下载如果您想查看堆栈跟踪,请单击左侧菜单上的“Exception”链接。
当你的代码出现问题时,你会看到一个如下所示的异常页面,它为你提供了所有你需要了解的问题及其来源:
花点时间浏览一下Symfony分析器内部的信息。ob娱乐下载
日志在调试会话时也非常有用。ob娱乐下载Symfony有一个方便的命令来跟踪所有的日志(从web服务器,PHP和你的应用程序):
1
$ob娱乐下载symfony服务器:日志
让我们做一个小实验。开放公共/ index . php
并中断那里的PHP代码(例如在代码中间添加foobar)。在浏览器中刷新页面,观察日志流:
1 2
12月21日10:04:59 |DEBUG| PHP PHP解析错误:语法错误,意外的'使用' (T_USE) in public/index.php on line 5 path="/usr/bin/php7.42" PHP ="7.42.0" 12月21日10:04:59 | error | SERVER GET (500) / ip="127.0.0.1"
输出的颜色很漂亮,可以让您注意错误。
理解Symfony环境ob娱乐下载
由于Symfoob娱乐下载ny Profiler只在开发期间有用,所以我们希望避免在生产环境中安装它。默认情况下,Symfonob娱乐下载y仅为dev
而且测验
环境。
ob娱乐下载Symfony支持的概念环境.默认情况下,它内置了三个支持,但你可以随心所欲地添加:dev
,刺激
,测验
.所有环境共享相同的代码,但它们表示不同的代码配置.
例如,所有调试工具都在dev
环境。在刺激
首先,应用程序针对性能进行了优化。
从一个环境切换到另一个环境可以通过更改APP_ENV
环境变量。
当您部署到Platform.sh时,环境(存储在APP_ENV
)自动切换至刺激
.
管理环境配置
APP_ENV
可以通过在终端中使用“真正的”环境变量来设置:
1
$出口APP_ENV = dev
使用实际环境变量是设置值的首选方法APP_ENV
在生产服务器上。但是在开发机器上,必须定义许多环境变量是很麻烦的。相反,在.env
文件。
一个明智的.env
当项目创建时自动为您生成文件:
提示
由于Symfony Flex使用的配方,任何包都可以向该文件添加更多环境变量。ob娱乐下载
的.env
文件提交到存储库,并描述默认的来自生产的价值。属性可以覆盖这些值.env.local
文件。这个文件不应该被提交,这就是为什么.gitignore
文件已经忽略了它。
不要在这些文件中存储机密或敏感值。我们将在另一个步骤中看到如何管理秘密。
配置IDE
在开发环境中,当抛出异常时,Symfony将显示带有异常消息及其堆栈跟踪的页面。ob娱乐下载当显示文件路径时,它会添加一个链接,在您最喜欢的IDE中的右行打开该文件。为了从这个特性中获益,您需要配置IDE。ob娱乐下载Symfony支持许多开箱即用的ide;我在这个项目中使用Visual Studio代码:
1 2 3 4 5 6 7
——/ php . ini+ + + b / php . ini@@ -6,3 +6,4 @@ max_execution_time=30会话。use_strict_mode=On realpath_cache_ttl=3600 zend.detect_unicode=Off+ xdebug.file_link_format = vscode: / /文件/ % f: % l
链接文件不限于异常。例如,配置IDE后,web调试工具栏中的控制器变成可单击的。
调试生产
调试生产服务器总是比较棘手。例如,您无法访问Symfony分析器。ob娱乐下载日志不那么冗长。但追踪日志是可能的:
1
$ob娱乐下载Syob直播appmfony云:原木——尾部
你甚至可以通过SSH在web容器上连接:
1
$ob娱乐下载syob直播appmfony云:ssh
别担心,你不可能轻易打破任何东西。文件系统的大部分是只读的。您将无法在生产中进行热修复。但是在书的后面你会学到更好的方法。