lucinda / framework-engine
Lucinda Framework 3.0 的 API 集成引擎
Requires
- php: ^8.1
- ext-simplexml: *
- lucinda/console-mvc: ~2.0
- lucinda/errors-mvc: ~3.0
- lucinda/headers: ~2.0
- lucinda/logging: ~4.0
- lucinda/mvc: ~4.0
- lucinda/oauth2-client: ~3.0
- lucinda/security: ~4.0
Requires (Dev)
- lucinda/unit-testing: ^2.0
- dev-master
- v4.0.x-dev
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.x-dev
- v2.0.4
- v2.0.3.2
- v2.0.3.1
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.4.9
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.9
- v1.3.8
- v1.3.7
- v1.3.6.2
- v1.3.6.1
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3.3
- v1.3.3.2
- v1.3.3.1
- v1.3.3
- v1.3.2.2
- v1.3.2.1
- v1.3.2
- v1.3.0.1
- v1.3.0
- v1.2.8
- v1.2.7.2
- v1.2.7.1
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3.1
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.x-dev
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2024-09-09 14:14:25 UTC
README
此 API 存储了 Lucinda Framework 3.0 的内部组件,可供更新但不允许开发者更改。其中大部分类都专注于 API 绑定,因此以下类对开发者来说更有意义:
- Lucinda\Framework\AbstractCacheable
- Lucinda\Framework\AbstractLoginThrottler
- Lucinda\Framework\AbstractReporter
- Lucinda\Framework\Json
- Lucinda\Framework\RestController
API 完全符合 PSR-4 标准,仅需要 PHP7.1+ 解释器和 SimpleXML 扩展。它具有 100% 的单元测试覆盖率,使用 UnitTest API 而不是 PHPUnit 以提供更大的灵活性。
AbstractCacheable
这个抽象类是一个 \Lucinda\Headers\Cacheable,它绑定到 STDOUT MVC API 以实现能够为任何可缓存的请求资源生成 ETag/LastModified 头值的类的食谱。
该值将在项目与客户端浏览器之间的缓存驱动通信中使用,从而使得网站在后者没有更改的情况下,只需以 304 Not Modified 头响应而不是完整响应成为可能。
类定义了以下原型方法,开发者在扩展时必须实现:
由于绑定到 STDOUT MVC API,实现上述方法的类将有权访问以下受保护字段:
AbstractLoginThrottler
这个抽象类是一个 \Lucinda\WebSecurity\Authentication\Form\LoginThrottler,它通过 pow(2, failedAttempts-1)
秒来惩罚每次失败的登录,以抵御字典攻击。
在整个惩罚期间,登录将自动失败而无需检查数据库。连续失败的尝试越多,惩罚越大。一旦登录通过,所有惩罚都将取消。
类定义了以下原型方法,开发者在扩展时必须实现:
实现上述方法的类将有权访问以下受保护字段:
AbstractReporter
这个抽象类是一个 \Lucinda\STDERR\Reporter,它绑定到 Logging API 以根据它们的严重程度级别向日志报告错误,该级别由 exception 标签 @ stderr.xml 的 error_type 属性值识别,该标签匹配 \Exception 处理的异常。
类定义了以下原型方法,开发者在扩展时必须实现:
Json
这个类是对 PHP 原生函数的面向对象封装,封装了 json 生成和执行,如果处理失败则抛出 \Lucinda\Framework\Json\Exception。类定义了以下方法,所有这些都与开发者相关:
RestController
这个抽象类是一个 \Lucinda\MVC\Controller,如果您的项目是 RESTful Web 服务 API,则可以扩展它。扩展它的类必须实现针对每个 HTTP 方法相应路由的 supports 方法。
如果使用未在匹配控制器中涵盖的方法访问路由,则抛出 \Lucinda\STDOUT\MethodNotAllowedException!
与其他框架不同,Lucinda认为控制器“动作”是一种反模式,是臃肿、逻辑混乱的控制器产生的根源。只有在特定情况下,“动作”才有逻辑意义:根据调用时的HTTP方法行为不同的控制器。