Насколько отличающийся CakePHP от Ruby on Rails? [закрытый]

В чем разница? => Много.

Я думаю, версия this используется для включения инкапсуляции, т. Е. Скрытия данных. Это помогает манипулировать частными переменными.

Давайте посмотрим на следующий пример:

var AdultPerson = function() {

  var age;

  this.setAge = function(val) {
    // some housekeeping
    age = val >= 18 && val;
  };

  this.getAge = function() {
    return age;
  };

  this.isValid = function() {
    return !!age;
  };
};

Теперь структуру prototype можно применить следующим образом:

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

AdultPerson.prototype.getRights = function() {
  // Should be valid
  return this.isValid() && ['Booze', 'Drive'];
};

Давайте посмотрим на реализацию сейчас.

var p1 = new AdultPerson;
p1.setAge(12); // ( age = false )
console.log(p1.getRights()); // false ( Kid alert! )
p1.setAge(19); // ( age = 19 )
console.log(p1.getRights()); // ['Booze', 'Drive'] ( Welcome AdultPerson )

var p2 = new AdultPerson;
p2.setAge(45);    
console.log(p2.getRights()); // The same getRights() method, *** not a new copy of it ***

Надеюсь, что это поможет.

18
задан 30 January 2009 в 04:18
поделиться

2 ответа

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

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

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

(Это, прибывая от кого-то, кто делает CakePHP в его дневном задании.)

<час>

, Так как Вы все спросили, моя самая большая жалоба на CakePHP - то, как этому удается, полностью забивают удобства объектно-ориентированного программирования: уверенный, это реализует Активный Рекордный шаблон так же, как направляющие делают, но это заставляет Вас раздать структуры данных.

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

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

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

  • время, которое мы провели два дня, выясняя, почему CakePHP отказался соединяться с правильным хостом базы данных
  • время, половина наших страниц пошла пробел из-за потолка памяти от использования слишком многих компонентов
  • объем кода, который живет в нашем AppController, потому что каждая загрузка компонента стоит нескольких мегабайты из памяти
  • черная магия массирования структур данных, чтобы заставить вывод XML работать правильно
  • , как мы проследили вниз тег пробела <javascript>, который обнаруживается в конце каждой страницы
39
ответ дан 30 November 2019 в 07:00
поделиться

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

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

1
ответ дан 30 November 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: