ziopod / flatfile
该包最新版本(v0.0.2.8)没有提供许可证信息。
简单的FlatFile ORM
v0.0.2.8
2018-09-26 13:47 UTC
Requires
- php: >=5.3.0
- composer/installers: ~1.0
Requires (Dev)
- phpunit/phpunit: ^6
README
简单的Flatfile ORM
如何使用它
这是一个使用Welcome控制器的示例。
创建你的模型
创建一个页面模型
| application
| classes
| Model
Page.php
在你的模型中
class Model_Page extend Flatfile {
/**
* Somes filters
*
* @return array
**/
public function filters()
{
return array(
array(
'content' => array('Flatfile::Markdown'),
),
);
}
}
创建你的内容
在你的根项目中
| content
| pages
hello-world.md
在你的hello-world文件中
title: Hi!
---
Hello **World**
获取你的内容
创建你的控制器
| application
| classes
| Controller
Welcome.php
在你的控制器中,按照经典的Kohana MVC设计模式
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);
}
}
显示你的内容
创建你的视图
| application
| views
| welcome
index.php
在你的视图index中
<html>
<head>
<title>
<?php echo $page->title; ?>
</title>
</head>
<body>
<?php echo $page->content; ?>
</body>
</html>
结果
<html>
<head>
<title>Hi!</title>
</head>
<body>
Hello <strong>World</strong>
</body>
</html>
过滤器
与Kohana ORM类似的用法。
Flatfile内嵌了一些特定的过滤器
Markdown
处理Markdown转换。
str_to_list
将逗号分隔的列表转换为术语和缩略语的数组。
例如
tags: Laitue, Choux rouge
将转换为
array(
array(
'name' => 'Laitue',
'slug' => 'laitue',
),
array(
'name' => 'Choux rouge',
'slug' => 'choux-rouge',
),
)
例如,可用于创建标签列表;在你的视图中
<uL>
<?php foreach($page->tags as $tag): ?>
<li>
<a href="http://my_awesome_blog.com/posts/tag/<?php echo $tag['slug']; ?>">
<?php echo $tag['name']; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
json_api
提供json API服务地址,它将返回一个可以直接使用的结果。
例如
bloginfo: https://api.tumblr.com/v2/blog/blogdamientran.tumblr.com/info?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4
结果为
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
)
)
你可以在视图中使用这个结果
<a href="<?php echo $page->bloginfo->blog->url; ?>">
See the blog <?php echo $page->bloginfo->blog->title; ?>
</a>
Flatfile方法
Flatfile包含一些有用的方法