我正在尝试将我们项目中的 symfony cmf 包从 v1.0 升级到 v1.1。
升级前的composer.json :
"doctrine/phpcr-odm": "1.1.0-RC1 as 1.0",
"doctrine/phpcr-bundle": "1.1.0-beta1 as 1.0",
"phpcr/phpcr-utils": "1.1.0 as 1.0",
"symfony-cmf/routing-auto-bundle": "1.0.*@alpha",
"symfony-cmf/menu-bundle": "1.0.*",
"symfony-cmf/block-bundle": "1.0.*",
"symfony-cmf/routing-bundle": "1.1.*",
"jackalope/jackalope-jackrabbit": "1.1.*",
"sonata-project/doctrine-phpcr-admin-bundle": "1.0.*",
升级后的composer.json :
"doctrine/phpcr-bundle": "1.1.*",
"doctrine/phpcr-odm": "1.1.*",
"symfony-cmf/routing-auto-bundle": "1.0.*@alpha",
"symfony-cmf/routing-bundle": "1.2.0 as 1.1.0",
"symfony-cmf/core-bundle": "1.1.0 as 1.0.0",
"symfony-cmf/menu-bundle": "1.1.*",
"symfony-cmf/block-bundle": "1.1.*",
"jackalope/jackalope-jackrabbit": "1.1.*",
"sonata-project/doctrine-phpcr-admin-bundle": "1.1.*",
如您所见,我在这两个地方都使用了作曲家别名,以便能够使用symfony-cmf/routing-auto-bundle。这种别名方法是我能够使用 symfony-cmf/routing-auto-bundle 的唯一方法。
因此,在使用上述更改进行作曲家更新后,我在项目的奏鸣曲管理区域中有一些失败的测试。通过进行一些调试,我看到了以下更改。
下面是我如何加载页面装置。
<?php // load Page fixtures
protected function create($dm, $class, $parent_path, $data_file)
{
$parent = $dm->find(null, $parent_path);
$data = $this->getData($data_file);
foreach ($data as $item)
{
$doc = new $class();
$doc->setParent($parent);
if (is_array($item['title'])) {
foreach ($item['title'] as $locale => $title) {
$doc = $this->createDoc($doc, $title, $item['body'][$locale], $locale);
$dm->persist($doc);
$dm->bindTranslation($doc, $locale);
}
} else {
$doc = $this->createDoc($doc, $item['title'], $item['body']);
$dm->persist($doc);
}
}
$dm->flush();
}
protected function createDoc($doc, $title, $body, $locale = 'en')
{
$doc->setTitle($title);
$doc->setContent($body);
$doc->setlocale($locale);
return $doc;
}
我的问题是:
我在我的装置中使用了 bindTranslation()方法。该方法在 cmf v1.1 中是否发生了变化?这就是我在管理界面中看不到字段的原因吗?(我没有使用 simple-cms-bundle 或 content-bundle。)
这与上述无关。我应该继续使用 RoutingAutoBundle 吗?(因为我在 SO 上没有看到很多关于它的问题。所以我想也许人们并没有太多使用它)
我很感激你能给我的关于在我们的项目中使用 cmf 包的任何建议。
顺便说一句:我还阅读了@lsmith77 对 1.1.0-RC1 的 github 问题更新,所以请不要指向我;)
请帮忙!如果您需要更多详细信息,我在这里。
谢谢你。