swiftly/framework

一个简单的PHP框架。

v1.0-beta 2021-07-03 18:32 UTC

This package is auto-updated.

Last update: 2024-09-26 17:17:34 UTC


README

关于

Swiftly是一个简单、小巧的MVC风格框架,专为快速原型设计小型网站或系统。它绝不是功能齐全的框架,任何想要构建复杂或大型项目的人可能应该停止阅读并寻找更合适的工具。

Swiftly最初在2019年夏天作为一个学习项目开始,但很快发展成今天这个迷你框架。Swiftly不适用于生产环境。它缺乏真正的安全性和高级功能,甚至无法保证在大多数情况下都能正常工作。然而,如果您只需要一个快速搭建原型的脚手架,Swiftly可能正是您所需要的无废话框架!

结构

Swiftly中的代码结构非常类似于目前大多数MVC框架。您的代码将主要分为控制器、模型和视图。

控制器

控制器是框架的主要驱动程序。在这里,处理传入的请求、执行业务逻辑和处理用户输入。对于典型的Web应用程序,几乎每个控制器的工作都是通过模型与数据库进行通信,并返回一个渲染的视图文件。

所有控制器都位于App/Controller目录中。

模型

模型,如大多数框架,负责与数据库通信并确保响应以有用的格式表示。

待办事项

所有模型都位于App/Model目录中。

视图

待办事项

所有视图都位于App/View目录中。

路由

假设我想定义一个/hello路由。我需要做的第一件事是编辑routes.json文件。该文件位于config/目录中,其中包含一个列表,包含应用程序中所有可能的路由以及它们对应的控制器和它们支持的HTTP方法。

如果您打开示例config/routes.json文件,您应该看到类似以下内容

{
    "home": {
        "path":     "/",
        "methods":  ["GET"],
        "handler":  "Home::index"
    }
}

此块定义了一个名为“home”的路由,该路由将匹配根URL / 的GET请求,并由Home控制器的index方法处理。每个路由定义可以有以下值

路径

必需的

要匹配的URL路径。

"path": "/hello/world"

接受有效的字符串。

注意:目前,所有URL必须以反斜杠/开头。

处理器

必需的

用于处理此路由的控制器。

"handler": "Controller::method"

接受格式为"Controller::method"的字符串或格式为[ "Controller", "method"]的2元素数组。

方法

*可选*

此路由允许的HTTP方法。

"methods": ["GET", "POST"]

HTTP动词数组。

目前,Swiftly仅支持以下方法

  • GET
  • POST
  • PUT
  • DELETE
  • UPDATE

标签

*可选*

参考

// TODO: 记录重要函数