Разработчикам   / шаблоны сайтов / создание сайтов / форум / партнерство
Авторизация Закрыть [x]  
     
   
Запомнить / Напомнить
SiteEdit

Найти:


Карта сайта

Сайт разработчиков SiteEdit

Yaml и DB

Категории:

Статический класс seYaml

Язык YAML ("YAML Ain't Markup Language") первоначально претендовал на роль полноценной замены XML, но затем акцент сместился в сторону максимально гибкого описания данных. Он позволяет наиболее полно отображать основные типы данных, используемых современными языками программирования, сохраняя при этом максимальную простоту как для человека, так и для программного анализа. Wikipedia называет YAML форматом сериализации данных (http://ru.wikipedia.org/wiki/YAML), что очень точно отражает его основную задачу. И действительно, YAML можно с успехом использовать для маршалинга (т.е. для представления данных в памяти в формат, пригодный для хранения и передачи, см. http://ru.wikipedia.org/wiki/Маршалинг) или постоянного хранения на диске тех или иных структур данных: скажем, в языке Python для сериализации традиционно используется модуль pickle, в Ruby часто используют модуль Marshal, аналогичные решения есть и в других языках. Но если возникает необходимость организовать обмен данными между скриптами, написанными на различных языках программирования, то уже требуется какой-нибудь универсальный язык сериализации. YAML может использоваться в этой роли почти без ограничений.

Пример файла yml

catalog_demand:
   tableName: catalog_demand
   tableType:
     engine: innoDB
     charset: utf8
   actAs: [Timestampable]
   columns:
     id:
       type: integer
       unsigned: true
       notnull: true
       primary: true
       sequence: catalog_demand_id
     domain_name:
       type: string(50)
       notnull: true
     rubric1:
       type: integer
       unsigned: true
       notnull: true
     add_catalog:
       type: enum
       values: ['Y','N']
       notnull: true
       default: N
  indexes:
     uprice:
       type: unique
       fields: ['domain_name','rubric1']   

Класс seYaml имеет следующие методы:

public static function load($input)

$input - имя yml файла

$ymlres = seYAML::Load('schema/catalog_demand.yml');
foreach($ymlres as $classname=>$value){
$tablename = $value['tableName'];
$tabletype = $value['tableType'];
}

public static function dump($array, $inline = 2) - создание дампа yml из массива

  • $array  - массив данных
  • $inline - число пробелов для разделения уровнеу
  • Метод возвращает текст дампа в формате Yaml

$dump = seYAML::Dump($dadalist);
$f = fopen('schema/table.yml', "w+");
fwrite($f, $dump);
fclose($f);

 
Copyright © Edgestile Company, 2004-09
тел.:  8 (495) 229-45-50, 8 (812) 777-01-30, 8 (34241) 3-69-90
e-mail:  info@siteedit.ru - общие вопросы
icq: 268-447-867 - общие вопросы
все контакты