platfor/ifehrim

本软件包最新版本(dev-master)没有可用的许可信息。

Platfor 是一个基于 PHP 和 IPO 的微框架,可以帮助您快速编写简单而强大的微服务应用程序和 API。

安装: 0

依赖项: 0

建议者: 0

安全: 0

星级: 3

关注者: 3

分支: 0

开放问题: 0

类型:框架

dev-master 2019-11-05 02:00 UTC

This package is auto-updated.

Last update: 2024-09-05 13:43:33 UTC


README

Build Status Coverage Status

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

确保 .htaccessindex.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.configindex.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 分支。

拉取请求

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

将新功能或改进分别放入单独的功能分支中,并对每个分支发送一个拉取请求非常重要。这样我可以单独审查和合并新功能或改进。

风格指南

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

单元测试

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

了解PHPUnit

社区

论坛和知识库

访问Platfor的官方论坛和知识库,在那里您可以找到公告,与Platfor用户聊天,提问,帮助他人,或展示您酷炫的Platfor框架应用程序。

Twitter

更新中...

作者

Platfor框架由[Alm.Pazel]创建和维护。Alm是[Lool Ltd 上海]的高级后端开发者。Alm也是上海国际问题研究院的学生。

PHP程序员最佳实践和有用信息。

许可证

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

https://github.com/ifehrim/Platfor/blob/master/LICENSE