The simplest web framework you've ever seen.
This repository has been archived on 2017-08-03. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
CismonX f25c2fb95e
archive
2017-08-03 18:07:06 +08:00
readme archive 2017-08-03 18:07:06 +08:00
src archive 2017-08-03 18:07:06 +08:00
.gitignore archive 2017-08-03 18:07:06 +08:00
LICENSE archive 2017-08-03 18:07:06 +08:00
README.md archive 2017-08-03 18:07:06 +08:00
composer.json archive 2017-08-03 18:07:06 +08:00

README.md

README

Acast 是一个轻量级的 Web 框架。

简介

特性

  1. 支持路由、中间件、视图、模型、控制器等组件。

  2. 支持 HTTPS、异步处理、定时任务、TCP 转发等。

  3. 基于 Workerman 提供服务,性能高于 PHP-FPM。

  4. 支持长连接应用。封装了 GatewayWorker可以便捷地实现客户端间通信。

  5. 即将加入对 Amp 的支持,可以在项目中使用 Amp 的高性能异步 I/O 组件。

依赖

  1. Acast 依赖 Workerman 提供 HTTP 服务。需要在项目中包含最新的 Workerman 源码。

  2. Acast 和 Workerman 依赖 PHP 的一些扩展,包括 pcntl、posix 和 memcached。

  3. 你或许需要考虑安装 event 扩展 来提高 Workerman 的性能。

  4. Acast 框架依赖较新版本的 PHP (7.1.0 及以上),这是由于该框架对 nullable 和 Closure::fromCallable() 等特性的使用。

使用 Acast 框架

  1. 使用 composer 将 Acast 添加到项目中。
composer require cismonx/acast
  1. 使用 Acast 实现业务逻辑。

  2. 配置 Nginx 的端口转发、SSL 等。

  3. 像如下所示,在 PHP-CLI 中执行你的项目的入口文件。至此,服务已经启动。

php /Applications/main.php start -d

使用说明

服务提供者

每一个服务提供者是一个独立的应用实例,它监听一个指定的端口,负责接收并处理客户端的请求。

请求处理完毕后,服务提供者将数据返回给客户端,并断开连接。

有关服务提供者的详细文档,见这里

路由

每一个路由与一个服务提供者绑定。根据用户请求的URI路由决定将由哪个回调函数处理这个请求。请求完毕后路由将返回数据传递给服务提供者。

可以为路由设置别名,从而实现路由分发。

有关路由的详细文档,见这里

中间件

每一个中间件包含一个回调函数,当与之绑定的路由的回调函数即将被调用或调用之后,该回调函数会被调用。

中间件常常用于验证、过滤数据等。合理地使用中间件可以减少项目中的重复代码,使之更易维护。

有关中间件的详细文档,见这里

控制器

控制器专注于处理业务逻辑。每一个路由可以与一个或多个控制器方法绑定。

每一个控制器也可以与一个模型和一个视图绑定。

有关控制器的详细文档,见这里

模型

模型专注于数据库操作。每个服务中的所有模型与一个数据库绑定,服务中的每一个进程独立地与数据库建立连接。

所有涉及数据库操作的业务逻辑,建议在模型中实现,并由控制器调用。

有关模型的详细文档,见这里

视图

视图主要用于格式化输出数据。支持 Memcached。

它也可以用于预先将本地的静态文件缓存到内存,在需要时快速地取出。

Acast 的视图可以很好地与 Plates 等模版兼容。

有关视图的详细文档,见这里

计划任务

使用 Workerman 的定时器可以实现基本的计划任务。

此外Acast 提供了一个对 Workerman 定时器的封装,用于对时间精确性要求不高的计划任务。

有关计划任务的详细文档,见这里

迁移

这里迁移指数据库迁移。目前Acast 支持格式化并执行指定 SQL 模版的方式实现数据库的初始化。

以后可能将加入数据导出功能。

有关数据库迁移的详细文档,见这里

配置

Acast 提供了一个全局变量的简单封装,便于进行项目的相关配置参数的设置和获取。

配置项可以作用于当前进程,也可以多进程间共享。

有关配置项的详细文档,见这里

其他

有关 Acast\Socket\Enhanced 对 GatewayWorker 的封装及其使用,见这里

有关 Acast 的其他功能及使用时的注意事项,见这里