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

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

Slim——rest框架说明

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

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

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

Medoo——orm框架说明

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

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

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

  1. // If you installed via composer, just use this code to requrie autoloader on the top of your projects.
  2. require 'vendor/autoload.php';
  3. // Using Medoo namespace
  4. use Medoo\Medoo;
  5. $database = new Medoo([
  6. // 必须项
  7. 'database_type' => 'mysql',
  8. 'database_name' => 'name',
  9. 'server' => 'localhost',
  10. 'username' => 'your_username',
  11. 'password' => 'your_password',
  12. // 以下全为可选参数
  13. 'charset' => 'utf8',
  14. 'port' => 3306,
  15. // [optional] Table prefix
  16. 'prefix' => 'PREFIX_',
  17. // [optional] Enable logging (Logging is disabled by default for better performance)
  18. 'logging' => true,
  19. 'socket' => '/tmp/mysql.sock',
  20. // [optional] driver_option for connection, read more from http://www.php.net/manual/en/pdo.setattribute.php
  21. 'option' => [
  22. PDO::ATTR_CASE => PDO::CASE_NATURAL
  23. ],
  24. // [optional] Medoo will execute those commands after connected to the database for initialization
  25. 'command' => [
  26. 'SET SQL_MODE=ANSI_QUOTES'
  27. ]
  28. ]);
  29. $database->insert("account", [
  30. "user_name" => "foo",
  31. "email" => "foo@bar.com"
  32. ]);

两者组合

  1. <?php
  2. header('Content-type: text/json;charset=utf-8');//申明格式
  3. require 'vendor/autoload.php';
  4. use Medoo\Medoo;
  5. $app = new Slim\App();
  6. // 初始化数据库连接
  7. $database = new Medoo([
  8. 'database_type' => 'mysql',
  9. 'database_name' => 'my_blog',
  10. 'server' => '192.168.99.100',
  11. 'port' => '32770',
  12. 'username' => 'wood',
  13. 'password' => 'wood',
  14. 'charset' => 'utf8',
  15. 'command' => [
  16. "SET NAMES 'utf8'"
  17. ]
  18. ]);
  19. $app->get('/hello/{name}', function ($request, $response, $args) {
  20. return $response->write("Hello, " . $args['name']);
  21. });// GET route
  22. $app->get(
  23. '/getArticle',
  24. function () use ($app, $database){
  25. $data = $database->select('article', "*");
  26. echo json_encode($data);
  27. }
  28. );

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

作者: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. Vue.js环境配置

    一.安装node.js 自行下载安装 https://nodejs.org/en/ 二.查看版本,更新版本 查看node版本 node --version 查看npm版本 npm --version ...

  2. vscode配置git及码云

    1.将代码放到码云 到码云里新建一个仓库,完成后码云会有一个命令教程按上面的来就行了 码云中的使用教程: Git 全局设置: git config --global user.name "A ...

  3. 熟悉常用的Linux操作

    请按要求上机实践如下linux基本命令. cd命令:切换目录 (1)切换到目录 /usr/local  cd /usr/local (2)去到目前的上层目录    cd .. (3)回到自己的主文件夹 ...

  4. MQTT协议学习总结

    一.MQTT介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通 ...

  5. jQuery获取父级、兄弟节点的方法

    一.jQuery的父节点查找方法 $(selector).parent(selector):获取父节点 $(selector).parentNode:以node[]的形式存放父节点,如果没有父节点,则 ...

  6. PMP:6.项目进度管理

    项目管理包括为项目管理项目按时完成所需的各个过程:

  7. Fiddler的配置

    增加监控请求的详情时间  //添加请求的响应时间 public static BindUIColumn("Time Taken")           function CalcT ...

  8. 常用 ADB 命令[ZZ]

    https://blog.csdn.net/yang_zhang_1992/article/details/71404186 1. 显示当前运行的全部模拟器: adb devices 2. 对某一模拟 ...

  9. 在MFC中支持sqlite3

    在vc环境下支持sqlite3的方法有很多,sqlite官网也有推荐sqlitewrappers列表,我选用的是CppSqlite 建立MFC工程的步骤我就不赘述了,以下操作均假设你已经创建好了一个M ...

  10. App设计:消息推送和界面路由跳转

    概要 app消息推送.显示通知栏,点击跳转页面是很一般的功能了,下面以个推为例演示push集成,消息处理模块及app内部路由模块的简单设计. 推送 推送sdk集成 集成sdk步骤根据文档一步步做就行了 ...