2010-09-19 2 views
5

Для интеграции Zend с Symfony в этом же проекте, похоже, было previous attempts. Я слышал, что это можно сделать и было сделано, но помимо слайд-шоу, приведенного ниже, фактическое видео, сопровождающее слайд-шоу, не доступно.Zend with Symfony

Так кто-нибудь знает о хороших ресурсах, которые хорошо объясняют такую ​​интеграцию? блоги, видео, что угодно. Я добавлю все, что вы разместите здесь, чтобы облегчить доступ к другим в будущем.

Ресурсы я нашел до сих пор:

Edit: Я хотел бы добавить, если вы сделали это себя, прежде чем, вы можете также, пожалуйста пост любые советы (как мало или много) до помочь тем, кто может попробовать.

+0

я уверен, что у вас есть причины, но почему вы хотите/нужно это сделать? –

+0

@Pekka Я бы хотел использовать компоненты из каждого.Из того, что я знаю о Zend (работая с ним в течение последних 2 недель), можно использовать компоненты Zend в любом проекте, включая простой PHP. Но Zend не идеален для моих нужд, и мне нужно больше компонентов, некоторые из которых я нашел легко доступными в Symfony (теперь начал изучать Symfony). Эта презентация, которую я нашел, предполагает, что можно объединить 2, но более практичным является то, что действительно необходимо. – jblue

+0

@jblue Я вижу. Zend очень модульный, поэтому не должно быть никаких проблем с использованием частей Zend в проекте Symfony. Единственные проблемы, с которыми вы можете столкнуться, - это автозагрузка, но это также можно полностью отключить на конце Zend. Вероятно, вы просто не сможете использовать любую функциональность MVC от Zend вместе с Symfony: я ожидаю, что это будет обреченное предприятие. –

ответ

8

Совершенно просто добавить структуру Zend для работы в Symfony. Существуют некоторые компоненты структуры Zend, которые дополняют структуру Symfony. В настоящее время я использую Zend для поиска Lucene, а также их Mailer.

Чтобы использовать Zend в Symfony, вам просто нужно сделать две вещи:

  1. Скопируйте Zend Framework, в вашем/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 и ini.

Из моего опыта работы с ZF я бы сказал, это определенно можно сделать и стоит просто начать работу с.

Вам придется торговаться с автозагрузкой (возможно, вы должны загрузить все связанные с Zend вручную, а не использовать его автозагрузчик вообще), но кроме этого, я не вижу никаких проблем. (отказ от ответственности: я совсем не знаю Symfony и не могу прокомментировать возможные конфликты пространства имен, но, увидев, что Zend был создан, чтобы избежать этого, и Symfony - это зрелая структура, я не думаю, что вы столкнетесь с чем-либо невозможно.)

2

Если вы используете Symfony в качестве рамок верхнего уровня, это тривиально.

Фактически, интеграция компонента Zend Framework даже используется как часть standard symfony tutorial.

+0

Я ничего не сказал о доктрине. Я говорю о Zend_Mail, который он интегрирует ближе к концу. – timdev