jamesflight / markaround
此包的最新版本(dev-master)没有可用的许可信息。
dev-master
2015-09-14 09:48 UTC
Requires
- erusev/parsedown: ~1.1
- illuminate/filesystem: >=4.2
- illuminate/support: >=4.2
- symfony/yaml: ~2.5
Requires (Dev)
- codeception/codeception: 2.0.7
- mockery/mockery: 0.9.2
- phpmd/phpmd: 2.1.3
- phpspec/phpspec: 2.1.0-RC1
- squizlabs/php_codesniffer: 1.5.5
This package is not auto-updated.
Last update: 2024-09-28 16:47:17 UTC
README
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();