snicco/snicco

Snicco项目的开发单仓库

v2.0.0-beta.9 2024-09-07 14:26 UTC

README

codecov Psalm Type-Coverage Psalm level PhpMetrics - Static Analysis PHP-Versions

在这个开发 单仓库 中,你会发现许多独立的包,这些包将帮助您更快地开发可测试的、可维护的且符合PSR规范的强大企业级WordPress项目。

此仓库中的所有包都专门设计为可在分布式WordPress代码中使用,并且默认可作用域

目录

  1. 仓库概览
    1. 组件
    2. 桥梁
    3. 中间件
    4. 测试
  2. 贡献
  3. 变更日志
  4. 安全性
  5. 许可证
  6. 致谢

仓库概览

您可以在 src/Snicco 目录中找到所有包。

以下是仓库的简要概述:(提示:点击链接访问每个包的专用文档)

组件

此目录包含完全解耦的PHP组件,您可以在任何WordPress(或任何其他PHP项目)中使用。

  • BetterWPAPI:一种更好的方式与分布式WordPress包中的WordPress核心功能交互。
  • BetterWPCache:使用WP_Object_Cache实现的PSR6/PSR16实现。支持缓存标签。
  • BetterWPCLI:WP-CLI的缺失部分,已经非常出色。
  • BetterWPHooks:2022年对WordPress钩子系统的重新设计。(PSR-14兼容)
  • BetterWPMail:对wp_mail函数的长期期待升级。
  • BetterWPDB:在WordPress中处理自定义表时让您保持安全和平静。
  • EventDispatcher:一个通用的、PSR-14兼容的事件调度器,为snicco/better-wp-hooks提供动力。
  • HttpRouting:一个基于fast-route的快速路由系统和PSR7/PSR15中间件调度器,特别适用于没有100%控制请求生命周期的遗留软件。
  • Kernel:一个最小化和可定制的应用程序引导器。
  • Psr7ErrorHandler:一个强大、PSR-7/PSR-3兼容的错误处理器。
  • Session:适用于由于各种原因不能使用$_SESSION的应用程序的自定义会话实现。
  • SignedURL:一个独立的包,用于生成和验证受保护的URL。
  • StrArr:一个零依赖、类型安全和与 psalm 兼容的实现,用于 illuminate/support 字符串和数组辅助工具。
  • Templating:用于使用和组合不同模板引擎的统一、不可变 API。
  • TestableClock:测试依赖于时间的代码的帮助类。

桥梁

此目录包含一个组件中定义的接口的不同实现。

中间件

此目录包含可以插入到 snicco/http-routing 组件的 PSR15 中间件。

  • DefaultHeaders:向所有发出的响应添加自定义头。
  • HttpsOnly:将所有请求重定向为 HTTPS。
  • MethodOverride:允许将表单提交处理为 PUT|PATCH|DELETE 请求。
  • Negotiation:执行内容和语言协商。
  • NoRobots:禁止搜索引擎索引当前请求路径。
  • Payload:将 JSON(和其他)数据转换为普通的 PHP 数组。
  • Redirect:将请求重定向到配置的位置。
  • ShareCookies:将 cookie 对象转换为响应头。
  • TrailingSlash:将 /foo/ 重定向为 /foo 或相反。
  • WPAuthOnly:仅授予已认证的 WordPress 用户访问权限。
  • WPCapability:仅授予配置了权限的 WordPress 用户的访问权限。
  • WPGuestsOnly:仅授予访客 WordPress 用户的访问权限。
  • WPNonce:一次性解决所有 WordPress Nonces 问题。

bundlesnicco/kernel 组件的插件,它集成了一个或多个 组件桥梁,以提供开箱即用的功能。

虽然所有组件都可以在不使用 snicco/kernel 组件的情况下使用,但 bundles 使得使用和配置变得轻松。

测试

此目录包含 组件 的测试实用程序。这些软件包仅应作为开发依赖项使用。

贡献

我们为我们的 贡献指南 设立了单独的文档。

变更日志

我们的变更日志 是使用神奇的 npmsemantic-release 自动生成的。

安全性

请审查我们的安全策略,了解如何安全地报告漏洞。

许可证

本项目遵循GNU LGPLv3许可协议,除非每个包的相应LICENSE.md文件中另有说明。请参阅LICENSE.md

致谢

我们想特别感谢