platfor / ifehrim
Platfor 是一个基于 PHP 和 IPO 的微框架,可以帮助您快速编写简单而强大的微服务应用程序和 API。
Requires
- php: >=5.3.0
- ext-json: *
This package is auto-updated.
Last update: 2024-09-05 13:43:33 UTC
README
Platfor 是一个基于 PHP 和 IPO 的微框架,可以帮助您快速编写简单而强大的微服务应用程序和 API。
[Index.php] 的 HelloWorld 教程
实例化 Platfor 应用程序
$app = App::init(); Http::get('/blog/*', $app, [Home::class, 'getInfo']); $app->execute();
[Home.php] 的 HelloWorld 教程
实例化 Platfor 应用程序
class Home { use _Frame; //middileware requirments if You need static $__before=[ Auth::class ]; public static function getInfo(App $app){ $app->take('Home',[ 'name'=>'Title', 'page'=>'Hello World!', 'date'=>time(), ]); return $app; } }
相应响应
{ "edit": "ok", "Home": { "name": "Title", "page": "Hello World!", "date": 1571915345 } }
特性
- 微服务
- 标准 IPO 架构
- 微服务架构
- 强大的路由器
- 标准和自定义 HTTP 方法
- 带通配符和条件的路由参数
- 路由重定向、停止和传递
- 路由中间件
- 闪存消息
- 消息接收者
- 多 URL 一次请求
- HTTP 缓存
- 中间件和钩子架构
- 简单配置
入门
安装
您可以使用 Git(推荐)或手动安装 Platfor 框架。
Git
$ git clone https://github.com/ifehrim/Platfor.git
Composer
$ composer require platfor/ifehrim
您可以使用内置的 PHP 服务器快速测试此框架
$ php -S localhost:8000 -t ./
访问 https://:8000/blog/edit/HelloWorld?token=123 将显示 "Hello, world"。
系统需求
您需要 PHP >= 5.3.0。如果您使用加密的 Cookie,还需要 mcrypt
扩展。
设置您的 Web 服务器
Apache
确保 .htaccess
和 index.php
文件位于同一公开可访问的目录中。该 .htaccess
文件应包含此代码
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
此外,请确保您的虚拟主机已配置为允许覆盖选项,以便可以使用 .htaccess 重新写规则
AllowOverride All
Nginx
Nginx 配置文件应在您的 location
块中包含此代码(以及其他您可能需要的设置)
try_files $uri $uri/ /index.php?$args;
这假设 Platfor 的 index.php
位于您项目的根目录(www 根)中。
PHP 的 HipHop 虚拟机
您的 HipHop 虚拟机配置文件应包含此代码(以及其他您可能需要的设置)。务必将 ServerRoot
设置更改为指向您的 Platfor 应用程序的文档根目录。
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")
这假设 Platfor 的 index.php
位于您项目的根目录(www 根)中。
IIS
确保 Web.config
和 index.php
文件位于同一公开可访问的目录中。该 Web.config
文件应包含此代码
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Platfor" 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 上成功运行您的 Platfor 应用程序,需要两个步骤。首先,确保 app.yaml
文件包括一个默认处理程序到 index.php
application: your-app-name
version: 1
runtime: php
api_version: 1
handlers:
# ...
- url: /.*
script: public_html/index.php
接下来,编辑您的 index.php
文件,以便 Platfor 了解传入的 URI
$app = new Platfor(); Http::post('/blog(/@year(/@month(/@day)))', $app, Article::class); // ... $app->run();
文档
正在更新...
如何贡献
注意:我们只接受 Platfor 2(master 分支)的安全修复。所有开发工作都集中在 Platfor 3 上,该框架位于 develop 分支。
拉取请求
- 从 Platfor 框架仓库分叉
- 为每个功能或改进创建一个新分支
- 从每个功能分支向 develop 分支发送拉取请求
将新功能或改进分别放入单独的功能分支中,并对每个分支发送一个拉取请求非常重要。这样我可以单独审查和合并新功能或改进。
风格指南
所有拉取请求都必须遵循PSR-2标准。
单元测试
所有拉取请求都必须附有通过单元测试和完整的代码覆盖率。Platfor框架使用phpunit
进行测试。
社区
论坛和知识库
访问Platfor的官方论坛和知识库,在那里您可以找到公告,与Platfor用户聊天,提问,帮助他人,或展示您酷炫的Platfor框架应用程序。
更新中...
作者
Platfor框架由[Alm.Pazel]创建和维护。Alm是[Lool Ltd 上海]的高级后端开发者。Alm也是上海国际问题研究院的学生。
PHP程序员最佳实践和有用信息。
许可证
Platfor框架在MIT公共许可证下发布。