Symfony 2和php.yml配置
我一直在寻找在Symfony项目中设置常见PHP选项的最佳位置,有几次看到有人提到PHP.yml,但我发现这主要是在v1.x文档中,而在v2.x中没有提到它(或者至少我找不到它——Symfony搜索停止一段时间也没有帮助) yml有很好的“设置”、“检查”和“警告”区域,您可以在这些区域微调配置 我试着把php.yml放在app/config中,并用一些选项来设置它,但它不起作用 Symfony 2中是否放弃了php.yml?如果是的话,下一个好的php选项设置方法是什么 根据要求,这里是我尝试过的php.yml的一个简单示例,它非常基本:Symfony 2和php.yml配置,php,symfony,configuration,Php,Symfony,Configuration,我一直在寻找在Symfony项目中设置常见PHP选项的最佳位置,有几次看到有人提到PHP.yml,但我发现这主要是在v1.x文档中,而在v2.x中没有提到它(或者至少我找不到它——Symfony搜索停止一段时间也没有帮助) yml有很好的“设置”、“检查”和“警告”区域,您可以在这些区域微调配置 我试着把php.yml放在app/config中,并用一些选项来设置它,但它不起作用 Symfony 2中是否放弃了php.yml?如果是的话,下一个好的php选项设置方法是什么 根据要求,这里是我尝试
## YAML Template.
set:
display_errors: on
error_log: phperror.log
check:
warn:
编辑:关于我为什么放弃Matteo建议的解决方案的其他解释
当我这么做的时候,发生了一些奇怪的事情。我无法精确地指出
确切的原因是什么,所以我留下了它(我试图避免它发生时的所有不确定性)
来到Symfony是因为生命如此短暂)。
因此,我制作了“my_own_config.php”,其中只有一行:
ini_set("error_log", "c:/wamp/logs/phperror2.log");
在我的config_dev.yml中,我将它与-{resource:my_own_config.php}
在我的测试控制器中,我会打印
echo '<br>'.ini_get('error_log');
echo'
'.ini_get('error_log');
以确保真正应用并记住我的设置。最初,,
当我第一次加载测试页面时,它会真正记住并显示正确的新设置,但当我在它之后点击F5时
-它再次显示默认的系统日志。我一直在开发模式下运行。尝试了F5、硬刷新等功能,但后来的所有呼叫都已回拨
降到默认值
当我更改我自己的\u config.php文件并重新保存它时,我的自定义设置将是
记住了,在接下来的刷新中它就消失了。
因此,我得出结论,一些奇怪的Symfony缓存接管并覆盖了我的定制php配置文件,并放弃了这种方法
php.yml是一个Symfony1配置文件,不适合在Symfony2中使用 根据页面,app/config/config.yml适用于应用程序相关设置,而
app/config/parameters.yml.dist
(从中自动生成parameters.yml
)适用于基础设施相关设置
app/config中的标准Symfony2配置文件包括:
- config.yml
- config_dev.yml
- config_prod.yml
- config_test.yml
- parameters.yml(由parameters.yml.dist生成)
- parameters.yml.dist
- 路由.yml
- 路由_dev.yml
- security.yml
- 服务.yml
对于原始PHP配置设置,最好的位置是web/app_dev.PHP(用于开发)或web/app.PHP(用于生产),或者通过PHP.ini在系统范围内进行设置。然而,Symfony有自己的PHP错误处理服务。但是您仍然可以在app_dev.PHP文件put-error_reporting(E_ALL)的顶部打开PHP错误;ini设置(“显示错误”,1) 如果要更改某些外部框架设置,可以按照中所述组织设置,例如,可以将自定义设置放入如下文件中:
# app/config/my_settings.php
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
希望这有助于为了更好地理解您所需的配置,您可以发布您的
php.yml
文件吗?我实际上是这样做的,但我觉得这不对。:)我的意思是-这是可行的,但将实际的PHP代码(init命令)放入配置文件中似乎有点错误。我本来希望包含config.yml中的一些实际配置文件。我可能错了,只是看起来不对hi@userfuser我个人同意你。官方指南中提到了这种方法,我发现它对我听到的一些任务很有用。顺便说一句,我补充了一些关于我为什么放弃这种方法的数据(在最初的问题中)。我的情况就是这样,我不知道为什么。谢谢你清除了php.yml这个东西。我知道Symfony的配置文件(至少是文档中明确提到的那些文件),但我仍然不知道如何在这些文件中添加诸如:display_errors:off之类的内容(除了Matteo建议的方式,我尝试过但没有成功)对于原始PHP配置设置,最好的地方是web/app_dev.PHP(用于开发)或web/app.php(用于生产),或通过php.ini在系统范围内访问。然而,Symfony有自己的PHP错误处理服务。但是您仍然可以在app_dev.PHP文件put-error_reporting(E_ALL)的顶部打开PHP错误;ini设置(“显示错误”,1);如果您可以添加您的最后一条评论(使用app_dev.php)作为建议的答案,我会接受。这并不理想,但我同意。
# app/config/config.yml
imports:
- { resource: my_settings.php }