lit / ms
There is no license information available for the latest version (v0.1.0) of this package.
超轻量级PHP微服务框架
v0.1.0
2020-06-05 16:48 UTC
Requires
- php: >=7.1.0
README
使用Composer 安装
#执行如下命令安装,安装后使用文档中的调用方法即可使用.
composer require lit/ms
然后修改 Server.php 中 autoload 为自己的 vendor/autoload.php .
#执行如下命令,直接创建项目(demo).
composer create-project lit/ms-demo project-name
初始化项目
修改 Server.php 的配置项, 每个配置项都有系统默认值
代码详解
- Server.php
<?php //autoload require(dirname(__DIR__).'/vendor/autoload.php'); $server = new \Lit\Ms\LitMsServer(); $server ->setHttpHost("0.0.0.0") //设置监听host ip ->setHttpPort(9000) //设置 监听端口 ->setWorkerNum(10) //设置 进程数量 ->setWorkDir(__DIR__) //设置项目目录 ->setDaemonize(false) //设置是否守护进程 ->setOpenBaseDir(__DIR__) //设置读取安全目录 ->setOpenBaseDir(dirname(__DIR__).DIRECTORY_SEPARATOR."vendor") //设置读取安全目录 ->setLogFile("/tmp/litmsError.log") //设置错误日志文件 ->setLogLevel(0) //设置输出错误等级 ->setSlowLogFile("/tmp/litmsSlow.log") //设置慢日志文件 ->setSlowTimeOut(1) //设置慢日志时间 ->setDocumentRoot(__DIR__.DIRECTORY_SEPARATOR."Static") //设置静态目录 ->setAuthenticate(['user1'=>'123','user2'=>'234','user3'=>'345']) //开启简单身份认证,设置用户名密码 ->setSslCertFile("./ssl/demo.pem","./ssl/demo.key") //设置证书文件 ->setOnStart(__DIR__.DIRECTORY_SEPARATOR."OnStart.php") //设置启动时先执行的一个文件 ->run();
- Route.php
<?php /** * LitMs 路由 */ class Route extends Lit\Ms\LitMsRoute { function __construct(){ //注册一个全method路由 $this->all('/',function ( $request, $response ) { return (new WelcomeController())->welcome( $request, $response ); }); //注册另一个get路由 $this->get("/get",function ( $request, $response ) { return (new Lit\Ms\LitMsResponse())->string("Method get"); }); //注册另一个post路由 $this->post("/post",function ( $request, $response ) { return (new Lit\Ms\LitMsResponse())->string("Method post"); }); //注册另一个delete路由 $this->delete("/delete",function ( $request, $response ) { return (new Lit\Ms\LitMsResponse())->string("Method delete"); }); //注册另一个静态页面 $this->get("/html",function ( $request,$response ) { return (new \Lit\Ms\LitMsResponse)->html("HtmlDemo.html"); }); } }
- Controller 目录
<?php //创建 WelcomeController.php 类文件可直接使用 (new WelcomeController())->方法名()调用 return (new WelcomeController())->welcome();
- Static 目录
此目录为静态文件目录, 此目录中的文件通过url地址可以直接访问
例如:
http://hostname/css/app.css
本框架为动态微服务框架,尽量不要使用静态文件和静态HTML
- View 目录
此目录为视图文件目录, 通过一下方法可以直接访问 (new \Lit\Ms\LitMsResponse)->html("HtmlDemo.html"); 本框架为动态微服务框架,尽量不要使用静态文件和静态HTML
- Model 目录
<?php //创建 WelcomeModel.php 类文件可直接使用 (new WelcomeModel())->方法名()调用 return (new WelcomeModel())->welcome();
- Filter.php
//过滤器文件, 只要方法返回 false, 即过滤器生效.<?php class Filter extends Lit\Ms\LitMsFilter { function rule1 ( $request, $response ) { return true; } function rule2 ( $request,$response ) { if ($request->get["a"] == 1) { return true; }else{ $this->setError(1,__FUNCTION__); //框架返回自定义错误 return false; } } }
- Schedule.php
//定时任务文件, 参考实例文件. <?php //在 Y-m-d H:i:s 执行一次 Lit\Ms\LitMsSchedule::at( "2020-03-01 21:12:40", function (){ echo "at ".date("Y-m-d H:i:s")."\n"; },"MyAt");
启动 HTTP 服务
php Server.php
启动 Schedule 服务
php Server.php Schedule 或 php Server.php Crontab
启动 Shell
php Server.php Shell ModelName/FunctionName 或 php Server.php Command ModelName/FunctionName