Qcodo против CakePHP против Zend

Я немного знаком с CakePHP и считаю, что это отличный фреймворк. Затем я сталкиваюсь с этой штукой под названием Qcodo. Это еще один PHP-фреймворк. Я много слышал о Zend. Все они кажутся очень аккуратными, но мне интересно, в чем разница между всеми этими фреймворками.

Прежде чем я буду тратить слишком много времени на изучение другого фреймворка, знает ли кто-нибудь плюсы и минусы каждого фреймворка?

Все они, казалось, преследовали общую цель: сделать разработку веб-приложений на PHP простой, модульной и масштабируемой.

РЕДАКТИРОВАТЬ Нашел этот интересный результат сравнения между CakePHP и Zend

Ответов (9)

Решение

Я никогда не слышал о Qcodo.

CakePHP - это полнофункциональный фреймворк с множеством автоматических функций, но, к сожалению, это один из самых медленных фреймворков . У него также нет официальных форумов, и здесь действительно не так много загруженного сообщества. Он пытается быть клоном Ruby on Rails, но это не так хорошо работает с PHP.

Zend впечатляет. У него сильное сообщество и корпоративная поддержка. Он очень функциональный, но при этом очень раздутый (см. Этот тест), поэтому имеет умеренную производительность. Однако из того, что я слышал, вы можете использовать компоненты по отдельности, не используя весь фреймворк, и даже можете использовать их с другими фреймворками!

Я использую CodeIgniter на работе, и мне это нравится. Это, безусловно, самый удобный фреймворк для новичков, и с вашим опытом работы с CakePHP это должно быть проще простого. У него очень хорошая документация , полная, ясная и хорошо написанная. Есть несколько функций, которых у него нет (например, ORM), которые есть у других фреймворков, но у CI есть одно из самых активных сообществ фреймворков, которые я видел. Поскольку для него легко писать библиотеки, вы можете найти библиотеку для выполнения практически всего, что захотите - ORM, аутентификации и т. Д. Чтобы добавить к этому, если вам нужен ORM для CI, я рекомендую DataMapper .

Вы также можете посетить Кохана . Это спин-офф CodeIgniter. Это строго PHP5 и имеет ORM и некоторые другие функции. Сам не использовал, но слышал хорошие вещи.

Я использую QCubed, преемника QCodo. Это просто лучшее, что вы можете получить от PHP-фреймворка с открытым исходным кодом. Это довольно быстро, если вы знаете, как заставить его работать. Единственный недостаток - отсутствие документации. Тем не менее, сайт с примерами отличный. Начни его использовать, и я уверен, ты будешь спокойна! :)

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

Некоторые фреймворки могут показаться вам интуитивно понятными, а другим - нет. Выбор фреймворка PHP - это очень личный выбор IMO.

Я сам использую CodeIgniter после использования CakePHP в течение некоторого времени. Основная причина перехода была связана с производительностью, но за последние несколько лет CakePHP прошел долгий путь, так что это, вероятно, больше не является веской причиной.

[Edit: По-видимому, у него все еще есть недостатки в производительности, см. Сообщение ryeguy и комментарии.]

Я никогда не считал Zend интуитивно понятным и никогда не изучал Qcodo.

В Википедии есть список фреймворков веб-приложений по языкам , вы также можете найти там информацию, которая поможет вам принять решение.

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

Не игнорируйте Symfony, это круто. Я бы сказал, что его самые сильные стороны - это последовательный подход «придерживаться лучших практик» на всех уровнях, активное сообщество и отличная документация.

Я использую как QCodo, так и Zend Framework

QCodo - это MVC-фреймворк для генератора кода, многие коды генерируются из проекта вашей базы данных и создают готовую к использованию форму поиска и редактирования для каждой таблицы вашей базы данных. Он также обрабатывает отношения таблиц базы данных для предварительного создания набора методов для отношений один-ко-многим / многие-ко-многим между таблицами.

Поскольку эти коды были сгенерированы на основе дизайна вашей базы данных, все коды были оптимизированы для каждого проекта. Короче говоря, это структура database oriented

.................................................. .

Zend Framework разработан, насколько я знаю от основателя этого проекта), чтобы отделить все модели, и действительно, они развертывают множество готовых к использованию моделей для различных типов проектов, от Zend_ACL (список управления доступом для аутентификации), Zend _Search _Lucene, Zend _Service _Twitter, Zend _Service _Flickr и т. д.). И я думаю, что будет в будущем.

Мой голос за Qcodo! Некоторое время назад я исследовал то, что мне больше всего подходит, и результатом является qcodo, в настоящее время я не могу делать проект без рассмотрения использования qcodo или, по крайней мере, его части обработки базы данных, что абсолютно фантастично.

Я думаю, что Simfony - лучший фреймворк PHP, хотя я его не использовал. Я использовал в основном Qcodo / Qcubed, но перехожу на Rails, поэтому я считаю Simfony неплохой. Я пробовал Code Igniter, и он прост в использовании, легкий (я полагаю), но у него нет строительных лесов, но теперь это можно изменить. Как сказал другой парень, вы можете использовать внешний ORM, потому что у CI его нет по умолчанию. Zend Framework имеет модульную архитектуру и множество библиотек. Я использовал Zend_ACL, но наследование разрешений было проблемой, поэтому я реализовал свою собственную реализацию, запросы Zend_Lucene не нашли нужных мне данных ... ZF - это фреймворк очень низкого уровня, и ему тоже нужна ORM. Я взглянул на CakePHP, но я обнаружил, что его интерфейс базы данных не на уровне Propel, Qcodo и Doctrine, но я думаю, что вы можете использовать свою собственную библиотеку.

Я обычно хочу в рамках:

  • ORM и объект, обертывающий реальную строку в базе данных ($ objUser-> Name = 'Jack')
  • MVC - большинство из них являются MVC
  • Генераторы кода (Qcodo отлично подходит для генерации кода из базы данных)
  • Фронтальный контроллер, маршрутизация и поддержка URL (у Qcodo его нет)
  • Чистый шаблон (Qcodo имеет $ objLabel-> Render (); не настоящие теги)
  • вспомогательные методы, такие как link_to, image_tag и т. д. (Simphony и Ruby on Rails)
  • Перенос базы данных для отслеживания изменений в БД
  • интегрированная среда тестирования для тестирования реального приложения, а не нескольких изолированных функций (это делают Rails и, возможно, Simfony)
  • Сообщество и популярность фреймворка.

Большинство продвинутых разработчиков PHP, которых я встречал, используют Simfony, но это только из моего личного опыта.

В заключение, я бы использовал бит Simfony. Я настоятельно рекомендую попробовать Rails с использованием Ruby или JRuby.

Выбор оптимальной структуры должен приниматься индивидуально для каждого проекта. Если у вас большая база данных, использующая движок innoDB и множество взаимосвязей между таблицами, попробуйте QCubed (Qcodo). Я не видел фреймворка, который обрабатывает сложные отношения ORM - даже обратные отношения с легкостью! Он также довольно быстро обрабатывает сложные запросы (например, запросы с обратной связью) - хотя производительность в любой структуре во многом зависит от способности кодировщика эффективно писать.

Если вы создаете CMS, вам понадобится Zend или Symfony для возможностей MVC. QCubed / codo предположительно основан на MVC, но он не так четко изложен, как Zend. QCodo также ЗАВИСИТ от того, что никогда не меняет структуру вашей базы данных - можно управлять, но очень сложно добавлять новые поля в таблицу БД после запуска сайта, потому что он автоматически генерирует пользовательские классы для каждой таблицы.