ob娱乐下载Symfony2:越来越简单
随着第一个测试版的发布越来越快,我们的主要关注点已经从添加新功能转向优化现有功能。
ob娱乐下载Symfony2有许多很棒的特性。但有时,配置感觉有点太复杂,或者错误消息不够友好。我们非常关心这些问题,因为这些问题会导致很多挫折。
最近,Ryan和我花了很多时间调整错误消息,简化代码和配置,添加更多的文档,并使整个框架更加一致。欧宝官网下载app我们的目标是简化学习曲线,让人们每天需要的事情变得更简单。
让我们来看一些到目前为止我们做过的例子。
更好的树枝错误消息
由于其简洁的语法和出色的自动输出转义功能,Twig非常节省时间。每次我需要编辑用PHP编写的“旧”模板时,我都很高兴这只是遗留代码(显然我不是唯一一个一个)
您可能遇到的一个问题是在模板编译或运行时出现问题。有时,异常消息不会提到原始模板名称,也不会提到发生问题的行;当然,PHP堆栈跟踪只有关于缓存的PHP文件的信息。这使得调试变得更加困难。这个问题最近已经“修复”了。现在,特威格非常努力硬以始终告诉您错误发生在原始模板文件中的何处。
与此完全无关的是,Twig现在也获得了本地支持PHPStorm.
更好的配置错误消息
我上面所描述的也适用于配置错误。这里,我们讨论的是配置文件(XML或YAML格式),而不是Twig模板。例如,如果在服务定义中使用未定义的参数,则会出现以下错误消息:
服务“%s”依赖于一个不存在的参数“foo”。
这是旧的:
您请求了一个不存在的参数“foo”。
新信息会立即告诉你需要寻找什么。
更简单的学说配置
大多数项目只使用一个数据库。但是Doctrine配置语法为需要管理多个数据库连接进行了“优化”。这使得配置变得冗长,难以理解,并且难以教授:
原则:dbal: connections: default: dbname: dbname user: root password: ~
到目前为止,如果你只需要一个数据库连接,你可以使用这个更简单的语法:
原则:dbal: dbname: sfweb用户:root密码:~
配置ORM也是一个难点,因为每次添加第三方包时,都必须记得将其添加到Doctrine映射配置中。如果您忘记了,就会出现一个错误,而这个错误并不能真正帮助您了解需要做什么来修复它。
如果你只使用一个实体管理器(这也是最常见的用例),你现在可以告诉Doctrine自动加载所有bundle的映射配置:
Orm: auto_mapping: true
为了记录,这里是“旧的”最小ORM配置:
orm: entity_managers: default: mappings: BlogBundle: ~
好消息是,在极少数欧宝平台是合法的吗需要多个数据库连接或多个实体管理器的情况下,您仍然可以退回到旧语法。
这篇文章实际上只是我们每天所做的事情的一个例子。好消息是,您可以帮欧宝平台是合法的吗助我们使框架变得更好。无论何时,当你因为错误信息不清楚,或者因为语法看起来很尴尬而碰壁时,请告诉我们;给Symfony的开发人员写一封电子邮件ob娱乐下载邮件列表我们将一起努力,让事情变得更好、更容易。预计未来几周还会有更多类似的变化。
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
谢谢
一个
也可能是一个计数器图像,显示错误发生了多少次,以收集框架中最容易出错的部分的汇总统计信息。
我意识到打字比实际操作要容易得多,但这可能会很有趣。
ob娱乐下载Symfony2现在非常灵活和强大。现在是时候针对常见用例进行优化了。
再接再厉!
请不要为了简化而删除任何功能。
是否有可能缩短Doctrine模式文件的位置?我为每个实体制作了这样的文件:
src / Mycompany / MyBundle /资源/ config /理论/元数据/ orm Mycompany.MyBundle.Entity.Orderset.dcm.yml”
但我说,“你是认真的吗?‘config/schema.yml’怎么了?”
我喜欢Larry Wall关于Perl的哲学——“让简单的事情变得简单,让困难的事情成为可能”。