slightphp mysql_GitHub - luofei614/slightphp: SlightPHP 高效的PHP敏捷开发框架

SlightPHP 高效的PHP敏捷开发框架

###主要特点:

独有的"框架"与"plugins"分离方式,与现在主流框架完全不同,把核心框架与其它功能独立分开,灵活性大,耦合度小,很方便移植

框架本身核心代码非常小,速度快效率极高,更支持php模块方式加载(请编译pecl目录下的源码,或者直接编译到php里)

框架支持nginx,lighttpd,apache,iis等web服务器

插件SDb 支持mysql,mysqli,pdo,mssql,oracle等主流数据库,同时更支持数据库读写库分离,特适合大流量网站

插件SRoute 支持各种简洁路由支持,精简URL

插件STpl模板类,高效与灵活,比Smarty轻量级不少!

插件SCache(memcache)采用consistent hashing算法,支持分布式服务与依赖KEY,同时也支持file,apc缓存

其它更多灵活可定制的插件,请查看wiki或者samples下的例子

###Hello, world!

####第一步

在网站根目录下,建立index.php

require_once("SlightPHP.php");

//或者你也可以用动态库方式 dl("SlightPHP.so");

SlightPHP::run();

?>

####第二步

第二步 请在index.php所在目录下新建zone目录,在zone目录下新建page.page.php

class zone_page{

function PageEntry($inPath){

echo "Hello, world!";

}

}

?>

####第三步

请在你的地址栏里访问index.php,如

http://localhost/index.php

###基本概念

zone 映射为一个目录名,默认为"zone"

page 映射为一个文件名,以.page.php为扩展名,默认为"page"

entry 映射为方法名,以Page开头的方法名,默认为"entry"

appDir 应用程序目录,默认为".",就是当前目录

splitFlag 分割符,默认为"/"

inPath entry入口参数,数组,下面会有更详细的介绍

你可以改变其默认规则

SlightPHP::setDefaultZone("user");

SlightPHP::setDefaultPage("profile");

SlightPHP::setDefaultEntry("update");

?>

当访问 http://localhost/index.php 时,就会执行

$appDir/user/profile.page.php里的pageUpdate方法,其实就是

http://localhost/index.php/user/profile/update

这个URL

####高级地址解析-别名

如果加了这代码

SlightPHP::setZoneAlias("user","u");

####分隔符(splitFlag)

zone,page,entry的分隔默认是用/来分的,你可以改成自己想要的,如

SlightPHP::setSplitFlag(".")

SlightPHP::setSplitFlag("-.")

http://localhost/index.php/user-profile-update.html

和上面的是一样

####Apache Rewrite

在你的.htaccess里或者apache的配置文件里加下类似代码

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

SlightPHP::setSplitFlag(".");

RewriteRule ^(/profile/.*)$ /index.php/user/profile/update/$1 [E=PATH_INFO:$1,L]

####关于$inPath

$inPath[0] 就是当前的 zone的名字

$inPath[1] 就是当前的 page的名字

$inPath[2] 就是当前的 entry的名字

$inPath[...] 超过以前的就是后面更多的参数,如html

如 http://localhost/index.php/user/profile/update/other1/other2/... inPath是这样的

$inPath=array("user","profile","update","other1","other2","...")

####appDir,程序目录设置

你可以自定义你的程序目录

SlightPHP::setAppDir("/home/www/myAppdir");

就会执行

/home/www/myAppdir/user/profile.page.php下的pageUpdate方法

建议你的appDir目录不要让外部访问到

####插件导航

更多插件功能请看samples下的示例

####Nginx配置

location / {

root /var/www/slightphp/samples/www;

index index.php;

if (!-e $request_filename){

rewrite ^/(.+?)$ /index.php last;

}

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /var/www/slightphp/samples/www$fastcgi_script_name;

include fastcgi_params;

}

Version

2.0.1 beta

Free Software, Hell Yeah!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值