该模型
编辑该页面该模型
你决定继续读10分钟Symfony CMF呢?ob娱乐下载这是个好消息!欧宝平台是合法的吗在本部分中,您将学习更多关于的默认数据库层CMF。
请注意
再一次,这一章是讨论PHPCR存储层。但CMF写在一个存储无关的方式,这意味着它并不仅限于特定的存储系统。
熟悉PHPCR
PHPCR将所有数据存储到一个大的树结构。你可以比较这一个文件,每个文件和目录包含数据。这意味着所有的数据存储与PHPCR与至少一个其他数据:母公司。逆关系还存在,你也可以得到一个数据元素的孩子。
让我们看看树的转储的CMF沙箱下载在前面的章节。去你的目录并执行以下命令:
1
美元php bin /控制台学说:phpcr:节点:转储
结果将是PHPCR树:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
根:cms:菜单:主要:admin-item: projects-item: cmf-item: company-item: team-item:…内容:国内:phpcr_locale: en: phpcr_locale: fr: phpcr_locale:德:seoMetadata: additionalInfoBlock: child1:…路线:en:公司:团队:::……
每个数据被称为节点在PHPCR。一切都是附着在根节点(由PHPCR本身)。
每个节点都有属性,其中包含数据。内容,标题和标签等页面保存在您设置的属性家
节点。您可以查看这些属性添加——道具
切换到转储命令:
1
美元php bin /控制台学说:phpcr:节点:转储——道具/ cms /内容/ home
请注意
此前,PHPCR树与文件系统。虽然这给你一个好的形象会发生什么,这不是唯一的真理。你可以把它比作一个XML文件,每个节点都是一个元素及其属性的属性。
教义PHPCR-ODM
Symfob娱乐下载ony CMF使用教义PHPCR-ODM与PHPCR进行交互。教义允许用户创建对象(称为文档)直接保存到和从PHPCR检索树。这类似于默认提供的教义ORM Symfony标准版,但对于PHPCR而不是SQL数据库。ob娱乐下载
创建内容和代码
现在你知道一点关于PHPCR你知道与它交互的工具,您就可以开始使用它自己。在前一章,你编辑一个页面使用Yaml文件解析的夹具装载机沙箱。这一次,您将创建一个PHP代码页。
首先,您必须创建一个新的DataFixture添加新页面。这可以通过创建一个新的类AppBundle:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ / src / AppBundle DataFixtures / PHPCR / LoadQuickTourData.php名称空间AppBundle\DataFixtures\PHPCR;使用学说\常见的\持久性\ObjectManager;使用学说\常见的\DataFixtures\FixtureInterface;使用学说\常见的\DataFixtures\OrderedFixtureInterface;类LoadQuickTourData实现了FixtureInterface,OrderedFixtureInterface{公共函数getOrder(){/ /引用的顺序类的加载函数被调用/ /(较低的返回值被称为第一)返回One hundred.;}公共函数负载(ObjectManager美元documentManager){/ /您将添加代码,该方法在接下来的步骤}}
的documentManager美元
是对象,将持续PHPCR的文档。但是首先,你必须创建一个新页面文档:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用学说\ODM\PHPCR\DocumentManager;使用ob娱乐下载\Cmf\包\ContentBundle\学说\Phpcr\StaticContent;/ /……公共函数负载(ObjectManager美元documentManager){如果(!美元documentManager运算符DocumentManager) {扔新\ RuntimeException (sprintf (的夹具需要PHPCR ODM DocumentManager实例,实例“% s”。get_class (美元documentManager)));}美元内容=新StaticContent ();美元内容- >setName (“快速浏览”);/ /节点的名称美元内容- >setTitle (“快速浏览新页面”);美元内容- >setBody (“我这个页面添加了自己!”);}
每个文档需要父母。在这种情况下,家长应该根节点的内容。为此,我们首先从PHPCR检索文档的根,然后把它作为它的父类:
1 2 3 4 5 6 7
公共函数负载(ObjectManager美元documentManager){/ /……/ /获取根文档美元contentRoot=美元documentManager- >找到(零,' / cms /内容);美元内容- >setParentDocument (美元contentRoot);/ /设置父到根}
最后,我们必须告诉Document Manager使用原则坚持我们的内容文档API:
1 2 3 4 5 6
公共函数负载(ObjectManager美元documentManager){/ /……美元documentManager- >persist (美元内容);/ /告诉document manager跟踪的内容美元documentManager- >冲洗();/ /教条就像厕所:永远不要忘记冲水}
现在您需要执行原则:phpcr:夹具:负载
再次命令。当再次倾销节点,应该出现在你的新页面/ cms /内容/快速浏览
!
另请参阅
看到教义PHPCR-ODM如果你想知道更多关于使用PHPCR Symfony应用程序。ob娱乐下载