Какой PHP Framework наиболее близко клонирован к ActiveRecord (RoR) - PullRequest
3 голосов
/ 03 июня 2009

Поскольку вопрос говорит сам за себя.

Какой фреймворк в PHP наиболее тесно клонирован в ActiveRecord (Ruby on Rail).

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

Существуют ли какие-либо рамки, которые я пропустил?

Ответы [ 6 ]

7 голосов
/ 03 июня 2009

Я думаю, вы слегка смущены. Сам ActiveRecord на самом деле не является фреймворком; Rails - это фреймворк, ActiveRecord - это объектно-реляционный картограф (ORM, или уровень абстракции базы данных, если хотите).

Тем не менее, CakePHP - это, вероятно, PHP-фреймворк с наибольшим сходством с Rails в целом.

Но в любом случае, почему бы просто не использовать Rails? Вы не сможете получить ничего подобного Rails на PHP.

4 голосов
/ 03 июня 2009

Если вы ищете пакет ORM, то Propel вполне подойдет.

PHP имеет небольшие проблемы с реализацией шаблона Active Record. Из-за недостатка обработки статических методов и наследования вы не можете (легко) реализовать статический метод в стиле Person::findByPrimary(1).

Вместо этого большинство PHP ORM используют шаблон Table Data Gateway и имеют отдельные классы для операций с таблицами PersonHelper->findByPrimary(1); и действий с строками new Person()->save().

3 голосов
/ 03 июня 2009

Я бы сказал, что самый стабильный и современный проект, напоминающий RoR, это PhpOnTrax

2 голосов
/ 19 июля 2009

Ничего не стоит, что с момента выхода PHP 5.3 поздняя статическая привязка открыла двери для видов отражения, необходимых для реализации ActiveRecord на PHP!

1 голос
/ 01 ноября 2010

Выберите желаемую структуру и используйте что-то вроде http://www.phpactiverecord.org/ или http://www.doctrine -project.org / projects / orm :)

0 голосов
/ 03 июня 2009

Существует проект php-activerecord (бета): http://www.derivante.com/2009/05/19/php-activerecord-available-for-beta-testing/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...