Подтвердить что ты не робот

Приверженность Zend Framework - любые аргументы против?

Я обновляю большую 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.

4b9b3361

Ответ 1

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

  • Zend_Form, имеет ли он использование, но в целом слишком навязчивый, я просто хочу структурировать свой HTML не бороться API и декораторов.
  • Zend_Db_Table, мощный, но для выполнения ваших целей требуется большая работа, и Rails научили меня лениться. Нет, я не хочу писать 3 класса для модели, одну для таблицы, одну для набора строк, одну для строки, а затем привязывать их друг к другу и так далее. В какой-то момент мне может понадобиться шлюз данных данных, но на данный момент я действительно хочу связать эти данные с быстрой активной записью.
  • нет активной записи. С поздним статическим связыванием в php 5.3 это может измениться...

Я очень старался использовать эти два в течение нескольких месяцев, пока наконец не получил.

Я преодолел их (идеи от Ruby on Rails)

  • используйте помощники с открытым представлением вместо Zend_Form, как в:
    echo $this->formText('email', '[email protected]', array('size' => 32));
  • с моей собственной активной записью, подобной моделям (http://www.phpactiverecord.org)
  • проверить и фильтровать на модели
  • для крайних крайних случаев, можно вернуться к Zend_Form + Zend_Db_Table, хотя I никогда не чувствовал необходимости.

ИЗМЕНИТЬ
Есть некоторые новые дети, которые стоит проверить, например Laravel

Единственное, что ZF действительно выигрывает в других рамках - это маршрутизатор, контроллер и представления, соглашения, чистый читаемый код, процесс.

Ответ 2

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

  • Хороший вариант, который вы узнали, может показаться удобным - до такой степени, когда вы найдете другую настройку 1k +, которая просто выглядит пустой тратой времени и усилиями разработчиков в библиотеке. Вы скоро окажетесь в середине настройки Ocean, перегруженной настройками, интерфейсами и абстрактными классами.
  • Документация не только детализирована, но и в итоге очень длинная и сложная (аналогично самой библиотеке). Я хочу, чтобы классы из 3-х классов помогали мне и не мешали мне.
  • Важнейшим фактором для меня, очевидно, была скорость разработки. Без объединения колледжей в Zend Framework следует серьезно подумать о том, следует ли отказаться.
  • Слишком много людей делают пожелания в Zend-проблеме, слишком много людей внедряют код. На сегодняшний день я еще не вижу серьезного видения этих миллионов линий.

Мои два цента действительно сводятся к одному моменту: несмотря на (или, вернее, из-за?), это поддерживается компанией PHP, она слишком раздута для личного использования и малых и средних проектов.

В настоящее время моя команда использует Yii для проекта среднего размера. Он не идеален, но удобнее и удобен для разработчиков по сравнению с старшим братом.

Ответ 3

У меня нет большого аргумента против ZF - наоборот; конечно, я еще не использовал все компоненты (не уверенный кто-либо), но я никогда не видел ничего, что выглядело бы "плохо" при просмотре источников.

Когда я начинаю новый проект, я бы вообще пошел с Zend Framework, фактически, если я тот, кто должен выбрать...


Там, по крайней мере, один аргумент, который я хотел бы добавить в ваш список:

  • Zend Framework может интегрироваться с другими компонентами: вы говорили об использовании компонентов ZF в своем приложении, но не говорили об обратном.
    • Хорошим примером является Doctrine (ORM Symfony по умолчанию), который можно использовать с ZF довольно легко - и намного лучше, чем Zend_Db, на мой взгляд!

Кроме того, я должен сказать, что я согласен со всеми вашими точками.


Об инкапсулирующих ZF-классах в свои собственные классы: да, вы могли бы это сделать (иногда я это делаю), но я бы не рекомендовал делать это для всего: в большинстве случаев это, вероятно, не понадобится.


О будущем:

  • Zend Framework выпущена под лицензией BSD, что означает, что существующее не может быть закрыто.
  • Закрытие означало бы его конец, во всяком случае - было бы глупым движением в контексте сообщества PHP
  • Работа над ZF 2.0 только начинается (с PHP 5.3 в качестве требования, кстати)
    • Возможно, в зависимости от вашего расписания для вашего приложения это может быть интересно?
    • По крайней мере, если вам не нужно начинать разработку, по крайней мере, пару месяцев...

Ответ 4

Мы работаем с ZF уже почти год, и у меня нет серьезных проблем с этим. Было немного кривой обучения, но как только я это понял, я понял, насколько хорошо это объединяет.

По сравнению с другими платформами, некоторые люди могут указать на отсутствие библиотеки моделей как недостаток. Я действительно предпочитаю, чтобы мне не говорили, что использовать, и интеграция Доктрины с ZF без трения. Если вы разрабатываете в PHP 5.3 и хотите ORM, я бы настоятельно рекомендовал Doctrine 2 (остерегайтесь: он все еще находится в альфа-тестировании).

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

Итак, я довольно большой поклонник этого.

Ответ 5

Одна вещь, которую мне не хватает в Zend Framework, - это правильный OR-блок. Zend_DB в порядке, но имеет некоторые недостатки, особенно при работе с огромными базами данных (многие таблицы), это становится очень громоздким. Но есть пара OR mappers, которые могут быть интегрированы (например, zend-framework-orm или Doctrine, как упоминалось Паскалем МАРТИНОМ).

Но да, Zend превосходный, очень мощный, и я чувствую, что это каким-то образом то, что PHP на самом деле должно быть/должно было быть с точки зрения интерфейса и функциональности.

То, что мне особенно нравится помимо очевидного, - поддержка Dojo для богатых клиентских приложений и Поддержка SOAP.

Ответ 6

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

Но в последнее время я начал использовать python, я бы сказал, используя python;)