danharper / stem
一个简单的PHP fixtures库
dev-master
2013-03-04 11:51 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- mockery/mockery: dev-master
This package is auto-updated.
Last update: 2020-01-10 14:49:05 UTC
README
一个简单的PHP fixtures库。(这主要是我练习编写TDD的练习,但我认为这很有用)
示例
声明一个fixture应该是什么样子
Stem::fixture('User', array( 'id' => ':int' 'name' => '2:words', 'email' => ':email', 'bio' => ':string', ));
然后使用它
$fixture = Stem::attributes('User'); // array( // 'id' => 29, // 'name' => 'foo banana', // 'email' => 'mascot28384@bread.example.com', // 'bio' => 'dawn chat grandpa ballplayer cell Jill wing brainstorm chill Jills hunk ache' // )
或者直接从它创建一个真实对象
$obj = Stem::make('User'); // this calls: // new User(array( ... ))
在更简单的情况下,你可能只需要几个随机单词
Stem::run('3:words');
安装
Laravel
- 将
"danharper/stem": "dev-master"
添加到你的composer.json
中,并更新/安装 - 将
'danharper\Stem\Facades\Laravel\StemServiceProvider'
添加到app/config/app.php
中的providers数组 - 将
'Stem' => 'danharper\Stem\Facades\Laravel\Stem'
添加到app/config/app.php
中的aliases数组
使用它
Stem::run('3:words');
本地
使用"danharper\stem": "dev-master"
从Composer获取。
然后你有两种方法可以使用它
use danharper\Stem\Facades\Native\Stem as Stem; Stem::run('3:words');
use danharper\Stem\Stem as Stem; $stem = new Stem; $stem->run('3:words');
提供的处理程序
:string
和:words
-- 使用数字前缀表示单词数量,例如3:words
:word
-- 对于单个单词,为了在代码中清晰,你可以甚至写1:word
(1:words
也行):int
和:number
-- 使用数字前缀表示从0到给定数字的数字:email
注册自己的处理程序
使用一个类
向Stem::register()
提供一个对象,该对象响应register
并返回其希望被识别的名称,当被告诉run
(可选修饰符)时返回要显示的内容。为了清晰,实现danharper\Stem\Handlers\HandlerInterface
。
class CustomHandler { public function register() { return 'custom'; } public function run($modifier) { if ($modifier) return "something $modifier"; else return "something else"; } } Stem::register(new CustomHandler); Stem::run('lorem:custom'); // something lorem Stem::run(':custom'); // something else
使用一个闭包
向Stem::register()
提供一个与上面类中的run方法行为一致的闭包,以及第二个参数表示其希望被识别的名称。
Stem::register(function($modifier) { if ($modifier) return "something $modifier"; else return "something else"; }, 'foobar'); Stem::run('baz:foobar'); // something baz Stem::run(':foobar'); // something else