PHP code example of lit / ms

1. Go to this page and download the library: Download lit/ms library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

lit / ms example snippets



//autoload
it\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();


/**
 * 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");
        });

    }

}


//创建 WelcomeController.php 类文件可直接使用 (new WelcomeController())->方法名()调用
return (new WelcomeController())->welcome();

此目录为静态文件目录, 此目录中的文件通过url地址可以直接访问
例如:
    http://hostname/css/app.css 
本框架为动态微服务框架,尽量不要使用静态文件和静态HTML

此目录为视图文件目录, 通过一下方法可以直接访问
(new \Lit\Ms\LitMsResponse)->html("HtmlDemo.html");
本框架为动态微服务框架,尽量不要使用静态文件和静态HTML


//创建 WelcomeModel.php 类文件可直接使用 (new WelcomeModel())->方法名()调用
return (new WelcomeModel())->welcome();

//过滤器文件, 只要方法返回 false, 即过滤器生效.
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;
        }
    }
}

//定时任务文件, 参考实例文件.

//在 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");
`BASH
php Server.php 
`BASH
php Server.php Schedule 或 php Server.php Crontab
`BASH
php Server.php Shell ModelName/FunctionName 或 php Server.php Command ModelName/FunctionName