使用PHP将YAML添加到DB CRUD?

时间:2013-11-19 13:40:11

标签: php mongodb yaml mongodb-php

我希望有一个简单的PHP表单,它将YAML代码作为输入,并在提交时将其存储到MongoDB中。在编辑yaml代码时,记录的更新也应该以相同的方式发生。

我是编程的初学者,我不想使用框架或任何复杂的东西只是简单的PHP形式,需要yaml并转换为mongodb存储。 我该怎么办?

任何建议或示例代码,或者您是否知道以前的类似工作?

1 个答案:

答案 0 :(得分:0)

使用YAML Symfony component加载和解析YAML文件。解析文件的结果将是一个PHP数组。这个数组可以很容易地保存到MongoDB中:

1)Download Composer

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

2)使用composer安装YAML组件。创建composer.json文件并添加以下信息:

{
    "require": {
        "symfony/yaml": "2.3.*@dev"
    }
}

3)Install the component

$ php composer.phar install

4)使用要从YAML文件加载的代码创建一个php文件,并将结果保存到db。以下代码的一部分取自php.net mongodb tutorial

<?php

// autoload.php will be installed by composer
require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\Yaml\Yaml;

// Parse YAML file
$yaml = Yaml::parse(__DIR__.'/path/to/file.yml');

// connect
$mongo = new \MongoClient();

// select a database
$db = $mongo->yaml;

// select a collection (analogous to a relational database's table)
$collection = $db->imports;

// add a record
$document = $yaml;
$collection->insert($document);

// find everything in the collection
$cursor = $collection->find();

echo "<pre>";

// iterate through the results
foreach ($cursor as $document) {
    print_r($document);
}

echo "</pre>";

查看MongoDB中的数据:

> show dbs;
yaml    0.203125GB 
> use yaml;
switched to db yaml
> show collections;
imports
system.indexes
> db.imports.find();