Symfony 2和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选项设置方法是什么 根据要求,这里是我尝试

我一直在寻找在Symfony项目中设置常见PHP选项的最佳位置,有几次看到有人提到PHP.yml,但我发现这主要是在v1.x文档中,而在v2.x中没有提到它(或者至少我找不到它——Symfony搜索停止一段时间也没有帮助)

yml有很好的“设置”、“检查”和“警告”区域,您可以在这些区域微调配置

我试着把php.yml放在app/config中,并用一些选项来设置它,但它不起作用

Symfony 2中是否放弃了php.yml?如果是的话,下一个好的php选项设置方法是什么

根据要求,这里是我尝试过的php.yml的一个简单示例,它非常基本:

## 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 }