Моя команда на работе рассматривает возможность использования структуры для разработки веб-сайтов и приложений. Некоторые из старших убеждены, что мы должны использовать Zend Framework, потому что легче выбирать и выбирать функции, чтобы рамки были легкими.
Однако я боюсь, что они только смотрят на технические преимущества, которые будут иметь легкие рамки. По-моему, лучше иметь полноэкранную структуру (и я сторонник Symfony), потому что
Я не ожидаю ответа на все мои вопросы, но это то, что я ищу в ответ:
Контекст: я работаю в небольшом магазине с примерно 10 программистами. В основном мы программируем PHP. Мы используем действительно простую встроенную инфраструктуру и библиотеку ORM, которые практически не документированы и не имеют ничего, кроме самых основных функций (без проверки подлинности, без транзакций, без кэширования, без проверки подлинности)
И почему не оба? Я использую Symfony с 2006 года, был настоящим поклонником Doctrine в течение одного года, и в течение нескольких месяцев мы достигли многих шагов на лестнице производительности, интегрируя компоненты Zend непосредственно в наши приложения Symfony.
Реальная сила symfony заключается в развязывании всего и в легкости расширяемости структуры. Вы можете заменить почти все слои всего. Просто скопируйте / вставьте каталог Zend в / lib / и добавьте этот синглтон в /config/ProjectConfiguration.class.php:
static public function registerZend() { if (self::$zendLoaded) { return; } sfToolkit::addIncludePath(sfConfig::get('sf_lib_dir') . '/vendor', 'back'); require_once(sfConfig::get('sf_lib_dir') . '/vendor/Zend/Loader.php'); Zend_Loader::registerAutoload(); self::$zendLoaded = true; }
И используйте свободно любой компонент Zend, который вам может понравиться. Вас может заинтересовать новый учебник Jobeet, особенно в части поиска, в которой используется Zend_Lucene_Search.
Symfony действительно прост в использовании и может получить полностью функциональный сайт с сеансами, кешированием, модульным и функциональным тестированием, автоматическим развертыванием и большим количеством операций в течение очень короткого промежутка времени. Вам действительно нужно беспокоиться о коде для доступа и отображения ваших данных. Вист, возможно, не такой легкий, как рулонная реализация, количество кода, которое вы должны поддерживать, будет меньше.
Propel / Creole ORM хорошо работает, встроен в валидаторы и т. Д., И он настроен для расширения из коробки.
При переходе внутренней структуры на Symfony мне удалось повторно использовать множество библиотечного кода, просто поместив его в один из каталогов lib, который Symfony сканирует при запуске.
Хотя я не использовал его, в Symfony встроен мост Zend, который позволяет вам использовать модули Zend, если это необходимо.
Надеюсь, это поможет.
Я думаю, что документация ZF и участие сообщества лучше. Мне также нравится схема именования, стандарт кодирования и расширяемость. ZF также, похоже, получает множество новых функций и улучшений для существующих классов, таких как проект с открытым исходным кодом, от многих разных людей, работающих над собственными проектами домашних животных.
Я действительно не понимаю, как Symfony является преимуществом для группы из 10 программистов. Очевидно, что вы должны иметь относительно быструю настройку конфигурации по умолчанию для новых проектов и иметь большую расширяемость, построенную поверх и в дополнение к ZF.
Как ZF не «полный стек»? Кажется, он содержит все элементы Symfony, а затем некоторые. Кроме того, ZF использует подход «забрать свой яд», позволяя вам использовать разные части в разных методах. (Например, мы используем Zend_Config в самых разных местах, так что каждый может ожидать разумно однородную конфигурационную систему даже на небольших фрагментах кода).
Однако я боюсь, что они только смотрят на технические преимущества, которые будут иметь легкие рамки. По-моему, лучше иметь полноэкранную структуру (и я сторонник Symfony), потому что …
Это зависит от типа приложений, которые вы создаете. Если вы создаете много низкоуровневых, в основном контент-ориентированных приложений, то Symfony будет сиять. С другой стороны, если ваше приложение не вписывается в парадигму открытого типа Symfony (например, если она сложна и не полностью ориентирована на управление контентом), вы можете найти ее скорее препятствием, чем помощью.
У меня тоже есть ограниченный опыт, но хорошей отправной точкой для установки «стандартов» для Zend является следовать их учебным пособиям для использования разных модулей – многие из них дают нормальные значения по умолчанию, которые работают на 99% проектов.
Я бы сказал, что это сводится к тому, что вам нужно для этого – Zend для гибкости, Symfony для более быстрого запуска и заранее разработанных стандартов, если у вашего проекта нет чрезвычайных потребностей.