介绍:
1.Slim:
是一款 PHP 微框架,可以帮助你快速编写简单但功能强大的 web 应用和 API 。在它的核心,Slim 是一个调度程序,它接收一个 HTTP 请求,调用一个适当的回调例程,然后返回一个 HTTP 响应。就这个样子。
“在它的核心,Slim 是一个调度程序,它接收一个 HTTP 请求,调用一个适当的回调例程,然后返回一个 HTTP 响应。就这个样子。”
2.NotORM:
它是一个 PHP 库,用来简化和数据库的交互。最有特色的功能是处理表关联关系非常简单。另外 NotORM 的性能非常的高,甚至高过内置的驱动。
官方手册 : http://www.notorm.com/#api
1.安装slim3.0版本(composer方式):
1.打开PHP open_ssl扩展,安装composer
http://www.phpcomposer.com/
2. 运行CMD 输入bash命令:
```bash
$ composer require slim/slim "^3.0"
```
3.创建一个index.php文件
4.在index.php中输入:
require './autoload.php';
$app = new Slim\App();
$app->get('/hello/{name}', function ($request, $response, $args) {
$response->write("Hello, " . $args['name']);
return $response;
});
$app->run();
每个参数含义解释:
$app->get('/index/{token}/{classid}/{num}', function ($request,$response,$arg) use ($app,$pdo, $db){ var_dump($app);//Slim\App var_dump($pdo);//PDO_obj var_dump($db);//NotORM_obj var_dump($request);//Slim\Http\Request var_dump($response);//Slim\Http\Response var_dump($arg);//Slim\参数 $arg['token'] ,$arg['classid'],$arg['id'] }
5.URL访问:
``````````` urilocalhost/vendor/index.php/hello/world`````
require './autoload.php';
$app = new \Slim\App();
// $app->add(function ($request, $response, $next) {
// $response->write('requestsdasdasdasd');
// $response = $next($request, $response);
// $response->write('responsesadsadasdasd');
// return $response;
// });
$app->get('/hello/{id}','test');
$app->get('/Index/ListAjax/{token}/{classid}/{num}','wapIndexListAjax');//资讯下的AJAX调用
$app->run();//运行应用
第三步,输入URL,如图下所示则安装成功,可以开始开发了
第四步:
在index.php修改自己的需求操作就行了,操作同上
注意,在本地apache的服务器时,可以通过.htaccess来定向到slim的index.php,但是在Nginx服务器时,记得配置虚拟主机
Nginx 配置
这是一个例子,在 Nginx 虚拟主机上针对域名 example.com
的配置。它监听80端口上的入境(inbound)HTTP 连接。它假定一个PHP-FPM服务器在端口9000上运行。你需要将 server_name
, error_log
, access_log
, 和 root
这些指令修改成你自己的值。其中 root
指令是你的应用程序公共文件根目录的路径;你的 Slim 应用的 index.php
前端控制器文件应该放在这个目录中。
server {
listen 80;
server_name example.com;
index index.php;
error_log /path/to/example.error.log;
access_log /path/to/example.access.log;
root /path/to/public;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
}
}
二.NotORM安装
1.介绍
它是一个 PHP 库,用来简化和数据库的交互。最有特色的功能是处理表关联关系非常简单。另外 NotORM 的性能非常的高,甚至高过内置的驱动。
(个人观点:不一定,但是对于新手来说。NotORM拼凑的sql语句性能还是比手写的要高)
3.。Slim+NotORM简易使用
header('Content-type: text/html;charset=utf-8');
error_reporting(E_ALL | E_STRICT);
global $config;
$config = include_once dirname(dirname(__FILE__))."/Conf/info.php";
include_once dirname(dirname(__FILE__))."/vendor/autoload.php";
include_once dirname(dirname(__FILE__))."/vendor/NotORM.php";
$app = new \Slim\App();
$pdo = new PDO("mysql:dbname=cgtblogpigcmsv84dev","root","root");
$pdo->exec('set names utf8');//不加会乱码
$db = new NotORM($pdo);
$db->debug = true;
$app->get('/infomations/{token}/classify/{classid}/offset/{num}', function ($request,$response,$arg) use ($app,$pdo, $db){
try{
$res = $db->tp_classify()->select('id,info')->where('token',$arg['token'])->and('fid',0)->and('status',1)->order('sorts ASC');
if(!empty($res)){
$data = (array('code' => 200, 'msg' => '成功返回数据', 'data' => $res,'knowledge'=>$knowledge));
}else{
$data = (array('code' => 400, 'msg' => '数据为空', 'data' => '',));
}
echo json_encode($data);
exit;
}catch(PDOException $e){
$data = (array('code' => 500, 'msg' => '服务器暂忙,请稍候', 'data' => '', 'err' =>$e->getMessage()));
echo json_encode($data);
}
});
$app->run();//运行应用
注意:
NortORM 详细使用 : http://blog.csdn.net/ty_hf/article/details/51175057