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

Насколько отличается CakePHP от Ruby on Rails?

Я почти никогда не слышу слова CakePHP, не услышав слово Rails вскоре после этого. Являются ли эти две структуры в основном похожими на основе того, как они соответствуют модели MVC или имеют ли они другие существенные сходства/различия?

Одной из главных достопримечательностей Rails для меня является то, насколько легко сделать Ajax. Это также верно для CakePHP?

4b9b3361

Ответ 1

CakePHP похож на дешевый, развращенный Ripoff Rails. Он пытается быть похожим на Rails, не делая ничего из того, что делает Rails отличным. Кажется, он похож на меня.

CakePHP имеет помощник Ajax, который делает что-то похожее на вспомогательные методы, связанные с Ajax, в Rails, поэтому да, в некотором роде, это также верно.

Но CakePHP - это действительно бесполезное упражнение: его авторы написали его, поэтому им не нужно было изучать Ruby, хотя изучение Ruby и Rails вместе, вероятно, проще, чем выяснение чудовищного беспорядка, который является CakePHP.

(Это происходит от кого-то, кто делает CakePHP на своей дневной работе.)


Так как y'all спросил, моя самая большая жалоба на CakePHP заключается в том, как ему удается полностью уничтожить удобства объектно-ориентированного программирования: конечно, он реализует шаблон Active Record точно так же, как Rails, но он заставляет вас пройти структуры данных.

Я чувствую, что любой логический человек будет реализовывать ORM, используя ошибки и динамическую загрузку свойств в объекты, что и делает ActiveRecord (библиотека Rails). Вся идея установки переменной-члена, называемой $recursive, чтобы определить, какие отношения для загрузки являются просто ошибочными.

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

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

  • время, которое мы провели два дня, выяснив, почему CakePHP отказался подключиться к правильному узлу базы данных
  • время, в течение которого половина наших страниц была пуста, из-за того, что потолок памяти из-за использования слишком большого количества компонентов
  • количество кода, которое живет в нашем AppController, потому что каждая загрузка компонента стоит несколько мегабайт памяти
  • черное искусство массирования структур данных для правильной работы XML файла.
  • как мы проследили пустой тег <javascript>, который отображается в конце каждой страницы

Ответ 2

Торт выложен очень похож на Rails и, очевидно, получает от него много вдохновения и идей. Торт - отличное введение в рамки MVC, и рельсы кажутся довольно простыми, исходя из опыта пирога.

Ajax очень просто с Cake, используя JS-помощник. На самом деле все очень просто. Его отличная структура, особенно для распределенных приложений (например, cms) или любой другой ситуации, когда легкость размещения php-приложения является преимуществом.

Я бы увидел основные преимущества рельсов, которые были Ruby (и, следовательно, лучшая реализация OO рельсов и т.д.) и сообщество. Драгоценные камни (гораздо меньше/меньше комплексных плагинов для торта), учебные материалы в Интернете, книги (красноречивые рубины?) Группы знакомств и т.д.

Ответ 3

Я не работал с CakePHP, но мое впечатление от него не слишком хорошее. Если вы используете Rails-подобную структуру для PHP, я думаю, вам может быть лучше смотреть в Symfony. Это, вероятно, немного сложнее для начала, но весь проект кажется намного более организованным, чем CakePHP.

Конечно, возьмите с солью соль, так как эти вещи весьма субъективны.

Ответ 4

Я пытаюсь решить, использовать Ruby on Rails или PHP для проекта веб-приложения. У меня нет предыдущего опыта.

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

Так сложно получить объективную информацию. Тем не менее, Стивен Д Робинсон сделал отличную презентацию сравнив эти два очень нейтрально.

Крис

Возвращающийся программист