umonkey/ufw1

此包的最新版本(dev-master)没有可用的许可信息。

基于slim的宠物项目网站框架

dev-master 2020-04-03 10:23 UTC

This package is auto-updated.

Last update: 2024-08-29 05:18:36 UTC


README

这个项目包含了我经常在我的网站上重用的组件。它基于Slim Framework,因为它的代码清晰、简单且易于理解。

概念

使用ADR模式(行动-领域-响应器)。动作是轻量级的控制器,只有一个动作,没有逻辑:工作是将输入数据解析并传递给领域。领域是一个处理输入数据、执行工作(可能调用其他服务)并返回响应负载的服务。响应器根据内容和其他环境(XHR等)将负载渲染为实际的HTTP响应。这使得应用程序可以接受单元测试。

使用依赖注入,以Symfony服务命名。服务是按需加载的代码的独立部分。控制器通过名称从容器中提取参数。内置服务包括数据库、记录器、节点和文件工厂、S3、搜索引擎、词干提取器、任务队列、Telegram通知、Twig模板渲染器、缩略图生成器和维基引擎。

使用“节点”,单个内容块,如页面、投票、文章、论坛主题或博客条目。这受到Drupal的启发,工作良好,大大简化了文档管理。

使用任务队列进行后台任务执行。有一个独立的守护程序监视任务队列表并运行任务处理程序。这使得应用程序可以快速响应,将长时间任务卸载到队列工作程序并序列化任务。最佳用于上传文件到云端、发送邮件和其他通知。

使用存储库/实体模式来访问数据。实体目前只是围绕ArrayObject的包装,增强了一点。实体对存储一无所知,也不与其交互——这是存储库的作用(参见Nodes模块)。没有ORM,没有查询构建器——SQL是可移植的且足够简单。

服务

自定义服务在config/services.php中配置,标准服务通过Util::containerSetup()设置。

文件夹结构

  • bin:维护脚本。
  • config:各种设置。文件名合理,注释解释了细节。
  • docs:一些组件的文档。
  • src:所有源文件。
  • templates:内置的Twig模板,可以在实际应用程序中使用作为后备。
  • tests:phpunit文件。
  • vendor:第三方组件。

安装

$ composer require umonkey/ufw1:dev-default

待办事项

主要

  • 切换到action-domain-responder。
  • 将wiki、admin UI、博客等解耦到单独的包中。

次要

  • 一些常见的CLI函数。
  • 更好的单元测试覆盖率。

推荐阅读