FastAdmin后台的数据隔离方案

FastAdmin后台的数据隔离,这个场景最近经常遇到,一个系统分了好多个角色/端,每个角色/端的权限不同,能看到的数据也就不同,这就涉及到数据隔离。

举个简单例子吧,用户角色为平台+业务员+机构+学员的系统,后台角色如下:

1. 系统的最高权限是平台端,能看到所有数据;
2. 业务员负责开拓机构,他能看到机构的数据;
3. 机构发展学员,能看到机构下的学员数据。

EasySwoole Task执行超时的问题

最近在使用EasySwoole处理异步任务(Task)时遇到了一个问题。

有一个Task,原本是在`EasySwooleEvent.php`中注册Crontab并异步调用这个Task运行的,好像没啥问题。但当把这个Task改为在Http控制器中执行时,问题出现了。

这个Task的运行时长通常在2分钟左右,在Crontab中能正常运行,而通过Http控制器去请求同步执行时,基本上都是在8秒左右就结束了,并且返回一个`-7`的错误代码,EasySwoole官网文档中说这个错误是因为超时。

PHP怎么自动清空Redis数据

怎么自动清空Redis数据?

我们知道通过`redis-cli`命令行是可以进行Redis的交互操作的,其中有个命令`flushall`是清空所有数据,但是这个命令不能做到自动化。那就只能通过程序去操作了,再配合定时任务就可以做到自动化清空。

以PHP为例,首先需要安装Redis扩展,方法有好几种:

在WSL2下做PHP开发太方便了

WSL(Windows Subsystem for Linux),即Windows下的Linux子系统,为使用Windows的Linux开发者提供了很大的便利,当前的WSL大版本是2,已支持systemd,对开发者更是利好。

本人主要用PHP和Python开发,近期也尝试了在WSL2下进行PHP开发,Linux发行版使用的是Ubuntu 20.04。

EasySwoole3.4升级到3.5的变化

之前用EasySwoole的时候是版本3.4,最新的版本已经是3.7了,但需要PHP8版本,3.6版本也同样需要PHP8才可以,而3.5版本有PHP7.4就可以了,所以先升级到3.5吧。

因为老项目里的代码不多,所以我采用的是全新安装框架的方式,再把老项目里的代码迁移过去。迁完运行,发现一些问题:

PHP中的PSR标准是什么?

PHP中的PSR标准是什么?最新的版本是多少?另外遵循PSR有什么好处?

PSR是PHP Standards Recommendation的简称,是由PHP-FIG组织制定的一套PHP编码规范,旨在提高PHP代码的可读性和可维护性,促进不同框架之间的协作。目前,PHP-FIG已经发布了16个PSR标准,其中最新的是PSR-16,关于简单缓存接口的规范。

PHP中怎么给文件加读锁和写锁

在PHP中,给文件加读锁和写锁的一种方法是使用flock函数。

`flock`函数可以对一个已经打开的文件指针进行锁定或解锁操作。读锁(共享锁)用`LOCK_SH`参数表示,写锁(排他锁)用`LOCK_EX`参数表示。

例如,如果想给一个文件加上写锁,可以这样写:

豫ICP备19001387号-1