Slim 框架,一个 PHP 微型框架

4.5.0 2020-04-14 20:49 UTC

README

Build Status

Slim 是一个 PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API。Slim 适合初学者和专业人士使用。Slim 优先考虑简洁性而不是简洁性,以及常见情况而不是边缘情况。其接口简单、直观,并且有广泛的文档——在线和代码本身。感谢您选择 Slim 框架作为您的下一个项目。我相信您会喜欢它的。

功能

  • 强大的路由器
    • 标准自定义 HTTP 方法
    • 带有通配符和条件的路由参数
    • 路由重定向、停止和传递
    • 路由中间件
  • 资源定位器和依赖注入容器
  • 自定义视图的模板渲染
  • 闪存消息
  • 加密 cookie 数据
  • HTTP 缓存
  • 自定义日志记录器进行日志记录
  • 错误处理和调试
  • 中间件和钩子架构
  • 简单的配置

入门

安装

您可以使用 Composer(推荐)或手动安装 Slim 框架。

阅读如何安装 Slim

系统要求

您需要 PHP >= 5.3.0。如果您使用加密 cookie,还需要 mcrypt 扩展。

Hello World 教程

实例化 Slim 应用程序

$app = new \Slim\Slim();

定义 HTTP GET 路由

$app->get('/hello/:name', function ($name) {
    echo "Hello, $name";
});

运行 Slim 应用程序

$app->run();

设置您的 Web 服务器

Apache

确保 .htaccessindex.php 文件位于同一公开访问目录中。该 .htaccess 文件应包含以下代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

此外,请确保您的虚拟主机已配置 AllowOverride 选项,以便可以使用 .htaccess 重写规则

AllowOverride All

Nginx

Nginx 配置文件应在您的 location 块中包含以下代码(以及其他您可能需要的设置)

try_files $uri $uri/ /index.php?$args;

这假设 Slim 的 index.php 位于您项目根目录中(www 根)。

HipHop 虚拟机(HHVM)

您的 HipHop 虚拟机配置文件应包含以下代码(以及其他您可能需要的设置)。请确保将 ServerRoot 设置更改为指向您的 Slim 应用程序的文档根目录。

Server {
    SourceRoot = /path/to/public/directory
}

ServerVariables {
    SCRIPT_NAME = /index.php
}

VirtualHost {
    * {
        Pattern = .*
        RewriteRules {
                * {
                        pattern = ^(.*)$
                        to = index.php/$1
                        qsa = true
                }
        }
    }
}

lighttpd

您的 lighttpd 配置文件应包含以下代码(以及其他您可能需要的设置)。此代码需要 lighttpd >= 1.4.24。

url.rewrite-if-not-file = ("(.*)" => "/index.php/$0")

这假设 Slim 的 index.php 位于您项目根目录中(www 根)。

IIS

确保 Web.configindex.php 文件位于同一公开访问目录中。该 Web.config 文件应包含以下代码

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="slim" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Google App Engine

要在 Google App Engine 上成功运行您的 Slim 应用程序,需要进行两个步骤。首先,确保 app.yaml 文件包含一个默认处理器指向 index.php

application: your-app-name
version: 1
runtime: php
api_version: 1

handlers:
# ...
- url: /.*
  script: public_html/index.php

接下来,编辑您的 index.php 文件,以便 Slim 了解传入的 URI

$app = new Slim();

// Google App Engine doesn't set $_SERVER['PATH_INFO']
$app->environment['PATH_INFO'] = $_SERVER['REQUEST_URI'];

// ...
$app->run();

文档

http://docs.slimframework.com/

如何贡献

注意:我们只接受 Slim 2(master 分支)的安全修复。所有开发都集中在 Slim 3(develop 分支)上。

拉取请求

  1. 分支 Slim 框架仓库
  2. 为每个功能或改进创建一个新的分支
  3. 从每个功能分支向 develop 分支发送拉取请求

将新功能或改进分开到单独的功能分支,并为每个分支发送拉取请求非常重要。这样可以让我单独审查和合并新功能或改进。

风格指南

所有拉取请求都必须遵循 PSR-2 标准。

单元测试

所有拉取请求都必须附有通过单元测试和完整的代码覆盖率。Slim 框架使用 phpunit 进行测试。

了解 PHPUnit

社区

论坛和知识库

访问 Slim 的官方论坛和知识库,网址为 http://help.slimframework.com,在那里您可以找到公告,与 Slim 用户聊天,提问,帮助他人,或展示您酷炫的 Slim 框架应用程序。

Twitter

关注 @slimphp,获取有关框架的新闻和更新。

作者

Slim 框架由 Josh Lockhart 创建和维护。Josh 是 New Media Campaigns 的资深网络开发者。Josh 还创建并维护了 PHP: The Right Way,这是一个在 PHP 社区中流行的运动,旨在向新 PHP 程序员介绍最佳实践和良好信息。

许可

Slim 框架在 MIT 公共许可证下发布。

https://github.com/slimphp/Slim/blob/master/LICENSE