Symfony2最佳实践混乱

时间:2015-04-19 02:52:52

标签: symfony

我正在阅读Symfony2的最佳实践,并对两件事情感到困惑:

1 - 注释用法 - 它表示对于Routing和Cache我们应该使用Annotations。但是,我更喜欢使用ORM和EX的注释。路由的验证和YAML(所有路由的单个文件)。这是一个不好的做法? http://symfony.com/doc/current/best_practices/controllers.html#routing-configuration

2 - 对于可重用的bundle(从未创建过),如果我希望包含任何JS库,比如jQuery,那么这不是一个好习惯吗?困惑。 http://symfony.com/doc/current/cookbook/bundles/best_practices.html#vendors

2 个答案:

答案 0 :(得分:2)

请注意,“最佳实践”并不意味着做出与建议不同的任何事情都是错误的。相反,如果你知道为什么要这样做,任何事情都是完美的。最佳实践指南旨在为初学者带走一些决定。他们已经很难学习框架,不得不做出决定,比如放置代码和使用哪种格式会让事情变得更加困难。

考虑到这一点,您提到的最佳实践的原因是:

  

1 - 注释用法 - 它表示对于Routing n Cache,我们应该使用Annotations。但是,我更喜欢使用ORM和EX的注释。路由的验证和YAML(所有路由的单个文件)。这是一个不好的做法? http://symfony.com/doc/current/best_practices/controllers.html#routing-configuration

拥有较少的文件可以更轻松地关注正在发生的事情。想象一下,有一个路线,控制器,一个实体和一些验证。这意味着必须了解以下位置:app/config/routing.ymlsrc/AppBundle/Controller/StaticController.phpsrc/AppBundle/Entity/SomeEntity.phpsrc/AppBundle/config/validation.ymlsrc/AppBundle/config/doctrine/SomeEntity.orm.yml。这是一个非常重要的名单,以获得familair。

如果Symfony建议对所有内容使用注释,最终会得到以下列表:src/AppBundle/Controller/StaticController.phpsrc/AppBundle/Entity/SomeEntity.php。这是一个很大的进步。这就是Symfony建议在您开始学习框架时使用注释的原因。如果你熟悉Symfony,你可能会做出自己的选择并决定你喜欢哪种格式以及你不喜欢哪种格式(有些人喜欢注释,有些人讨厌它们,喜欢XML或YAML)。

  

2 - 对于可重用的bundle(从未创建过),如果我希望包含任何JS库,比如jQuery,那么这不是一个好习惯吗?困惑。 http://symfony.com/doc/current/cookbook/bundles/best_practices.html#vendors

提交依赖项通常不是很好。出于这个原因,创建了Composer。对于前端依赖项,创建了Bower / BowerPHP。使用类似的东西意味着您的代码更容易分享。

当然,由于Symfony是一个后端框架,所以使用jQuery或任何你喜欢的库都是完美的。

答案 1 :(得分:1)

1.说:

  

让控制器扩展FrameworkBundle基本控制器,并尽可能使用注释来配置路由,缓存和安全性。

因为你有瘦控制器,你只能有路由&缓存和控制器中的安全性作为注释。

orm mapping&验证在控制器中的实体中

那说:

  

此外,使用注释进行路由,缓存和安全性可简化配置。您不需要浏览使用不同格式(YAML,XML,PHP)创建的数十个文件:所有配置都在您需要的位置,并且它只使用一种格式。

因为,路由&安全与安全缓存与控制器有关,但是orm mapping&验证是不同的,可以在其他地方使用(控制器,存储库,服务和...)

2

  

对于可重用的bundle(从未创建过),如果我希望包含任何JS库,比如JQuery,那么这不是一个好习惯

如果您将使用第三方捆绑包,那么您最好将依赖管理器用作编写器或bower。

请参阅sonata admin bundle这是一个很好的&将bower用于第三方捆绑包的大项目,如jquery,bootstrap& ...