您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP扩展实现的简单MVC框架

2024/4/6 7:36:14发布17次查看
公司项目中web项目几乎都是使用codeigniter框架,为了降低php的单次执行请求时间、减低服务器处理响应时间,
同时提高每分钟应答的总数,开发这个扩展的目的是将router、template、config、controller等框架提高的基础通用功能由底层实现,
php脚本仅处理业务逻辑,发挥各自的优势。
考虑到项目迁移的成本,所以此扩展的mvc也是基于ci原型来设计的,同时也去除了很多不常用的功能。
支持版本:php5.3+
下面提供了两张截图,1分钟内针对相同网址并发数从10至100的请求测试结果。
数据对比:(测试工具curl loader)类型 1分钟总请求数 成功次数 失败次数 平均响应时间 平均每秒请求数原ci框架 17706 15772 1844 137ms 267次扩展 57599 46654 10881 6ms 866次
原php ci框架:
扩展mvc:
扩展实现的框架,响应速度提高了约10倍,请求总数提高了约3倍,失败率提高了约8%。
使用案例: nginx.conf配置单入口(与ci一样单入口一样,没有变动),例如:
server { listen 80; server_name test.cn; index index.php; root /usr/local/wwwroot/test/public; location / { rewrite ^/$ /index.php last; #一下是防止某些文件夹被直接访问 rewrite ^/(?!index\.php|robots\.txt|images|js|css|styles|static)(.*)$ /index.php/$1 last; } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_filename $document_root$fastcgi_script_name; include fastcgi_params; } }
入口文件index.php:
$application_folder = 'application';$dir_path = './';if (strpos(__file__, '\') !== false) { $dir_path = substr(__file__, 0, strrpos(__file__, '\')) . '/';} elseif (strpos(__file__, '/') !== false) { $dir_path = substr(__file__, 0, strrpos(__file__, '/')) . '/';}define('basepath', str_replace(\, /, realpath($dir_path.'../').'/'));define('apppath', realpath(basepath.$application_folder).'/');$framework = new wk_framework();$framework->loadview();$framework->settemplatedir(apppath.'../public/template/');$framework->setcompiledir(apppath.'../public/data/complie/');$framework->setapplicationpath(apppath);//此处release、test、development,会根据条件自动切换配置文件路径//优先寻找/application/config/environment/config,没有在寻找/application/config/config$framework->setenvironment('release');require_once(apppath.'core/wk_controller.php');$framework->initialize();$framework->capturerouter();
安装扩展方法参见: 进入
前往项目网址: 进入
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product