Статьи

PHPg-провайдер Midgard2 достиг 1,0

Я рад сообщить , что мы были в состоянии выпустить первую версию стабильной из поставщика Midgard2 PHPCR вчера.

Проще говоря, PHPCR — это будущее PHP API Мидгарда. Вместо того, чтобы иметь свои собственные API репозитория, мы следуем хорошо документированной и проверенной спецификации PHP Content Repository. Это обеспечивает гораздо лучшую совместимость с другими проектами и, например, возможность выбирать, хранить ли содержимое в Midgard2 или Apache Jackrabbit для каждого развертывания. Это, очевидно, не означает, что текущий Midgard2 API исчезает, но просто есть что-то лучшее и более совместимое, доступное поверх этого.

PHPCR предоставляет хороший набор возможностей, которые либо похожи, либо превосходят традиционные функции Midgard:

  • Ваша модель контента построена из дерева узлов, которые могут содержать другие узлы или свойства
  • Свойства могут быть разных типов, в том числе типичные строки и числа с плавающей запятой, а также двоичные файлы (похожие на наши двоичные объекты) и даты.
  • Свойства могут быть многозначными (например, несколько изображений в одном свойстве или человек, имеющий несколько электронных писем)
  • Запросы могут быть построены с использованием объектной модели запросов или SQL2.
  • Запросы поддерживают ограничения дерева (ISDESCENDANTNODE, ISCHILDNODE) ​​и объединения
  • Контент можно экспортировать и импортировать в стандартном формате XML
  • Существует комплексная система типов узлов, которая позволяет вам определять модель контента. Полные определения могут быть прочитаны и проанализированы через PHP
  • Узлы также поддерживают миксины , что позволяет добавлять метаданные для каждого объекта.
  • Есть также неструктурированные узлы ( nt: unstructured ) для случаев, когда вы не хотите иметь ограничения на то, что хранить и как

Помимо PHPCR, существует также Doctrine ODM, который также поддерживает поставщик Midgard2. Это дает вам больше возможностей, таких как:

Некоторые примеры кода: https://github.com/bergie/phpcr-midgard2/tree/master/examples

Вы можете увидеть тестовый статус Midgard как для хранилищ SQLite, так и для MySQL в нашей среде непрерывной интеграции : phpcr-midgard2.png

если у вас есть Midgard2 и наш Расширение PHP доступно, установка проста. Добавьте файл composer.json в корневую папку вашего проекта:

{
  "require": {
    "midgard/phpcr": ">=1.0"
  }
}

Установить с помощью Composer :

$ wget http://getcomposer.org/composer.phar
$ php composer.phar install

Скопируйте MgdSchemas:

$ sudo cp vendor/midgard/phpcr/data/share/schema/* /usr/share/midgard2/schema/
$ sudo cp vendor/midgard/phpcr/data/share/views/* /usr/share/midgard2/views/

… а затем просто начните использовать репозиторий в своем приложении. PHPCR, очевидно, может использоваться бок о бок с традиционным Midgard2 или другим PHP-кодом.

Что будет дальше:

  • Поддержка PHP 5.4 и Postgres (требуется работа на уровне Midgard2)
  • Оптимизация производительности
  • Особенности работы, включая управление версиями
  • Больше инструментов для PHPCR. Подумайте об Асгарде , который позволит вам работать с любыми хранилищами!
  • Встроенная поддержка PHPCR для MidCOM и MVC ?

Для тех, кто хочет узнать больше о PHPCR, в середине января также состоится парижская встреча .

 

Источник: http://bergie.iki.fi/blog/midgard2_phpcr_provider_hits_1-0/