本文转自:https://www.jianshu.com/p/32b6d0284d97

关于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);
}
);

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

作者:IT晴天
链接:https://www.jianshu.com/p/32b6d0284d97
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

[转]php,使用Slim和Medoo搭建简单restful服务的更多相关文章

  1. SpringBoot + Dubbo + zookeeper 搭建简单分布式服务

    SpringBoot + Dubbo + zookeeper 搭建简单分布式服务 详细操作及源码见: https://github.com/BillyYangOne/dubbo-springboot

  2. 搭建简单Django服务并通过HttpRequester实现GET/POST http请求提交表单

    调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模 ...

  3. node http模块搭建简单的服务和客户端

    node-http Node.js提供了http模块,用于搭建HTTP服务端和客户端. 创建Web服务器 server.js /** * node-http 服务端 */ let http = req ...

  4. flask 搭建简单restful接口,moco基础

    from flask import Flask, jsonify, abort, make_response app = Flask(__name__)app.config['JSON_AS_ASCI ...

  5. python -m SimpleHTTPServer搭建简单HTTP服务

    PYTHON自带HTTP服务,命令: python -m SimpleHTTPServer 使用上述命令将当前目录发布到8000端口,为当前进行,不是后台运行 指定端口: python -m Simp ...

  6. 使用node搭建简单的服务

    //创建依赖模块var http = require('http');var url = require('url');var fs = require('fs');var server = http ...

  7. 树莓派(Raspberry Pi)搭建简单的lamp服务

    树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php ...

  8. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  9. Ubuntu 14.04搭建简单git服务器

    /****************************************************************************** * Ubuntu 14.04搭建简单gi ...

随机推荐

  1. js基础知识:字面量 关键字和保留字

    js中的字面量概念我的理解就是:字体表面的常量 如:数字 100, 字符串  "ssss"或'ssss'  布尔值:false ,正则 以及null对象. 这些都是常量. 关键字: ...

  2. UE4动画及相关物理的更新顺序图

  3. CLion之C++框架篇-优化开源框架,引入curl,实现get方式获取资源(四)

      背景   结合上一篇CLion之C++框架篇-优化框架,引入boost(三),继续进行框架优化!在项目中,我们经常会通过get方式拉取第三方资源,这一版优化引入类库curl,用来拉取第三方资源库. ...

  4. 背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口

    [源码下载] 背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口 作者 ...

  5. Docker应用:Hello World

    前言: 最近学习了Docker相关技术点,国内关于Docker的资料大多是基于Linux系统的,但是我对Linux又不熟(实际上没用过,掩面哭笑.Jpg). 好在在Win10下也是支持Docker的, ...

  6. 逆水行舟 —— MyBatis

    第一轮总结性笔记 这是一个很漫长的过程,我买了套课程,将在日后记录学习笔记,取名为逆水行舟系列 MyBatis的基础 根据MyBatis的官方介绍: 整个测试项目结构如下:使用Maven架构项目 po ...

  7. python异常报错详解

    异常BaseException所有内置异常的基类.它不是直接由用户定义的类继承(为此使用Exception).如果 str()或者unicode()是在这个类的一个实例上被调用,返回实例的参数表示形式 ...

  8. Android之.9图的知识

    Android之.9图的知识 .9图的介绍 .9图也称为pPatch图,它是android app开发里一种特殊的图片形式,文件的扩展名为:.9.png. 9patch图片的作用就是在图片拉伸的时候保 ...

  9. myEclipse配置jdk1.7

    第一步:下载jdk1.7 下载地址:http://download.csdn.net/download/chun201010/7824469 第二步:安装jdk1.7 将下载的压缩包进行解压,得到一个 ...

  10. Python爬虫2-检测编码(使用chardet)

    GitHub代码练习地址:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac02_chardet.py 网页编码问题解决 c ...