phpgram/phpgram
最新稳定版本:1.8.3
Composer 安装命令:
composer require phpgram/phpgram
包简介
A very fast and lightweight Php Framework for small to enterprise applications
关键字:
README 文档
README
phpgram
A very fast and lightweight Php Framework for small to enterprise applications.
RouteHandler for Functions and Classes
Request and Response via Psr-7
Middleware via Psr-15
Psr 11 Container Support for Automatic Dependency Injection (Autowiring) for Route Callable: Class (in constructor) or Function (with
`__get()`)Response Creation (via Psr-17 Response Factory) and Strategies
Supports Async Requests
Install
Via Composer
composer require phpgram/phpgram
Documentation
<?php
use Gram\App\App;
use Gram\Strategy\StdAppStrategy;
App::app()->debugMode(true); //true (default) -> show Exceptions, false -> show empty page
App::app()->setStrategy(new StdAppStrategy()); //define how the Output will be created (StdAppStrategy is default)
App::app()->set404("Er404@404"); //404 Handler
App::app()->set405("Er405@405"); //405 Handler
//Middleware will be executed before the Router
App::app()
->addMiddleware(new Session())
->addMiddleware(new Authenticate());
//Routes and Groups
App::app()->get("/","Index@index"); //static Route
//dynamic Route with Middleware (this Middleware will only executed if the Routes is matched
App::app()->get("/video/{id:n}","Video@watch")->addMiddleware(new Caching);
//Nested Group with Middleware
// /admin will be the prefix for all Routes in this Group
App::app()->group("/admin",function (){
App::app()->get("","AdminIndexHandler");
App::app()->get("/role","RoleHandler");
//Nested Groups
//2. Group /settings
App::app()->group("/settings",function (){
//3. Group /dep
App::app()->group("/dep",function (){
//Routes
App::app()->get("","DepIndexHandler");
App::app()->get("/{id}/edit","EditHandler");
});
})->addMiddleware(new Auth());
})->addMiddleware(new Login());
//Group with different Output Strategy (json)
use Gram\Strategy\JsonStrategy;
App::app()->group("/",function (){
App::app()->getpost("video/vote/{id:n}","Video@vote");
App::app()->getpost("video/getComment/{id:n}","Video@getComments");
})->addStrategy(new JsonStrategy());
//Psr 7 Request
// in this case with Nyholm Psr 7
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$psr17Factory = new Psr17Factory();
$creator = new ServerRequestCreator($psr17Factory,$psr17Factory,$psr17Factory,$psr17Factory);
$request = $creator->fromGlobals();
//App needs a Psr 17 Response Factory
App::app()->setFactory($psr17Factory);
//get the response with the content
$response = App::app()->start($request);
//simple emit:
echo $response->getBody(); // don't do this in production use an psr 7 emitter!
License
phpgram is open source and under MIT License
Credits
Router
Algorithm and Core Implementation: Copyright by Nikita Popov. (FastRoute)
Parser: Copyright by Nikita Popov and Phil Bennett (thephpleague)
统计信息
- 总下载量: 4.89k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 3
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-08-25
