最近在用backbone.js 做东西,因为牵扯到REST services 所以需要后台支持,此处选择了php。Slim 是php的一个框架。
貌似国内文章对此的介绍比较少,在安装Slim的过程中出现了些问题,历经三四个小时,终才解决。对此来个简单的总结,希望可以节省后来学习者的时间。
Slim 简介
特性列表
- HTTP routing
- Named routes
- Route passing
- Route redirects
- Route halting
- Middleware & Hooks
- Custom views
- HTTP caching
- Signed cookies
- Custom 404 page
- Custom 500 page
- Error handling
- Logging
系统要求
- Web server (URL rewrite module recommended)
- PHP >= 5.3
- libmcrypt > 2.4.x (if using encrypted cookies)
你当然可以去官方网站了,http://www.slimframework.com/
具体的使用文档你可以去 http://docs.slimframework.com/
1、首先我们先图文并茂演示如何安装 Slim
2、其次,要明白这个是PHP Framework,需要配置php运行环境,此处选择的 WampServer Version 2.2 它的PHP版本>5.3 可运行 Slim。
下载WampServer,按照提示一步一步默认安装就可以。安装之后运行
关于如何安装配置WampServer,百度有篇详细的文章 http://wenku.baidu.com/view/d6107823192e45361066f53c.html
3、再次要支持web serive,URL可以重写,启用Apache 的mod_rewrite模块
在conf目录的httpd.conf文件中找到
LoadModule rewrite_module modules/mod_rewrite.so
将这一行前面的#去掉。
2.在要支持url rewirte的目录启用 Options FollowSymLinks 和 AllowOverride All
可以在httpd.conf 文件中搜索 定位到此处
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
参照这个写出来 D:/wamp/www/SlimTwigExample 因为我设定的localhost 是 D:/wamp/www/,
在www下新建文件夹 SlimTwigExample,把下载的Slim文件解压到这个文件夹。
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
4、让我们开始写代码吧,修改index.php
页尾部 $app->run();注释掉这一句,增加如下语句,添加一个rest服务
$app2=new SlimSlim();
$app2->get('/hello/:name', function ($name) {
echo 'hello'.' '.$name;
});
$app2->run();
编辑结束后,重启Apache,可在 Apache ->Service->Restart 。
然后在浏览器中输入http://localhost/SlimTwigExample/hello/Fany,就会在页面中显示 hello Fany
因为我米有用到Cookie,所以没有顾及后面的第三个条件。
至此,Slim 就可以用了。
在使用Wampserver中有遇到php版本的问题,此处可以采用如下的方法大致来。
WampServer是一个集成了PHP/Mysql/Apache及其它应用(如PhpMyAdmin/Xdebug[也许没有])的软件,它最令人喜爱的特征,不是令Php/Mysql/Apache的安装配置简单化,而是让我们只需要点点鼠标,就可以随意切换已经安装的PHP/Mysql/Apache的不同版本。对于PHP不同版本的需求,PHP程序员都最清楚不过了。
WampServer的Version菜单(Apache、PHP、Mysql各自有一个Version菜单)上,有一个 Get More... 连接,点击它就可以到官网上下载你需要的版本,安装是自动化的,非常简单。没有我们需要的版本,怎么办?自己动手,丰衣足食!
手工安装新版本的PHP,只需以下步骤:
- 下载要安装的PHP版本。既然是用WampServer,那当然是下载Window版本的ZIP包啦:http://windows.php.net。解压到 Wamp的安装目录inphpphp5.2.17。这里以5.2.17为例。
- 进入 Wamp的安装目录inphpphp5.2.17 目录,从 php.ini-dist 或者 php.ini-recommended 复制一份,重命名为php.ini,适应修改php.ini配置(如extension_dir),再从php.ini复制一分,重命名为phpForApache.ini。
- 从已有的版本目录中复制一份 wampserver.conf。比如我安装WampServer的时候已经有php5.3.0,在 Wamp的安装目录inphpphp5.3.0 目录下复制 wampserver.conf 到 Wamp的安装目录inphpphp5.2.17。
- 修改Wamp配置文件:进入 Wamp的安装目录,用IDE或记事本(最好使用行号定位的记事本,如EditPlus等)打开 wampmanager.ini,定位到 335 行,通常在这一行就是[phpVersion],如果不是,则在附近找找。复制下面一行:
Type: item; Caption: "5.3.0"; Action: multi; Actions:switchPhp5.3.0
插入到这一行前面,并修改为Type: item; Caption: "5.2.17"; Action: multi; Actions:switchPhp5.2.17再复制[switchPhp5.3.0]插入这一段之前,并修改为
Action: service; Service: wampapache; ServiceAction: stop; Flags: ignoreerrors waituntilterminated
Action: run; FileName: "Wamp的安装目录/bin/php/php5.3.0/php-win.exe";Parameters: "switchPhpVersion.php 5.3.0";WorkingDir: "Wamp的安装目录/scripts"; Flags: waituntilterminated
Action: run; FileName: "Wamp的安装目录/bin/php/php5.3.0/php-win.exe";Parameters: "-c . refresh.php";WorkingDir: "Wamp的安装目录/scripts"; Flags: waituntilterminated
Action: run; FileName: "net"; Parameters: "start wampapache"; ShowCmd: hidden; Flags: waituntilterminated
Action: resetservices
Action: readconfig;
[switchPhp5.2.17]
Action: service; Service: wampapache; ServiceAction: stop; Flags: ignoreerrors waituntilterminated
Action: run; FileName: "Wamp的安装目录/bin/php/php5.3.0/php-win.exe";Parameters: "switchPhpVersion.php 5.2.17";WorkingDir: "Wamp的安装目录/scripts"; Flags: waituntilterminatedAction: run; FileName: "net"; Parameters: "start wampapache"; ShowCmd: hidden; Flags: waituntilterminated
Action: run; FileName: "Wamp的安装目录/bin/php/php5.3.0/php-win.exe";Parameters: "-c . refresh.php";WorkingDir: "Wamp的安装目录/scripts"; Flags: waituntilterminated
Action: resetservices
Action: readconfig; - 退出WampServer,再重启。完成。
通过这5步,即可完成PHP任意版本的安装。