PS:原创文章,如需转载,请注明出处,谢谢! ????
本文地址:http://flyer0126.iteye.com/blog/2113460
?
? ? ? 经同事推荐,了解到Slim框架,Slim是一个PHP的轻量级的框架,基于路由机制实现Restful服务。而NotORM是轻量级的ORM框架,用来简化与数据库之间的交互,处理表关联关系非常的简单,另外其性能也非常高,甚至超过内置的驱动。
? ? ? 到各自官网下载zip包,解压到项目根目录引用即可使用(NotORM前提需要满足pdo扩展)。
? ? ? 配置Slim自定义路由时,发现有些带参数请求报“404错误”,原因后来发现原因是由于网站Nginx配置需要满足可rewrite,修正设置如下即可解决。
class="java">location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$uri&$args; }
? ? ? ? 解决PDO中文乱码问题:
$pdo->query('SET NAMES utf8'); // 设置数据库编码
? ? ? ? 解决页面展示乱码可用:
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
? ? ? ?具体实现服务代码示例如下:
<?php /** * Model User file * User: flyer0126 * Date: 14-9-4 * Time: 上午10:40 */ // include files include_once dirname(__FILE__) . "/Config/database.php"; include_once dirname(__FILE__) . "/Lib/notorm/NotORM.php"; include_once dirname(__FILE__) . "/Lib/slim/Slim/Slim.php"; \Slim\Slim::registerAutoloader(); // init $app = new \Slim\Slim(); $db = new NotORM(DATABASE_CONFIG::initDB()); /** * 获取用户信息 * request demo:http://test.domain.com/user/view/1 */ $app->get( '/user/view/:id', function ($id) use ($app, $db) { $user = $db->users()->where('id = ?', $id)->fetch(); if(empty($user)){ echo json_encode(array('rlt'=>false, 'data'=>'user is not exist')); } else { echo json_encode(array('rlt'=>true, 'data'=>$user)); } } ); /** * 更新用户信息 * request demo:http://test.domain.com/user/edit/1 */ $app->post( '/user/edit/:id', function ($id) use ($app, $db) { $user = $db->users()->where('id = ?', $id)->fetch(); if(empty($user)){ echo json_encode(array('rlt'=>false, 'data'=>'user is not exist')); } else { if($db->users()->where('id = ?', $id)->update($_POST)){ echo json_encode(array('rlt'=>true, 'data'=>'edit user success')); } else { echo json_encode(array('rlt'=>false, 'data'=>'edit user fail')); } } } ); // run $app->run();
? ? ? 具体请求测试可以使用火狐浏览器HTTPRequest插件进行测试,也可以自己利用php curl编写用例来测试,还是比较简单的。
?
? ? ??