А CMS на 2 РАЗНЫХ Фреймворках? - PullRequest
       29

А CMS на 2 РАЗНЫХ Фреймворках?

11 голосов
/ 13 сентября 2010

Я не уверен, возможно ли это, но допустим, что вы хотите создать CMS, но вы разрываетесь между двумя средами, потому что у каждой есть некоторые функции, которые вам нравятся.Можно ли создать CMS с обоими фреймами?Есть ли у этого подхода достоинства или недостатки?

Ответы [ 8 ]

7 голосов
/ 13 сентября 2010

Если говорить строго о Zend Framework (ZF), я бы сказал, да.Компоненты ZF написаны так, чтобы быть максимально независимыми от других компонентов.Я бы сказал, что будет не очень сложно (это может быть довольно распространено) интегрировать библиотеки ZF в другие фреймворки, такие как Cake, Symfony или Codeigniter.

3 голосов
/ 02 октября 2010

Можно ли создать CMS с обоими framewoks?

Хотя можно использовать компоненты из Zend Framework внутри других Frameworks / CMS - это может быть в случае с другим компонентомбиблиотеки, но Zend - самая модульная из известных мне - обычно не стоит смешивать две полноценных фреймворка.

Многие центральные функции, такие как структуры MVC, маршрутизация URL, уровень базы данных, модульное тестированиеуправление ошибками и т. д. по своей природе не могут обслуживаться двумя структурами одновременно без значительных трений.Кроме того, вы можете столкнуться с проблемами при обновлении одной из платформ.

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

2 голосов
/ 04 октября 2010

Ваш вопрос слишком абстрактный. Например, Zend Framework - это больше библиотека специфических функций, готовая для включения в Ваш код, чем некоторая закрытая среда разработки, например, среда Symfony.

Благодаря этому ZF может быть просто включен в вашу кодовую базу ( и Symfony тоже ).

Symfony Framework по сравнению с ним является закрытым решением, зависящим от среды переднего сервера, поэтому вы не можете использовать его, как какой-либо другой фреймворк.

1 голос
/ 08 октября 2010

Конечно, это возможно, и я не вижу в этом ничего плохого.Например, я использовал CakePHP и Zend в относительно большом проекте, который был своего рода cms.CakePHP для ядра (Routing, MVC) и Zend для некоторых "модулей".В основном для PDF, E-Mail (smtp), FTP и некоторых других, в которых CakePHP не был так хорош.С Cake было довольно легко использовать компоненты ZF и совсем не чувствовать себя хакером.

Фактически ZF был написан так, чтобы быть максимально независимым, чтобы вы могли использовать любой компонент в любое время и в любом месте.Тем не менее, он не будет работать наоборот (используя ZF в качестве ядра и компонентов Cake).Конечно, это возможно, но настоящая боль без пользы.Так что ZF можно было бы использовать внутри практически любого другого фреймворка, и в этом нет ничего плохого, imho.

1 голос
/ 08 октября 2010

Вы можете сделать это. Самые современные фреймворки (Zend, Symfony, Flow) способны использовать части других фреймворков. Symfony 2 использует Zend Logger, а flow3 использует sfYaml ... Возможно взаимозаменяемость некоторых компонентов.

Но, imho, вы должны придерживаться одной платформы в качестве ядра и использовать вторую только для относительно изолированных подсистем. Шаблоны проектирования адаптера и фасада могут помочь вам смешать их вместе - некоторые компоненты / предложения требуют некоторой упаковки перед использованием в не родной среде.

Для дальнейшего чтения: http://www.symfony -project.org / book / 1_2 / 17-Extending-Symfony # chapter_17_integrating_with_other_framework_s_components

1 голос
/ 07 октября 2010

Мне кажется, что один фреймворк будет служить ядром - самозагрузка, MVC-стек, маршрутизация, тогда как другой будет использоваться для извлечения определенной функциональности - например, классов для форм, фильтрации или взаимодействия с веб-сервисами и т. Д.

Столько, сколько я предпочитаю Zend Framework для ядра - и большинство всего остального - его архитектура использования по желанию служит аргументом в пользу того, чтобы сделать другой каркас ядром и использовать компоненты ZF там, где они вам нужны.

Как отмечает @Adrian, компоненты ZF легко внедрить в проект, построенный в основном на другой платформе, поскольку ZF разработан с учетом этой гибкости. Другие рамки менее приспособлены в этом отношении.

1 голос
/ 06 октября 2010

Возможность компоновки большинства фреймворков такова, что, скорее всего, даст вам все недостатки обоих, одновременно устраняя большинство индивидуальных преимуществ обоих.

1 голос
/ 02 октября 2010

Это будет зависеть от того, что вам нравится в обоих ...

Zend Frameowrk больше похож на библиотеку, поэтому вы можете выбирать из нее компоненты. Symfony также имеет несколько компонентов, которые можно использовать повторно.

На самом деле, вы можете делать все, что угодно ... это зависит только от того, сколько работы вы хотите сделать, и насколько вы готовы изменить код платформы. Примечание: большинство других PHP-фреймворков не так гибки, как Zend Framework (возможно, Symfony).

Это звучит очень грязно, поэтому я бы советовал против этого, если только вы не используете его так, как я описал выше. Компоненты ZF или Symfony легко перенести в другие фреймворки, но не наоборот.

Надеюсь, это поможет.

...