2014-05-21 92 views
0

我試圖在我們的項目中將symfony cmf捆綁軟件從v1.0升級到v1.1。Symfony cmf 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; 
    } 

我的問題是:

  1. 我已經使用bindTranslation()方法在我的燈具。該方法在 cmf v1.1中有變化嗎?這就是爲什麼我無法看到管理界面中的字段? (我沒有使用simple-cms-bundle或content-bundle。)

  2. 這與上面沒有關係。我應該繼續使用 RoutingAutoBundle嗎? (因爲我沒有看到SO太多問題。 所以我想也許人們不使用它了)

我明白任何種類的建議,你可以給我關於我們的項目採用CMF束。

BTW:我也通過@閱讀GitHub的問題更新到1.1.0-RC1 lsmith77所以請不要指向我;)

請幫幫忙!如果您需要更多詳細信息,我在這裏。

謝謝。

回答

1

bindTranslation不應該改變,所以如果這是問題,那將是一個迴歸。您可以通過查看app/console doctrine:phpcr:node:dump --props /parent/path的輸出來調查其是否存在固定裝置問題。列表是否爲空,無論您要求的語言如何?

你在cmf_core和doctrine_phpcr上都配置了multilang嗎?

您可以通過在控制器或命令中加載文檔並在此情況下檢查內容文檔包含的內容來進一步調查。

對於路由自動捆綁的討論,最好來郵寄列表http://groups.google.com/group/symfony-cmf-devs。它應該仍然會發生,但似乎我們想念一個人來敲定它。

+0

@David謝謝您的快速回復。你是對的。我通過啓用cmf_core:multilang:選項來解決問題。我很高興,因爲我今天能夠合併升級分支:)。並再次感謝你和你的團隊在symfony cmf項目上的出色工作。 –