4.2 KiB
README
Acast 是一个轻量级的 Web 框架。
简介
特性
-
支持路由、中间件、视图、模型、控制器等组件。
-
支持 HTTPS、异步处理、定时任务、TCP 转发等。
-
基于 Workerman 提供服务,性能高于 PHP-FPM。
-
支持长连接应用。封装了 GatewayWorker,可以便捷地实现客户端间通信。
-
即将加入对 Amp 的支持,可以在项目中使用 Amp 的高性能异步 I/O 组件。
依赖
-
Acast 依赖 Workerman 提供 HTTP 服务。需要在项目中包含最新的 Workerman 源码。
-
Acast 和 Workerman 依赖 PHP 的一些扩展,包括 pcntl、posix 和 memcached。
-
你或许需要考虑安装 event 扩展 来提高 Workerman 的性能。
-
Acast 框架依赖较新版本的 PHP (7.1.0 及以上),这是由于该框架对 nullable 和
Closure::fromCallable()
等特性的使用。
使用 Acast 框架
- 使用 composer 将 Acast 添加到项目中。
composer require cismonx/acast
-
使用 Acast 实现业务逻辑。
-
配置 Nginx 的端口转发、SSL 等。
-
像如下所示,在 PHP-CLI 中执行你的项目的入口文件。至此,服务已经启动。
php /Applications/main.php start -d
使用说明
服务提供者
每一个服务提供者是一个独立的应用实例,它监听一个指定的端口,负责接收并处理客户端的请求。
请求处理完毕后,服务提供者将数据返回给客户端,并断开连接。
有关服务提供者的详细文档,见这里。
路由
每一个路由与一个服务提供者绑定。根据用户请求的URI,路由决定将由哪个回调函数处理这个请求。请求完毕后,路由将返回数据传递给服务提供者。
可以为路由设置别名,从而实现路由分发。
有关路由的详细文档,见这里。
中间件
每一个中间件包含一个回调函数,当与之绑定的路由的回调函数即将被调用或调用之后,该回调函数会被调用。
中间件常常用于验证、过滤数据等。合理地使用中间件可以减少项目中的重复代码,使之更易维护。
有关中间件的详细文档,见这里。
控制器
控制器专注于处理业务逻辑。每一个路由可以与一个或多个控制器方法绑定。
每一个控制器也可以与一个模型和一个视图绑定。
有关控制器的详细文档,见这里。
模型
模型专注于数据库操作。每个服务中的所有模型与一个数据库绑定,服务中的每一个进程独立地与数据库建立连接。
所有涉及数据库操作的业务逻辑,建议在模型中实现,并由控制器调用。
有关模型的详细文档,见这里。
视图
视图主要用于格式化输出数据。支持 Memcached。
它也可以用于预先将本地的静态文件缓存到内存,在需要时快速地取出。
Acast 的视图可以很好地与 Plates 等模版兼容。
有关视图的详细文档,见这里。
计划任务
使用 Workerman 的定时器可以实现基本的计划任务。
此外,Acast 提供了一个对 Workerman 定时器的封装,用于对时间精确性要求不高的计划任务。
有关计划任务的详细文档,见这里。
迁移
这里迁移指数据库迁移。目前,Acast 支持格式化并执行指定 SQL 模版的方式实现数据库的初始化。
以后可能将加入数据导出功能。
有关数据库迁移的详细文档,见这里。
配置
Acast 提供了一个全局变量的简单封装,便于进行项目的相关配置参数的设置和获取。
配置项可以作用于当前进程,也可以多进程间共享。
有关配置项的详细文档,见这里
其他
有关 Acast\Socket\Enhanced
对 GatewayWorker 的封装及其使用,见这里。
有关 Acast 的其他功能及使用时的注意事项,见这里。