前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php,使用Slim和Medoo搭建简单restful服务

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

作者头像
IT晴天
发布2018-08-20 10:40:27
1.1K0
发布2018-08-20 10:40:27
举报
文章被收录于专栏:ionic3+ionic3+

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

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

Slim——rest框架说明

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

代码语言:javascript
复制
<?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使用上注意以下内容:

代码语言:javascript
复制
要求
- PHP>=5.4, 必须支持PDO.
- 支持 MySQL, MSSQL, SQLite 等数据库.
- 确保php_pdo_xxx (xxx = 数据库类型) 的xxx数据扩展已经正确安装并启用.
- 需要懂一些SQL知识.
代码语言:javascript
复制
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
代码语言:javascript
复制
PHP PDO安装
medoo需要PHP支持PDO扩展,请在安装相关扩展后继续以下操作
// 打开php.ini找到你想要的相应扩展,去掉前面的;号即可
// 将
;extension=php_pdo_mysql.dll
// 修改成
extension=php_pdo_mysql.dll
// 保存,重启你的PHP或者服务器
//如果PDO安装成功,你可以通过phpinfo()查看到它.

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

代码语言:javascript
复制
// 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"
]);

两者组合

代码语言:javascript
复制
<?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);
    }  
);  

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Slim——rest框架说明
  • Medoo——orm框架说明
  • 两者组合
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档