摘要:实现一个mysql数据库封装需要考虑的问题 使用方便性 采用直接sql语句操作方式。只要会写sql语句,那么将没有其他学习成本。 uctphp框架提供的dba辅助封装类,用会之后将爱不释手。 使用前需要显示初始化并连接到数据库吗,当然不需要。 直到执行第一条sql语句之前,都不会去连接数据库,甚至不
阅读全文
摘要:分享一个辅助函数,使用php尽可能识别出字符串中的数字,实现效果如下。 1 2 3 4 5 6 7 8 9 echo checkNatInt('九百六十万'); //普通中文数字,9600000 echo checkNatInt('壹亿柒仟万零捌佰肆拾'); //大写中文数字,170000840 e
阅读全文
摘要:所有的外部输入参数都应该检查合法性。 未正确处理输入数据将可能导致sql注入等漏洞。 框架提供系列函数来取$_REQUEST中的值 requestInt requestString requestFloat requestBool ps:注意$_REQUEST中变量类型可能会是数组 如请求为 ?i[
阅读全文
摘要:直接通过url参数访问业务模块($app)中控制器($ctl)里的函数($act) 我们支持3种路由模式 普通模式 _a=$app, _u=$ctl.$act 最简单的方式,专注实现业务$act函数,不需要再写额外代码 为什么参数名前面要加下划线就不解释了 easy模式 _easy=$app.$tp
阅读全文
摘要: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 1
阅读全文
摘要:根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定。 类名 文件名 路径 模型类m {$app}Mod {$app}.mod.php {$app}/model 控制器类c {$app}Ctl {$app}.ctl.php {$app}/control 其他 {$app
阅读全文
摘要:使用strtotime可以将各种格式的时间字符串转换为时间戳 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转换常规时间格式 echo date('Y-m-d H:i:s', strtotime('2016-01-30 18:00')).PHP_EOL; echo d
阅读全文
摘要:1. 组织文件布局应该考虑什么问题前后端分离各业务模块分离但方便互相调用上传文件安全性方便接入第三方类库如图所示框架入口文件 uct/index.php框架目录 uct/framework业务目录 uct/app文件上传目录 upload第三方类库 uct/vendor框架目录f...
阅读全文
摘要:1.本系列文章的目的 实现一个小而美的产品级别php框架 自己动手实现一个新框架仅用于学习交流,不打算替代市面上现有的其他主流框架。 2. 我要一个怎样的PHP框架 简单实用,安全优雅,博采众长 安装简单,上手简单,扩展简单 不需要编译C扩展。 不需要知道什么是composer。 不需要改nginx
阅读全文