jamesflight/markaround

此包的最新版本(dev-master)没有可用的许可信息。

dev-master 2015-09-14 09:48 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:47:17 UTC


README

Build Status

Markaround是一个PHP库,允许将Markdown文件目录当作只读数据库进行交互,并模仿Laravel的Eloquent ORM语法。

此库的目的是使PHP中无需数据库即可轻松创建博客和文档阅读器,使用Markdown文件目录代替。

启动

创建新实例: <?php

$config = [
    'default_path' => 'path/to/markdown/files'
];

$markaround = Jamesflight\Markaround\Factory::create($config);

用法

保存Markdown文件

Markdown文件应使用以下命名规范之一保存

通过slug检索的文件

file-slug.md

通过id检索的文件

01_.md

通过日期检索的文件

2001-01-01.md

这些可以以任何组合顺序组合,顺序为id、日期、slug

01_2001-01-01-file-slug.md

01_file-slug.md

2001-01-01-file-slug.md

检索文件

检索所有文件

$posts = $markaround->all();

通过id检索文件

$posts = $markaround->find(1);
$posts = $markaround->findOrFail(1); // Throws a MarkdownFileNotFoundException if not found

通过日期检索文件

注意:可以使用任何有效的PHP日期时间格式。

$posts = $markaround->where('date', '1st January 2015')->get();

通过slug检索文件

$posts = $markaround->where('slug', 'file-slug')->get();

从结果集合中检索第一条记录

$post = $markaround->where('date', '1st January 2015')->first();
$post = $markaround->where('date', '1st January 2015')->firstOrFail(); // Throws a MarkdownFileNotFoundException if not found

检索满足一个或另一个条件的情况

$post = $markaround->where('id', 1)
            ->orWhere('id', 2)
            ->get();

比较运算符

您可以在where(或orWhere)查询的第二个参数中提供比较运算符

$posts = $markaround->where('id', '=', 1)->first();

可用的运算符有

等于:=

不等于:!=

小于:<

大于:>

大于等于:>=

小于等于:<=

以下是一些使用示例

$posts = $markaround->where('id', '!=', 1)->get();
$posts = $markaround->where('date', '>=', '1st January 2015')->get();

自定义字段

在每个Markdown文件的顶部,您可以使用YAML添加额外字段,您也可以通过这些字段进行查询

---
foofield: foo
barfield: bar
---
Markdown goes here

提供这些自定义字段可以实现以下功能

$posts = $markdown->where('foofield', '=', 'foo')->first();