为什么属性请求/查询/属性/…在Symfony2中是公共的?
|
为什么不吸气剂?以及如何与封装原理结合使用?安全吗?
更新:
是的,我大约是
Request
。安全:我的意思是代码中的任何人(通过使用侦听器)都可以做$request->attributes = null;
没有找到相关结果
已邀请:
3 个回复
芭隘的盘石
当您需要确保属性具有特定的值或格式时,应强制执行封装。例如,假设您有一个带有cost属性的类,并且此属性永远不能为负。因此,如果成本属性是公共的,则可以通过执行“ 3”之类的操作将其设置为负值。但是,如果将其设为私有,并且该类的用户只能通过设置器进行设置,则可以通过在设置器代码中进行一些特殊的验证来确保成本永远不会低于0。 在我们的例子中,我们正在谈论一个收集对象,确切地说是一个ParameterBag对象。我认为对此对象没有特殊要求,但我可能是错的。因此,对我来说,通过公共属性访问那些属性是正确的。 我可以看到支持getter的主要论点是,它将与使用getter的框架的其他部分更加一致。但是,吸气剂可以与公共财产共存。 总而言之,我认为这种特殊情况是安全的。仅在似乎有益且正确的特殊情况下,才应使用公共财产。
暑袜眠退
撕吠