PHP 网络应用框架

0.8.13 2024-06-18 12:44 UTC

README

Packagist Travis Coverage Status License

Coast 是一个网络应用框架。Coast 的目标是提供简单、轻量级且灵活的框架,用于构建高性能、现代化的网络应用。API 的一些部分受到了 Connect 和 Express node.js 框架的启发,其他部分则是我的(可能有些荒谬)想法。

所有反馈、建议、错误报告和贡献都非常欢迎。请随时通过电子邮件(jacksleight at gmail dot com)或 Twitter(@jacksleight)与我联系。

文档、示例和测试仍在进行中(抱歉)。在 1.0 版本发布之前,任何新版本都可能引入向后兼容性中断。

组件

所有组件都旨在尽可能独立,通常可以独立使用。许多组件实现了 App\Executable 以用作应用中的中间件,这些组件带有★标记。

  • Acl
    • 访问控制列表
  • App, Request, Response
    • 简单的 Express 启发式应用逻辑
    • HTTP 请求和响应数据处理
    • 按需懒加载应用依赖项
    • 子应用
  • Config
    • 加载并合并配置文件到配置对象
  • Controller
    • 请求控制器
  • Csp
    • 内容安全策略头生成
    • 生成 nonce 值
  • Csrf
    • 跨站请求伪造保护
  • Feed
    • ATOM 订阅源生成
  • Filter
    • 数据过滤
  • Http
    • HTTP 客户端(基于 cURL)
  • Image
  • Lazy
    • 按需懒加载文件/闭包
  • Model, Collection
    • 基础实体和实体集合类
    • 与 Filter、Transformer、Validator 一起使用
  • Path, Dir, File
    • 路径、目录和文件处理
  • Resolver
    • 解析字符串、文件、路由等到 URL
  • Router
    • 路径和方法路由
  • Session
    • 会话管理和数据包装器
  • Sitemap
    • XML 站点地图生成
  • Transformer
    • 数据转换
  • Url
    • URL 处理
  • Validator
    • 数据验证
  • View
    • 强大的视图组件
    • 子视图和父视图(包装器)
    • 可扩展视图
    • 输出捕获
  • Xml
    • SimpleXML 扩展

安装

安装 Coast 最简单的方法是通过 Composer,创建一个名为 composer.json 的文件,包含

{
    "require": {
        "jacksleight/coast": "dev-master"
    }
}

然后运行

composer.phar install

Hello World

创建一个名为 app.php 的新文件,包含

<?php
use Coast\App;
use Coast\Request;
use Coast\Response;

require __DIR__ . '/vendor/autoload.php';

$app = new App(__DIR__);
$app->executable(function(Request $req, Response $res) {
    return $res->text('Hello World');
});

$app->execute();

然后运行

php -S localhost:8000 app.php

然后在浏览器中通过: https://:8000/ 加载。

这里发生了什么?

  1. 包含 Composer 自动加载器。
  2. 初始化一个 Coast\App 对象。
  3. 添加中间件来处理请求。
  4. 调用 execute 来运行应用。

文档

需求

  • PHP 5.6+
  • mod_rewrite(如果使用Apache)

待办事项

  • 示例(进行中)
  • API文档(进行中)
  • 测试(进行中)

许可证

MIT许可证

版权所有 2019 Jack Sleight http://jacksleight.com/

在此特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人士,免费、不可撤销地使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人士为此目的使用软件,前提是必须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他原因,由软件本身、使用软件或与软件的使用或其他交易产生。