Я обновляю большую CMS, над которой я работаю уже довольно много лет. Сам продукт отличен, но некоторые компоненты, например, базы данных и классы перевода нуждаются в срочной замене - частично самодельные еще в 2002 году, со временем превратились в хаос со временем, и могут возникнуть проблемы с выживанием в аудите безопасности,
Итак, я внимательно изучил ряд фреймворков (или, точнее, компонентных библиотек, поскольку я не намерен изменять основную структуру CMS), и в итоге мне понравилась Zend Framework. Они предлагают твердую модель MVC, но не вставляют вас в нее, и они предлагают множество профессиональных компонентов, которые, очевидно, получили много внимания (знаете ли вы, что на русском языке имеется множественное множественное число, и вы не можете перевести их, используя простой переключатель ($number == 0) or ($number > 1)
? Я этого не сделал, но Zend_Translate может справиться с этим. Чтобы проиллюстрировать уровень толерантности, библиотека, похоже, была построена с помощью.)
Теперь я буквально не нахожусь в обратном направлении, начиная заменять ключевые компоненты системы на Zend-made. У меня на самом деле нет вторых мыслей - и я, разумеется, не собираюсь разжигать пламенную войну, но прежде, чем идти дальше, я хотел бы отступить на мгновение и посмотреть, есть ли что-то, что говорит против привязки большой системы к Zend Framework.
Что мне нравится в Zend:
- Насколько я вижу, очень качественный код
- Чрезвычайно хорошо документировано, по крайней мере, в отношении ознакомления с тем, как все работает (не нужно было использовать подробную документацию по API)
- При поддержке компании, которая заинтересована в том, чтобы рама процветала
- Хорошо принят в сообществе, имеет значительную базу пользователей
- Использует стандарты кодирования, которые мне нравятся
- Поставляется с полным набором модульных тестов
- Мне кажется, что правильный выбор - или, по крайней мере, один из правильных вариантов - с точки зрения современного профессионального развития PHP.
Я думал об инкапсулировании и абстрагировании функциональности ZF в собственные классы, чтобы легче переключаться на рамки, но пришел к выводу, что это не будет хорошей идеей, потому что:
- это был бы ненужный уровень абстракции
- это может стоить производительности
- большое преимущество использования фреймворка - существования базы разработчика, знакомой со своими компонентами, - частично будет отменено
поэтому приверженность ZF будет глубокой. Таким образом, мой вопрос:
Есть ли что-нибудь существенное, говорящее против того, чтобы переходить к Zend Framework?
Есть ли у вас инсайдерские знания о планах Zend Inc. пойти на зло в 2011 году и сделать его закрытой исходной библиотекой? Является ли Zend Inc. бегающими вампирами, которыми управляют злые вампиры, которые хотят захватить Землю? (В комментариях было указано, что Zend фактически управляется вампирами.) Существуют ли концептуальные недостатки в базе кода, которые вы начинаете замечать, когда вы переходите ко всем своим проектам? Является ли появление качественного кода иллюзией? Действительно ли код выглядит хорошо, но работает на чем-то ниже моей четырехъядерной рабочей станции?
Принятие ответа
Спасибо всем за вашу подробную обратную связь. Хотел бы я создать щедрость и распределить ее равномерно среди всех ответчиков.
Среди многих мнений, благоприятных для ZF, был один очень хорошо обоснованный. Я воспринял это очень серьезно и внимательно рассмотрел альтернативы, в основном Yii и Kohana. Из этого сравнения и чтения некоторых замечаний относительно ZF и конкурирующих продуктов я вижу, что Zend можно рассматривать как раздутую в некоторых областях по сравнению с более минималистичными структурами. (Я также могу видеть, что этот "раздувание" в основном не имеет оснований для обеспечения максимальной гибкости. Но вопрос о том, нужна ли вам максимальная гибкость и справиться с последующей сложностью или более простым подходом с четкими рекомендациями, является допустимым.)
В любом случае, я поеду на Zend для проекта, потому что основное использование, которое у меня для рамки, есть как библиотека компонентов. Я не хочу использовать модель Zend MVC, мне просто нужны высококачественные компоненты для интернационализации, обработки сеансов и т.д. Поскольку я создаю распространяемый продукт, для меня приветствуется гибкость Zend (например, поддержка пяти разных форматов словарей). Кроме того, ZF, по-видимому, является единственной структурой, которая допускает степень свободы, которую я хочу (без принудительного использования паттеров, файловых структур...), насколько я вижу, ни одна другая структура не предлагает этого.
Для будущих проектов, в которых я хочу использовать фактические функции MVC, и полностью подчиняюсь соглашениям о структуре при создании приложений, наименованиях, стилях и процедурах, я, возможно, не обязательно собираюсь для Zend, но для более минималистичную структуру, такую как Yii или Kohana.