Qcodo vs. CakePHP vs. Zend

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

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

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

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

9 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

..................................................,

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

Я думаю, что 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 - это фантастика для генерации кода из базы данных)
  • Фронт-контроллер, маршрутизация и дружественный адрес (у Qcodo его нет)
  • Чистый шаблон (Qcodo имеет $objLabel->Render(); не настоящие теги)
  • вспомогательные методы, такие как link_to, image_tag и т. д. (Simphony и Ruby on Rails)
  • Миграция базы данных для отслеживания изменений БД
  • интегрированная среда тестирования для тестирования реального приложения, а не несколько изолированных функций (так делают Rails и может Simfony)
  • Сообщество и популярность фреймворка.

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

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

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

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

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

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

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

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

Другие вопросы по тегам