一个轻量的 PHP 框架
一个简单的 PHP "框架"?又或者可以说是应用模板。
ORM 使用 Eloquent ORM ,路由使用 FastRoute
大部分的接口设计参考了 Laravel,采用门面模式 (Facade) ,单例模式 (Singleton) ,控制反转 (IoC) ,以及 依赖注入 (DI) 的设计,部分也用到了其他的设计模式。
集成了一个 IoC 容器,兼容 PSR-11
支持和 ReactJS 集成,其他前端框架也是可以的,不过我只写了 ReactJS 的配置。
支持 PSR-15 标准的中间件。
封装了请求和响应,根据 PSR-7 标准进行设计,但增加了类似 Laravel 的接口。
支持通过注解设置依赖注入,路由以及中间件
支持 Aop,但是由于没有使用继承代理的方式,所以支持切入的范围有限,目前支持门面切入和控制器切入,同时在容器中也添加了相应的方法提供切入的功能。
之所以不使用继承代理的方式,是因为 PHP 没有类似 Java 中的 Proxy 反射接口,PHP 继承代理需要使用 eval 或 require 的方式动态声明 class,会有安全的风险。
提供一个简单的观察者实现,虽然说一般也没啥用。
使用 APCu 来缓存注解
提供了一个任务队列的实现,类似于协程,可以主动让出,但是由于 PHP 没有多线程机制所以无法实现非阻塞。
由于首次写这种项目,所有会有很多设计缺陷和漏洞,不建议将该项目用于任何生产环境,仅用于学习就可以啦,若您有更好的建议或者发现不足的地方欢迎反馈。
写这个项目的目的是为了下一个博客项目准备的,因为不打算用任何框架,所以就有了这个项目 2333。
git clone https://github.com/syfxlin/xkphp.gitcomposer install某些情况下 laminas/laminas-httphandlerrunner 可能无法正常安装,此时就需要先安装 laminas/laminas-diactoros
yarnphp -r "echo base64_encode(openssl_random_pseudo_bytes(32));"composer migration:upphp -S 0.0.0.0:8000 -t public暂无
XK-PHP 由 Otstar Lin 和下列 贡献者 的帮助下撰写和维护。
Otstar Lin -Personal Website · Blog · Github
根据 Apache License 2.0 许可证开源。