SilangPHP是一款极简http组件,支持Api、Service模式。
非标准化http-message, 路由使用fastroute结合
composer create-project "silangtech/silangweb:dev-master" project1
addRoute(方法, 路由规则, Callable, middleware);
\SilangPHP\Route::addRoute('GET', 'silangphp/index', '\\App\\Controller\\IndexController@Index');
addGroup(前缀,Callable, middleware);
\SilangPHP\Route::addGroup('silangphp', function(){
\SilangPHP\Route::addRoute('GET', 'index', '\\App\\Controller\\IndexController@Index');
});
\SilangPHP\Route::use(funciton($c){
// 逻辑前
$c->next();
// 逻辑后
});
Class index{
// 一定要加$c参数,主要返回相关的context
public function index($c)
{
}
}
public function index($c)
{
$c->request->item('test', '');
$c->request->get('test', '');
$c->request->post('test', '');
$c->JSON(200, ['array' => 'test']);
$c->String(200, '哈哈');
}
新建好index.php即可
// 定义好与vendor同目录即可,加载composer使用
define("PS_ROOT_PATH", dirname(dirname(__FILE__)));
// 设置你自己的Config路径, 不然读取不了Config
define("PS_CONFIG_PATH", PS_ROOT_PATH."/Config/");
// 设置你项目的tmp路径
define("PS_RUNTIME_PATH", PS_ROOT_PATH."/Runtime/");
// 加载composer
require_once(PS_ROOT_PATH."/vendor/autoload.php");
// 这里处理Route
include 'Route.php'; // 这里自己思考即可
//运行框架
\SilangPHP\SilangPHP::run();
// 定义好与vendor同目录即可,加载composer使用
define("PS_ROOT_PATH", dirname(dirname(__FILE__)));
// 设置你自己的Config路径, 不然读取不了Config
define("PS_CONFIG_PATH", PS_ROOT_PATH."/Config/");
// 设置你项目的tmp路径
define("PS_RUNTIME_PATH", PS_ROOT_PATH."/Runtime/");
require_once(PS_ROOT_PATH."/vendor/autoload.php");
// 输入要运行的命令
\SilangPHP\SilangPHP::runCmd($argv[1] ?? '', $argv[2] ?? '');
public function index($c)
{
$params = ['title' => '首页标题', 'body' => '这是一篇文章'];
$c->HTML(200, '/web/index.php', $params);
}
\SilangPHP\SilangPHP::setCache('key', 'test');
\SilangPHP\SilangPHP::getCache('key');
$data = scandir($path);
// scan之后,把controll读取生成Route配置
// 处理control文件略过
echo "Route::addRoute('POST', '/api/{$classname}/{$funcname}{$vars}', 'mg\\\\http\\\\api\\\\controller\\\\{$classname}@{$funcname}');".PHP_EOL;
require_once("../vendor/autoload.php");
\App\Router::initialize();
\SilangPHP\SilangPHP::engine(dirname(dirname(__FILE__)));
\SilangPHP\SilangPHP::$http = 2;
\SilangPHP\SilangPHP::run("8081");
切记:使用这模式需要一定的代码逻辑全面性!!