Skip to content

esd-projects/esd-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasySwooleDistributed

Latest Version Php Version Swoole Version ESD Doc ESD License

简单,易用,高性能,高扩展性,拥有强大的插件管理和丰富的插件系统,高颜值的PHP协程框架,简称ESD。

由SwooleDistributed与EasySwoole合作打造最棒的swoole框架。

交流群:994811283

✨ 文档地址

https://www.kancloud.cn/tmtbe/goswoole/1067764

✨ 日志系统

类似SpringBoot的日志系统,更加清楚的日志展现。

⚡️ 插件系统

丰富插件库,目前收录了接近30个插件,通过加载组装不同的插件提供更强大的功能。

$this->addPlug(new EasyRoutePlugin());
$this->addPlug(new ScheduledPlugin());
$this->addPlug(new RedisPlugin());
$this->addPlug(new MysqlPlugin());
$this->addPlug(new AutoreloadPlugin());
$this->addPlug(new AopPlugin());

加载插件只需要一行代码

⚡️ DI与注解

支持注解,框架提供大量可使用的注解,比如注解路由,注解事务,注解缓存,注解验证等。

/**
 * @RestController("user")
 * Class CUser
 * @package ESD\Examples\Controller
 */
class CUser extends Base
{
    /**
     * @Inject()
     * @var UserService
     */
    private $userService;

    /**
     * @GetMapping("login")
     * @return string
     */
    public function login()
    {
    }
}

注解不是强制使用的,完全可以不使用注解。框架均提供了常规使用方式。

⚡️ AOP

完整支持面向切片编程。

$this->addAspect(new MyAspect);

/**
 * @param MethodInvocation $invocation Invocation
 *
 * @Around("@execution(ESD\Plugins\Mysql\Annotation\Transactional)")
 * @return mixed
 * @throws \Throwable
 */
public function aroundTransactional(MethodInvocation $invocation)

⚡️ Tracing 链路追踪

通过加载Tracing插件可以实现服务链路性能的监控,支持微服务

⚡️ 分布式与微服务

提供分布式与微服务的插件组织:

https://github.com/esd-cloud

目前收录的插件

Docker运行环境(由anythink提供)

➜ docker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest
 _____ ____  ____    ____              _   _
| ____/ ___||  _ \  |  _ \ _   _ _ __ | |_(_)_ __ ___   ___
|  _| \___ \| | | | | |_) | | | | '_ \| __| | '_ ` _ \ / _ \
| |___ ___) | |_| | |  _ <| |_| | | | | |_| | | | | | |  __/
|_____|____/|____/  |_| \_\\__,_|_| |_|\__|_|_| |_| |_|\___|
ESD framework Runtime Environment
version 1.5 author by anythink
root@f41132062911:/data# 

docker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest

请在 ESD 根目录运行容器,否则修改$PWD为代码根路径(windows需要用%cd%替换$PWD),如果修改了端口请把8080 修改为自己使用的端口. 镜像启动后的目录即挂载到主机的代码目录,注意 Mac 系统无法使用 inotify 热加载功能。 容器启动后按照安装步骤,运行框架。

🍭 性能测试

4核8G SSD盘 腾讯云高IO型I2服务器压测,框架压测包含路由

worker_num = 4

swoole ab压测输出hello 平均 5.9QPS万

ESD框架 ab压测输出hello 平均 3.6QPS万

SD框架 ab压测输出hello 平均 1.3QPS万

压测数据来自:A-Smile

🖊️ 如何贡献

非常欢迎您对ESD的开发作出贡献!

你可以选择以下方式向ESD贡献:

📃 开源协议

Apache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html

About

⚡️ EasySwoole Distributed

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors