Slim与NotORM搭建轻量级curd服务实践_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > Slim与NotORM搭建轻量级curd服务实践

Slim与NotORM搭建轻量级curd服务实践

 2014/9/4 23:16:37  flyer0126  程序员俱乐部  我要评论(0)
  • 摘要:PS:原创文章,如需转载,请注明出处,谢谢!本文地址:http://flyer0126.iteye.com/blog/2113460经同事推荐,了解到Slim框架,Slim是一个PHP的轻量级的框架,基于路由机制实现Restful服务。而NotORM是轻量级的ORM框架,用来简化与数据库之间的交互,处理表关联关系非常的简单,另外其性能也非常高,甚至超过内置的驱动。到各自官网下载zip包,解压到项目根目录引用即可使用(NotORM前提需要满足pdo扩展)。配置Slim自定义路由时
  • 标签:not 服务

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编写用例来测试,还是比较简单的。

?

? ? ??

上一篇: .NET开发者必备的11款免费工具 下一篇: 没有下一篇了!
发表评论
用户名: 匿名