首页 > PHP > 使用composer安装slim和slim-json-api

使用composer安装slim和slim-json-api

接上一篇《使用composer来管理php包依赖》,如果不会安装composer还是多查查资料。

项目框架Github地址:https://github.com/slimphp/Slim/tree/2.x

1. 安装slim框架

在项目目录新建一个composer.json文件,内容如下:

{
       "require": {
              "slim/slim": "2.3.*"
       }
}

然后,使用命令行切换到当前项目目录,执行以下命令:

composer install

然后,如果你用的是Apache(目前windows不支持nginx),你得在项目目录新建一个.htaccess文件,内容如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

2. 编写测试代码 index.php

<?php
require 'vendor/autoload.php';
//生成一个 Slim 应用实例:
$app = new \Slim\Slim();
//定义一个 HTTP GET 请求路由:
$app->get('/hello/:name', function($name){
        echo "Hello, $name";
    });
//执行 Slim 应用
$app->run();

3. 打开浏览器访问你的项目的web目录,并带上/hello/slim

根据rewrite规则会执行index.php并

blob.png


========================slim简单学习到此结束==========================


4. slim只是一个框架,如果需要安装slim-json-api应用,可以在composer.json中增加:

{
   "require": {
        "slim/slim": "2.3.*",
        "entomb/slim-json-api": "dev-master"
   },
   "repositories": {
      "packagist": {
         "type": "composer",
         "url": "https://packagist.phpcomposer.com"
      }
   }
}

这里我们将局部也配置为国内的composer镜像地址,然后重新运行composer update命令完成安装。项目地址:

https://github.com/entomb/slim-json-api


5. 接着修改index.php中的路由设置,全部代码改为:

<?php
require 'vendor/autoload.php';
 
$app = new \Slim\Slim();
 
$app->view(new \JsonApiView());
$app->add(new \JsonApiMiddleware());
 
$app->get('/', function() use ($app) {
      
       $app->render(200,array(
                     'msg' => 'welcome to my API!',
              ));
});
 
$app->run();

6. 最后通过浏览器访问项目的web根目录,就能看到json信息:

blob.png

接着再添加一个访问用户user的路由规则

$app->get('/user/:id', function($id) use ($app) {
 
       //your code here
 
       $app->render(404,array(
                     'error' => TRUE,
                     'msg'   => 'user not found',
              ));
});

访问项目/user/123将会得到一个404的状态码和一段json信息。

blob.png


7. 我们将该项目移植到linux+nginx上。

其实只需要2个文件:composer.jsonindex.php

运行终端cd切换到项目根目录(这里我们将项目放到网站的/www/slim目录下),然后执行composer install,不一会所有的包下载好了

接着编辑nginx的server段配置文件,/www为网站根目录,slim为提供json服务的子目录,这里仅允许slim目录下执行php脚本。

root  /www;

location /slim/{
	try_files $uri $uri/ /slim/index.php?$args;
	location ~ .*\.(php|php5)?$
	{
		#fastcgi_pass  unix:/tmp/php-cgi.sock;
		fastcgi_pass  127.0.0.1:9000;
		fastcgi_index index.php;
		include fastcgi.conf;
		expires      -1;
	}
}

上面的nginx配置是网站的某个子目录提供服务,如果需要index.php放置到网站的根目录提供服务可以这样配置:

root  /www;
location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$uri&$args;
    location ~ .*\.(php|php5)?$
    {
        #fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
        expires      -1;
    }
}

重启nginx,通过浏览器访问项目的web根目录, OK,这样就能让你的站点提供restful服务了。

注意:slim-json-api只支持slim2.x版本,不支持最新版slim3.x,升级前请测试!


永久链接:http://blog.zhengshuiguang.com/php/slim-json-api.html

转载随意!带上文章地址吧。

标签:none

评论已关闭