• composer 包 slim使用案例,一个简单的路由解决方案


    nginx配置文件修改

    location / {
            try_files $uri /index.php$is_args$args;
        }

    设置好nginx伪静态,把所有的请求方式都转向到index.php文件

    然后在目录里建index.php文件

    在目录里安装如下三个composer包

    composer require slim/slim guzzlehttp/psr7 http-interop/http-factory-guzzle

    然后打开index.php文件,修改内容为如下:

    <?php
    
    use PsrHttpMessageResponseInterface as Response;
    use PsrHttpMessageServerRequestInterface as Request;
    use SlimFactoryAppFactory;
    
    require "vendor/autoload.php";
    
    $app = AppFactory::create();
    
    // Define app routes
    $app->get('/hello/{name}', function (Request $request, Response $response, $args) {
        $name = $args['name'];
        $response->getBody()->write("Hello, $name");
        return $response;
    });
    $app->get('/welcome/{name}', function (Request $request, Response $response, $args) {
        $name = $args['name'];
        $response->getBody()->write("welcome, $name");
        return $response;
    });
    $app->get('/json',function (Request $request, Response $response){
        $query = $request->getQueryParams();
    
        $data = array('name' => $query['name'] ?? 'null', 'age' => 40);
        $payload = json_encode($data);
    
        $response->getBody()->write($payload);
        return $response
            ->withHeader('Content-Type', 'application/json');
    });
    $app->get('/form',function (Request $request, Response $response){
        $html = <<<EOT
    <html>
    <head>form demo
    </head>
    <body>
        <form action="/action" method="post" enctype="multipart/form-data">
            <input type="text" name="name" value="tu6ge" />
            <input type="text" name="language" value="php" />
            <input type="file" name="avatar" />
            <button type="submit" >submit</button>
        </form>
    </body>
    </html>
    EOT;
        $response->getBody()->write($html);
        return $response;
    });
    $app->post('/action',function (Request $request, Response $response){
        $info = $request->getParsedBody();
        print_r($info);
        $files = $request->getUploadedFiles();
        foreach ($files as $file){
            $file->moveTo('./upload/'.date('H-i-s').'.txt');
        }
        $response->getBody()->write('file save success');
        return $response;
    });
    
    // Run app
    $app->run();

    输入对应的路由,比如/hello/tu6ge即可访问对应的内容

  • 相关阅读:
    LeetCode 712. Minimum ASCII Delete Sum for Two Strings
    LeetCode 1143. Longest Common Subsequence
    LeetCode 334. Increasing Triplet Subsequence
    Atom支持Markdown和Latex
    使用pudb调试python
    Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
    Window7下安装Ubuntu 14.04 64bit
    Cnblogs支持Latex及测试
    Caffe学习笔记1--Ubuntu 14.04 64bit caffe安装
    g++编译流程
  • 原文地址:https://www.cnblogs.com/tu6ge/p/11373347.html
Copyright © 2020-2023  润新知