Что самое легкое должно использовать платформу ORM для PHP? [закрытый]

На самом деле, есть решение с плагином moment.js, и это очень просто.

Вы можете использовать moment.js

Не изобретать

Просто подключите Moment.js Плагин диапазона дат .


Пример:

var starts = moment('2014-02-03 12:53:12');
var ends   = moment();

var duration = moment.duration(ends.diff(starts));

// with ###moment precise date range plugin###
// it will tell you the difference in human terms

var diff = moment.preciseDiff(starts, ends, true); 
// example: { "years": 2, "months": 7, "days": 0, "hours": 6, "minutes": 29, "seconds": 17, "firstDateWasLater":  false }


// or as string:
var diffHuman = moment.preciseDiff(starts, ends);
// example: 2 years 7 months 6 hours 29 minutes 17 seconds

document.getElementById('output1').innerHTML = JSON.stringify(diff)
document.getElementById('output2').innerHTML = diffHuman



  

  



  
  

Difference between "NOW and 2014-02-03 12:53:12"


17
задан Zak 21 October 2008 в 23:09
поделиться

8 ответов

Оба CodeIgniter ( http://codeigniter.com/user_guide/database/active_record.html ) и его PHP5 только ветвление Kohana ( http://docs.kohanaphp.com/libraries/orm ) содержат реализации шаблона ActiveRecord.

6
ответ дан 30 November 2019 в 11:38
поделиться

Zend_Db_Table и Zend_Db_Table_Row довольно хорош в том, что Вы описываете. Вам не нужен никакой конфигурационный файл, большинство метаданных "обнаружено" от самой базы данных.

Технически эти классы не реализуют шаблон ActiveRecord. Вместо этого они реализуют Шлюз Данных Таблицы и Шлюз Данных строки шаблоны. Вместе, они предлагают подобное значение как ActiveRecord и до некоторой степени более гибки, чем ActiveRecord.

, Но как с любым ORM, существуют неизбежно некоторые SQL-запросы и операции, которые Вы не можете сделать через интерфейс OO. Никакой ORM не может служить универсальными покупками.

Сноска: Я работал над проектом Платформы Зенда немногим более, чем в течение года, особенно на компоненте Zend_Db. Но я больше не работаю на них.

4
ответ дан 30 November 2019 в 11:38
поделиться

Я - большой поклонник Доктрина , которая является полнофункциональным ORM, который будет заменять, Продвигают как ORM Symfony по умолчанию.

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

Это идет с полным комплектом инструментов командной строки для управления базами данных. Например, можно создать схемы и приспособления в YAML, иметь Доктрину, генерируют классы на основе Схемы, создают базу данных, создают схему на основе моделей, затем заполняют базу данных с приспособлениями все с синглом ./doctrine build-all-reload.

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

Согласно Вашим жалобам на доктрину, можно выполнить команду ./doctrine generate-models-db или ./doctrine generate-yaml-db для автоматического создания моделей и yaml файлов соответственно от текущей установки базы данных.

Другие тонкости включают" Поведения ", который делает жизнь намного легче при реализации бесспорный, ну, в общем, поведения в схеме. Например, можно добавить поведение "Timestampable" к файлу класса. Doctine автоматически добавляет 'created_at' и 'updated_at' столбец, заполняет их, и каждый $object->save() Вы работаете, автоматически обновляет 'updated_at' столбец. Более сложные поведения включают i18n, управление версиями таблицы и деревья (хотя действительно только NestedSet).

Лично я был чрезвычайно очарован Доктриной и рейвом об этом все шансы, которые я получаю.

11
ответ дан 30 November 2019 в 11:38
поделиться

Я создал свое собственное без чрезмерного увеличения размера. (Хотя я должен обновить свои локальные источники)

, я создал его с точно точками в памяти, Вы упоминаете: никакие десятки XML-файлов, никакой огромной платформы, просто простые конструкторы с базой данных к отображениям свойства и это делает Ваш основной CRUD / Находят / материал Соединения. Для большей части материала я делаю, я не должен даже писать пользовательские запросы.

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

следующая версия, которую я выпущу, идет с рабочим коротким соединением на соединении на соединении (для обхода 'пути' через базу данных), ini базирующиеся настройки базы данных, перекрестная поддержка БД, суперпростая абстракция базы данных и стандартный регистратор, который отступает к SQLite, если база данных снижается.

Просто дают крик, если Вы будете интересоваться обновлениями, то я помещу порыв в него затем.

, О, да и не забывают, существует также хороший визуальный генератор лесов, названный Свинина. Генератор . Это пытается проанализировать Вашу структуру базы данных и найти 1:1 1:many и many:many отношения, и может автоматически генерировать классы для Вас :-) relations found in database
(источник: schizofreend.nl)

5
ответ дан 30 November 2019 в 11:38
поделиться

Проверьте Удобную в сопровождении платформу. Хотя я предпочитаю генерацию кода по ActiveRecord (отражение во время выполнения), я нашел Удобную в сопровождении платформу простой в использовании особенно с точки зрения функций ORM.

http://framework.maintainable.com/mvc/3_model.php#c3.7

, Если Вы хотите платформу на основе генерации кода, попробуйте QCodo. Независимо от того, что dcousineau сказал для Доктрины, я могу сказать для Qcodo. Это - управляемая событиями законченная платформа, подражающая.NET/Delphi. Однако Вы можете просто функция генерации кода и находить способы отделить Ваш сгенерированный, классифицируемый от остальной части платформы. Таким образом можно встроить сгенерированный классифицируемый в других платформах.

1
ответ дан 30 November 2019 в 11:38
поделиться

Другой вариант, следующий за реализацией Ruby DataMapper, - это phpDataMapper . Очевидно, что это Data Mapper вместо ActiveRecord :).

1
ответ дан 30 November 2019 в 11:38
поделиться

Я использую малоизвестный слой орма, называемый красными бобами. вы можете найти его здесь: http://www.redbeanphp.com . он абсолютно уникален в том смысле, что он просто создает столбцы таблиц и индексирует их самостоятельно, без каких-либо файлов конфигурации. Я считаю, что это значительно экономит время!

9
ответ дан 30 November 2019 в 11:38
поделиться

Я бы порекомендовал доктрину с симфонией. EventHough Есть больше, чтобы узнать, что вы обнаружите, что он будет иметь свои функции, которые вам понадобятся, как только проект растет (Crud, Form Framework, шаблоны записи, DQL, поддержка плагинов, поведение). Оба проекта имеют очень активное сообщество, и вы не должны оказаться в тупике, потому что большинство ваших вопросов уже были ответы на официальные учебные пособия или на форуме.

Если вы не любите определения базы данных в YAML, вы всегда можете использовать ORM Designer или Workbench MySQL.

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

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