Php orm framework

У меня есть небольшой проект управления школами. Есть несколько тысяч записей на таблицу (счета-фактуры, лица, классы...) для управления. Классическое веб-приложение с HTML/AJAX UI и MySQL/PHP.

Чтобы сэкономить время и иметь лучший код, я хочу использовать ORM для MySQL, который будет обрабатывать большую часть транзакции базы данных для меня.

Каков наилучший ORM для использования в этом случае?

спасибо.

5 ответов

Возможно, вы захотите взглянуть на структуру с помощью orm, а не просто на orm. Будет много проблем с тем, чтобы ORM работал с базой данных, которая вам нужна. Легче всего выйти из состояния в рабочем состоянии, вероятно, CakePHP, CodeIgniter и Symphony. AFAIK все они имеют очень удобные инструменты генерации кода, которые мгновенно создадут приложение для эшафотов.


Doctrine - чрезвычайно мощная библиотека ORM.


Мне очень нравится использовать CodeIgniter с DataMapper.

CodeIgniter - это фреймворк PHP, который очень легко привыкнуть, даже если вам нравится чистый PHP.

DataMapper - отличный ORM, основанный на библиотеке из известной структуры Ruby On Rails.


Как предложил симшхаун, ознакомьтесь с Доктриной или, альтернативно, Propel


Библиотека ORH от Kohana отличается простотой в использовании и настройке, что делает ее отличной для большинства небольших проектов. Doctrine и Propel отличные, но требуют принятия большего количества решений, потому что они используют генерацию кода (вероятно, не лучший выбор для школьного проекта). Они являются более гибкими (тонны опций конфигурации), чем кохана или ORM воспламенителя кода, но они имеют более крутую кривую обучения и требуют гораздо большей конфигурации (читайте "соглашение и конфигурация" ).

Пример Kohana 3 ORM:

// Model definition file - /classes/model/animal.php
class Model_Animal extends ORM
{
 /* Find all animals that bark */
 public function barking_animals()
 {
 return $this->where('sound', '=', 'barker')->find_all();
 }
 /* Find all animals that quack */
 public function quacking_animals
 {
 return $this->where('sound', '=', 'quack')->find_all();
 }
}
// In some controller file somewhere...
$loudAnimals = ORM::factory('animal')->barking_animals();
// don't rent an apartment if you're neighbors have any of these animals...
foreach ($loudAnimals as $animal)
{
 echo $animal->name;
}
// add a new animal to db
$newAnimal = orm::factory('animal');
$newAnimal->name = 'Obese Cat';
$newAnimal->weight = '30lbs';
$newAnimal->sound = 'fat quack';
$newAnimal->save();

Наконец, некоторый справочный материал... http://kohanaframework.org/guide/tutorials.orm

licensed under cc by-sa 3.0 with attribution.