2010-09-19 42 views
5

似乎有previous attempts將Zend和Symfony集成到同一個項目中。我聽說它可以完成並且已經完成,但是除了下面鏈接的幻燈片放映之外,伴隨幻燈片播放的實際視頻不是免費的。Zend與Symfony

那麼有誰知道解釋這種整合的好資源嗎?博客,視頻,等等。我將添加您發佈的任何內容,以便將來更輕鬆地訪問其他人。

資源,我發現迄今:

編輯:我要補充,如果你這樣做在此之前 自己,你能不能也請 後任何提示(儘可能少或很多) 幫助那些可能想要嘗試它的人。

+0

我敢肯定,你有你的理由,但你爲什麼要/需要這樣做? – 2010-09-19 20:22:28

+0

@Pekka我想使用每個組件。根據我對Zend的瞭解(過去兩週一直在使用它),可以在包括普通PHP在內的任何項目中使用Zend組件。但Zend並不適合我的需求,我需要更多的組件,其中一些我已經在Symfony中找到了(現在開始學習Symfony)。我發現這個演示文稿表明可以將2個結合起來,但更多的實際細節是真正需要的。 – jblue 2010-09-19 20:37:53

+0

@jblue我明白了。 Zend是非常模塊化的,因此在Symfony項目中使用Zend的部分應該沒有任何問題。唯一可能遇到的問題是自動加載,但也可以在Zend上完全關閉。您可能無法將Zend的任何MVC功能與Symfony一起使用:我預計這將是一個註定要失敗的企業。 – 2010-09-19 20:40:16

回答

8

添加Zend框架在Symfony中運行是非常簡單的。 Zend框架的某些組件支持Symfony框架。我目前使用Zend的Lucene搜索,以及他們的梅勒。

要在Symfony的使用Zend的,你只需要做兩件事情:

  1. 複製Zend框架到你的/ lib中/供應商/文件夾。

  2. 修改ProjectConfiguration文件。 (配置/ ProjectConfiguration.class.php)

    class ProjectConfiguration extends sfProjectConfiguration 
        { 
        static protected $zendLoaded = false; 
        static public function registerZend() 
        { 
         if (self::$zendLoaded) { return; } 
         set_include_path(sfConfig::get('sf_lib_dir').'/vendor'.PATH_SEPARATOR.get_include_path()); 
         require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php'; 
         Zend_Loader_Autoloader::getInstance(); 
         self::$zendLoaded = true;   
         }  
        } 
    

所有這一切都可以在Symfony的教程在這裏找到: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/17

2

從上面的討論:

我想使用的Symfony作爲鹼+ Zend的部件可按需要。所以我將使用Symfony的文件夾結構,但沒有Zend的bootstrap和ini。

從我與ZF的經驗我會說,這絕對可以做到,值得簡單入門。你需要和Autoloading討論一下(你應該手動加載所有Zend相關的包含,而不是使用它的自動加載器),但除此之外,我看不到任何問題。 (免責聲明:我完全不知道Symfony,不能評論可能的命名空間衝突,但是看到Zend是爲了避免這些衝突而建立的,Symfony是一個成熟的框架,我不認爲你會遇到任何東西不可能)。

2

如果您使用Symfony作爲您的頂級框架,那麼它很簡單。

事實上,集成一個Zend Framework組件甚至曾經是standard symfony tutorial的一部分。

+0

我沒有對教義做任何說明。我正在談論Zend_Mail,他在最後集成了它。 – timdev 2010-09-20 20:20:25