endel / slim
Slim 框架,一个 PHP 微型框架
Requires
- php: >=5.3.0
Suggests
- ext-mcrypt: Required for HTTP cookie encryption
README
Slim 是一个 PHP 微型框架,可以帮助您快速编写简单而强大的 Web 应用程序和 API。Slim 适用于初学者和专业人士。Slim 重视清晰度而非简洁性,重视常见情况而非边缘情况。其界面简单、直观,并具有详尽的文档——包括在线文档和代码本身。感谢您选择 Slim 框架作为您的下一个项目。我相信您会喜欢它的。
特性
- 强大的路由器
- 标准自定义 HTTP 方法
- 带通配符和条件的路由参数
- 路由重定向、中断和传递
- 路由中间件
- 资源定位器和依赖注入容器
- 使用自定义视图的模板渲染
- 闪存消息
- 使用 AES-256 加密的加密 cookies
- HTTP 缓存
- 使用自定义日志编写器的日志记录
- 错误处理和调试
- 中间件和钩子架构
- 简单的配置
入门指南
安装
您可以使用 Composer(推荐)或手动安装 Slim 框架。
系统需求
您需要 PHP >= 5.3.0。如果您使用加密 cookies,您还需要 mcrypt
扩展。
Hello World 教程
实例化 Slim 应用程序
$app = new \Slim\Slim();
定义 HTTP GET 路由
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
运行 Slim 应用程序
$app->run();
设置您的 Web 服务器
Apache
确保 .htaccess
和 index.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.config
和 index.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>
文档
http://docs.slimframework.com/
如何贡献
拉取请求
- 从 Slim 框架仓库进行分叉
- 为每个功能或改进创建一个新的分支
- 从每个功能分支向 develop 分支发送拉取请求
将新功能或改进分开到单独的功能分支,并为每个分支发送拉取请求非常重要。这使我能够单独审查和合并新功能或改进。
风格指南
所有拉取请求都必须遵守 PSR-2 标准。
单元测试
所有拉取请求都必须附带通过单元测试和完整的代码覆盖率。Slim 框架使用 phpunit
进行测试。
社区
论坛和知识库
访问Slim官方论坛和知识库http://help.slimframework.com,在这里您可以找到公告、与Slim用户聊天、提问、帮助他人或展示您酷炫的Slim Framework应用。
关注Twitter上的@slimphp,以接收有关框架的新闻和更新。
作者
Slim框架由Josh Lockhart创建和维护。Josh是New Media Campaigns的资深网页开发者New Media Campaigns。Josh还创建了PHP: The Right Way,这是一个在PHP社区中流行的运动,旨在向新的PHP程序员介绍最佳实践和良好的信息。
许可证
Slim框架在MIT公共许可证下发布。