nonagod / user-actions
3.0.0
2022-05-18 13:25 UTC
Requires
- php: >=7.4
- nonagod/service: ^2
This package is auto-updated.
Last update: 2024-09-18 18:37:02 UTC
README
使用 php
语言实现用户操作抽象的服务器端部分。
安装
composer require nonagod/user-actions
初始化
composer require nonagor/user_actions
使用
示例使用可以在 examples
文件夹中查看。
初始化
类对象必须在输出任何内容之前创建,并在定义所有所需结构之后创建。
use \Nonagod\UserActions\Manager; global $UAManager; $UAManager = new Manager( $_SERVER['DOCUMENT_ROOT'] . '/examples/_resources/UAM');
__constructor( $path )
:
string $path
- 处理器动作文件夹的绝对路径
注意:建议将处理器目录放置在网站之外或限制用户访问。
处理器
<?php /** * @var Nonagod\UserActions\Manager $this */ $this->succeed("Выполнено"); $this->failed("ERROR", "Ошибка");
注意:每个处理器都必须调用相应的结束方法。
注意:
Nonagod\UserActions\Manager
捕获\Nonagod\Exceptions\UserException
并自动调用failed
。在这种情况下,处理器中不需要显式调用。
succeed( $answer_data = null )
:
发送处理器成功完成的通知。
?mixed $answer_data
- 用于在客户端进行额外处理的任意数据
failed( string $code, string $msg = null, $error_info = null )
:
发送处理器错误的通知。
string $code
- 错误代码?string $msg
- 错误的简短描述?mixed $error_info
- 用于在客户端进行额外错误处理的附加数据
内容请求
<?php // ... some code global $UAManager $UAManager->defineStartOfContentPart('<part_name>'); // требуемый кусок страницы $UAManager->defineEndOfContentPart('<part_name>'); // ... more code
注意:
defineStartOfContentPart
和defineEndOfContentPart
是成对的方法。
defineStartOfContentPart( $name )
:
定义请求内容部分的开始。
string $name
- 页面部分的代码标识
defineEndOfContentPart( $name )
:
定义请求内容部分的结束。
string $name
- 页面部分的代码标识
格式
请求
{ user_action: "<название_действия>|buffer", // обязательный, действия которое нужно выполнить part: "<название_запрашиваемой_части_контента>", // обязательный, если действие buffer "<дополнительные_параметры>": "<значение>" // дополнительные, произвольные параметры требуемые для действий }
成功响应
{ status: true, result: "mixed", // произвольный, зависит от выполненного действия }
错误响应
{ status: false, result: { code: "string", // обязательный, код ошибки msg: "string", // текстовое пояснение ошибки info: "mixed" // произвольный, дополнительные данные ошибки, если требуются } }
其他声明
- 日志记录、验证码等在需要的地方在处理器中完成。
待办事项
- 捕获其他错误(除了
UserExceptions
),记录日志并返回给用户通用错误消息(“出了点问题”) - 考虑为处理器创建自己的类,以从处理器中移除冗余操作。(+ 管理验证和回滚)
- 替换
defineStartOfContentPart
方法中清除活动缓冲区的方法
/*for( $i = 0; $i < ob_get_level()+1; $i++ ) { $trashed_content = ob_get_clean(); unset($trashed_content); }*/ while( ob_get_length( )) { $trashed_content = ob_get_clean(); unset($trashed_content); }