PHPackages                             ziopod/flatfile - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. ziopod/flatfile

ActiveKohana-module[Database &amp; ORM](/categories/database)

ziopod/flatfile
===============

A simple FlatFile ORM

v0.0.2.8(7y ago)2138[6 issues](https://github.com/ziopod/flatfile/issues)[2 PRs](https://github.com/ziopod/flatfile/pulls)2PHPPHP &gt;=5.3.0

Since Jul 27Pushed 7y ago2 watchersCompare

[ Source](https://github.com/ziopod/flatfile)[ Packagist](https://packagist.org/packages/ziopod/flatfile)[ Docs](http://ziopod.com)[ RSS](/packages/ziopod-flatfile/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (20)Used By (2)

Flatfile
========

[](#flatfile)

A simple Flatfile ORM

How to use it
-------------

[](#how-to-use-it)

This is a example with a Welcome controller.

### Create your model

[](#create-your-model)

Create a page model:

```
| application
	| classes
		| Model
			Page.php

```

In your model:

```
class Model_Page extend Flatfile {

	/**
	* Somes filters
	*
	* @return array
	**/

	public function filters()
	{
		return array(
			array(
				'content' => array('Flatfile::Markdown'),
			),
		);
	}
}

```

### Create your content

[](#create-your-content)

In your root project:

```
| content
	| pages
		hello-world.md

```

In your hello-world file:

```
title: Hi!
---
Hello **World**

```

### Grab your content

[](#grab-your-content)

Create your controller

```
| application
	| classes
		| Controller
			Welcome.php

```

In your controller, in classic Kohana MVC design pattern

```
class Controller_Welcome extends Controller {

	/**
	* Action call by defaults
	*
	* @return void
	**/

	public function action_index()
	{
		$view = View::factory('welcome/index')
			->bind('page', $page);
		$page = new Model_Page('hello-world');
		$this->response->body($view);
	}
}

```

### Show your content

[](#show-your-content)

Create your View

```
| application
	| views
		| welcome
			index.php

```

In your view index

```

```

### The result

[](#the-result)

```

		Hi!

		Hello World

```

Filters
-------

[](#filters)

Similar usage to Kohana ORM.

Flatfile embed a specifics filters :

### Markdown

[](#markdown)

Process a Markdown transformation.

### str\_to\_list

[](#str_to_list)

Convert a comma separate list to an array of term and slug.

For example :

```
tags: Laitue, Choux rouge

```

Be converted to

```
array(
	array(
		'name'	=> 'Laitue',
		'slug'	=> 'laitue',
	),
	array(
		'name'	=> 'Choux rouge',
		'slug'	=> 'choux-rouge',
	),
)

```

Usefull, for example, to create a list of tags; in your view :

```

```

### json\_api

[](#json_api)

Give him a json API service address, it will return a result ready to use.

For example :

```
bloginfo: https://api.tumblr.com/v2/blog/blogdamientran.tumblr.com/info?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4

```

Resulting to

```
stdClass Object
(
	[blog] => stdClass Object
	(
		[title] => Damien Tran
		[name] => blogdamientran
		[posts] => 66
		[url] => http://blogdamientran.tumblr.com/
		[updated] => 1434963170
		[description] => damientran.com - palefroi.net
		[is_nsfw] =>
		[ask] =>
		[ask_page_title] => Ask me anything
		[ask_anon] =>
		[share_likes] => 1
		[likes] => 6
	)
)

```

You can use the result in your view

```
