当前位置: 首页 > 工具软件 > hetao > 使用案例 >

slightphp mysql_GitHub - slightphp/slightphp: new version pls checkout https://github.com/hetao29/sl...

韩阳成
2023-12-01

SlightPHP 高效的PHP敏捷开发框架

v3.2更新如下

解决pecl在Workerman里不关闭文件,并有部分内存泄露的问题

优化一些算法,run($path)和request_uri的一致

v3.1更新如下

更新pecl,更好支持php7,php5

优化SDb,SRedis,增加错误连接重置,可以更好的支持WorkerMan,Swoole

v3.0支持composer,同时需要php5.3及以上

安装方法一 ,执行下面的命令

//使用中国镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

//下载安装最新

composer require "hetao29/slightphp:dev-master"

安装方法二 ,新增 composer.json,然后 composer install就可以了

{

"require": {

"hetao29/slightphp": "dev-master"

}

}

优化,默认我们已经做了加载优化,你也可以手动执行一次

composer dump-autoload --optimize

v2.0升级方法 ,加载SlightPHP.php改成如下方法就可以了,自定义slightphp_path的路径

//require_once($slightphp_path."/SlightPHP.php"); #不用这个方法了

require_once($slightphp_path."/vendor/autoload.php");

v2.0版本支持php4,php5,php7等主要版本

pecl 模块支持php7

最新更新,支持php7模块

支持composer

更简单方便的命令行执行模式

主要特点:

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

支持composer(3.0及以上)

支持php7(3.0及以上)

支持pecl的模块加载 请编译pecl目录下的源码,或者直接编译到php里

支持命令行(cli)模式 可以直接执行SlightPHP::run($path_info) ,可以用于WorkerMan,Swoole 等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

//加载方式1,直接加载框架

require_once("SlightPHP.php");

//加载方式2,使用扩展,或者直接编译进PHP也可以

//dl("slightphp.so");

//或者在php.ini里增加(如果不支持dl的话)

//extension = slightphp.so

//加载方式3,使用composer的autoload

//require_once("vendor/autoload.php");

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");

?>

高级地址解析-别名

如果加了这代码

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

SlightPHP::setPageAlias("profile","p");

分隔符(splitFlag)

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

SlightPHP::setSplitFlag(".")

SlightPHP::setSplitFlag("-.")

Apache Rewrite

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

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

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

SlightPHP::setSplitFlag(".");

短路由

如你要直接这样,更短的地址

http://localhost/profile/update

请在apache的配置文件里加上类似这样的代码

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

3.2

Free Software, MIT License!

 类似资料: