-
Notifications
You must be signed in to change notification settings - Fork 699
/
Copy pathtest.php
50 lines (42 loc) · 1.13 KB
/
test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
* 行为型模式
*
* php备忘录模式
* 理解:就是外部存储对象的状态,以提供后退/恢复/复原
* 使用场景:编辑器后退操作/数据库事物/存档
*
* 下面我们来实现编辑器的undo(撤销)/redo(重置)功能
*
* @author TIGERB <https://github.com/TIGERB>
* @example 运行 php test.php
*/
// 注册自加载
spl_autoload_register('autoload');
function autoload($class)
{
require dirname($_SERVER['SCRIPT_FILENAME']) . '//..//' . str_replace('\\', '/', $class) . '.php';
}
/************************************* test *************************************/
use memento\Editor;
try {
// 初始化一个编辑器并新建一个空文件
$editor = new Editor('');
// 写入一段文本
$editor->write('hello php !');
// 保存
$editor->save();
// 修改刚才的文本
$editor->write(' no code no life !');
// 撤销
$editor->undo();
$editor->read();
// 再次修改并保存文本
$editor->write(' life is a struggle !');
$editor->save();
// 重置
$editor->redo();
$editor->read();
} catch (\Exception $e) {
echo 'error:' . $e->getMessage();
}