1.本系列文章的目的 实现一个小而美的产品级别php框架 自己动手实现一个新框架仅用于学习交流,不打算替代市面上现有的其他主流框架. 2. 我要一个怎样的PHP框架 简单实用,安全优雅,博采众长 安装简单,上手简单,扩展简单 不需要编译C扩展. 不需要知道什么是composer. 不需要改nginx.cnf .htaccess各种重写规则. 但支持各种环境,从最低端的虚拟空间到独立服务器,从单机xampp,phpstudy, 到各种云sae,bae,以及高大上的分布式架构部署方式.绿色无需安装,…
所有的外部输入参数都应该检查合法性. 未正确处理输入数据将可能导致sql注入等漏洞. 框架提供系列函数来取$_REQUEST中的值 requestInt requestString requestFloat requestBool ps:注意$_REQUEST中变量类型可能会是数组 如请求为 ?i[]=1,那么$_REQUEST['i'] 的值为array(1) 做校验的时候要考虑全面以防止php warning信息泄露 另外再介绍一下kv json格式的数据校验. 有时为了在项目中保留一定扩展…
1. 组织文件布局应该考虑什么问题 前后端分离 各业务模块分离但方便互相调用 上传文件安全性 方便接入第三方类库 如图所示 框架入口文件 uct/index.php 框架目录         uct/framework 业务目录         uct/app 文件上传目录  upload 第三方类库      uct/vendor 框架目录framework下和业务目录web下均有类似结构 control目录与model目录, 另外web下还有前端目录tpl和view.tpl用于放置后台管理页…
实现一个mysql数据库封装需要考虑的问题 使用方便性 采用直接sql语句操作方式.只要会写sql语句,那么将没有其他学习成本. uctphp框架提供的dba辅助封装类,用会之后将爱不释手. 使用前需要显示初始化并连接到数据库吗,当然不需要. 直到执行第一条sql语句之前,都不会去连接数据库,甚至不会new一个db对象. dba将会在合适的时机去连接数据库并执行初始化字符编码操作. 查询语句.不需要new一个查询构造器也不提供链式操作方式,那样复杂且低效. dba提供了以下的查询辅助函数. 1…
直接通过url参数访问业务模块($app)中控制器($ctl)里的函数($act) 我们支持3种路由模式 普通模式 _a=$app,     _u=$ctl.$act 最简单的方式,专注实现业务$act函数,不需要再写额外代码 为什么参数名前面要加下划线就不解释了 easy模式 _easy=$app.$tpl.$ctl.$act _easy=$app.$ctl.$act 在web开发中,通常我们在$act中输出一个前端页面, easy模式下,如果未实现$act处理函数,会自动寻找并显示对应的前端…
根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定.   类名 文件名 路径 模型类m {$app}Mod  {$app}.mod.php {$app}/model   控制器类c {$app}Ctl {$app}.ctl.php {$app}/control 其他 {$app} {$app}.cls.php {$app}/class 可以实现一个简单的autoload函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18…
psr4自动加载规范https://github.com/PizzaLiu/PHP-FIG/blob/master/PSR-4-autoloader-cn.md 我们把第三方使用psr规范的类库放在vendor目录下 修改一下autoload函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22     //psr     if (!empty($GLOBALS['_UCT']['autoload_psr'])) {        …
2019 年起如何开始学习 ABP 框架系列文章-开篇有益 [[TOC]] 本系列文章推荐阅读地址为:52ABP 开发文档 https://www.52abp.com/Wiki/52abp/latest/Welcome-to-52abp 本文的目的是为了让刚刚接触 ABP 框架的同学或者准备接触 ABP 框架的同学,能够理解和搞明白 ABP 框架到底是怎么回事,毕竟它发展了好几年的时间.社区中有很多人做 了 ABP 的资料和文章包括我自己也建立了 52ABP,社区中还有 ABPplus 等等的内…
总结:HttpModule 和HttpHandler是Asp.net管道的两个重要组件.请求最终处理通过HttpHandler完成.MVC就是通过名为MvcHandler自定义HttpHandler现实对Controller的激活和Action的执行.但对c 和A名称的解析是通过Asp.net的URL路由系统完成,而整个URL路由系统是通过名为UrlRoutingModule的自定义HttpModule实现的. 第一 Asp.net路由系统 有一个针对整个Web应用的全局路由表,表中每一个路由对…
开源轻量级.Net框架EnterpriseFrameWork详解 ——自己动手写框架 ——适合中小企业的开发框架 ——Ajax+JqueryEasyUI+NotNetBar+MVC+WebService+WCF+ORM+EntLib ——三种开发方式的完美整合(Web项目.Winform项目与WCF中间件项目) 第一部分:EFW框架功能全面介绍 开篇从两个部分全面介绍了EFW框架的整体功能及适用项目,首先通过一个实例分别讲解怎么利用框架快速开发Web.Winform和WCF系统与WebServi…