我找到了一个关于java背景下的包的正确答案:What is meant by the term "bag"?
我进行了谷歌搜索,发现Symfony提供了许多不同的“包”界面,如下所示:
http://api.symfony.com/2.3/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.html
在symfony中,术语包是否被解释为同样的方式?另外,这与“容器”或“集合”有何不同。
答案 0 :(得分:9)
bag (对象的名称为ParameterBag
)包含变量或参数。
集合包含元素列表(将其视为array
的面向对象版本,其中包含许多用于操作值的有用方法)。该对象来自the Doctrine framework。 Symfony也有Collection的概念,并解释in its documentation。
Container包含所有类型的对象,其its own ParameterBag object的参数从配置文件的parameters
键中的任何内容加载。
Request对象($this->container->get('request')
)也有its own ParameterBag。
代码方面,Container的参数包和Request的参数包是不同的,可能有不同的方法,但它们的目标是相同的。
答案 1 :(得分:1)
bag
是ParameterBag
的缩写。 bag是用于帮助存储数据的数据类型,类似于java中的集合。一个包特别可以通过Dagon指出的键/值访问值,但也有其他有用的操作。
行李的公开操作包括:clear
,add
,all
,get
,set
,has
,{{1 },remove
,resolve
,resolveValue
,resolveString
,isResolved
和escapeValue
。
如果您想详细了解行李的操作,可以在此处执行此操作:https://github.com/symfony/symfony/blob/master/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php