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

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/2113460

 

      经同事推荐,了解到Slim框架,Slim是一个PHP的轻量级的框架,基于路由机制实现Restful服务。而NotORM是轻量级的ORM框架,用来简化与数据库之间的交互,处理表关联关系非常的简单,另外其性能也非常高,甚至超过内置的驱动。

      到各自官网下载zip包,解压到项目根目录引用即可使用(NotORM前提需要满足pdo扩展)。

      配置Slim自定义路由时,发现有些带参数请求报“404错误”,原因后来发现原因是由于网站Nginx配置需要满足可rewrite,修正设置如下即可解决。

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

 

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值