美文网首页那年前端
php,使用Slim和Medoo搭建简单restful服务

php,使用Slim和Medoo搭建简单restful服务

作者: IT晴天 | 来源:发表于2017-12-16 09:31 被阅读123次

    微服务及轻框架大行其道,如spring boot,nodeJS等都可实现,但鉴于不少网上服务器只支持html或php,所以此种方式还是有一定价值的。

    关于rest和orm框架的组合使用,几年前我就写过使用Slim+Notorm来搭建restful服务,不过看到Notorm几年没更新了,所以贪新厌旧换了Medoo,它非常精简,除去依赖,就一个文件,使用也很简单,可以看以下网页文档:
    官方文档 | 中文文档

    Slim——rest框架说明

    使用上很简单,如下代码即可实现一个get服务:

    <?php
    
    require 'vendor/autoload.php';
    $app = new Slim\App();
    $app->get('/hello/{name}', function ($request, $response, $args) {
        return $response->write("Hello, " . $args['name']);
    });
    $app->run();
    

    若此文件名为index.php,则在浏览器上访问部署地址/index.php/helllo/world即可看到响应结果Hello, world。

    Medoo——orm框架说明

    其中Medoo使用上注意以下内容:

    要求
    - PHP>=5.4, 必须支持PDO.
    - 支持 MySQL, MSSQL, SQLite 等数据库.
    - 确保php_pdo_xxx (xxx = 数据库类型) 的xxx数据扩展已经正确安装并启用.
    - 需要懂一些SQL知识.
    
    Php_pdo 扩展列表
    - MySQL, MariaDB -> php_pdo_mysql
    - MSSQL (Windows) -> php_pdo_sqlsrv
    - MSSQL (Liunx/UNIX) -> php_pdo_dblib
    - Oracle -> php_pdo_oci
    - Oracle version 8 -> php_pdo_oci8
    - SQLite -> php_pdo_sqlite
    - PostgreSQL -> php_pdo_pgsql
    - Sybase -> php_pdo_dblib
    
    PHP PDO安装
    medoo需要PHP支持PDO扩展,请在安装相关扩展后继续以下操作
    // 打开php.ini找到你想要的相应扩展,去掉前面的;号即可
    // 将
    ;extension=php_pdo_mysql.dll
    // 修改成
    extension=php_pdo_mysql.dll
    // 保存,重启你的PHP或者服务器
    //如果PDO安装成功,你可以通过phpinfo()查看到它.
    

    等配置完成后,如下使用即可完成数据库连接及插入数据测试:

    // If you installed via composer, just use this code to requrie autoloader on the top of your projects.
    require 'vendor/autoload.php';
    
    // Using Medoo namespace
    use Medoo\Medoo;
     
    $database = new Medoo([
        // 必须项
        'database_type' => 'mysql',
        'database_name' => 'name',
        'server' => 'localhost',
        'username' => 'your_username',
        'password' => 'your_password',
     
        // 以下全为可选参数
        'charset' => 'utf8',
        'port' => 3306,
        // [optional] Table prefix
        'prefix' => 'PREFIX_',
        // [optional] Enable logging (Logging is disabled by default for better performance)
        'logging' => true,
        'socket' => '/tmp/mysql.sock',
        // [optional] driver_option for connection, read more from http://www.php.net/manual/en/pdo.setattribute.php
        'option' => [
            PDO::ATTR_CASE => PDO::CASE_NATURAL
        ],
        // [optional] Medoo will execute those commands after connected to the database for initialization
        'command' => [
            'SET SQL_MODE=ANSI_QUOTES'
        ]
    ]);
     
    $database->insert("account", [
        "user_name" => "foo",
        "email" => "foo@bar.com"
    ]);
    

    两者组合

    <?php
    header('Content-type: text/json;charset=utf-8');//申明格式
    
    require 'vendor/autoload.php';
    use Medoo\Medoo;
    $app = new Slim\App();
    
    // 初始化数据库连接
    $database = new Medoo([
        'database_type' => 'mysql',
        'database_name' => 'my_blog',
        'server' => '192.168.99.100',
        'port' => '32770',
        'username' => 'wood',
        'password' => 'wood',
        'charset' => 'utf8',
        'command' => [
            "SET NAMES 'utf8'"
        ]
    ]);
    $app->get('/hello/{name}', function ($request, $response, $args) {
        return $response->write("Hello, " . $args['name']);
    });// GET route  
    
    $app->get(  
        '/getArticle',  
        function () use ($app, $database){     
            $data = $database->select('article', "*");
            echo json_encode($data);
        }  
    );  
    

    代码可以看出两者组合使用也很简单直观,有空快来试试吧。

    相关文章

      网友评论

        本文标题:php,使用Slim和Medoo搭建简单restful服务

        本文链接:https://www.haomeiwen.com/subject/qjtswxtx.html