PHP笔记
PHP原生相关笔记
陀螺蚁
只要热爱,就继续坚持!加油!
展开
-
PHP框架开发之可扩展的Db数据库
常见项目开发框架都是支持多种不同数据库类型的切换,例如:PDO、MySqli、SQLite等等这里也做个简单的笔记,基于简单工厂模式编写一个可扩展的Db数据库支持;第一步:约定数据库必须需要实现的处理方法/** * 数据库类型扩展接口 */interface DbInterface{ /** * 数据库连接 * * @param string $host // 连接地址 * @param string $user // 用户 * @.原创 2020-06-12 05:22:44 · 205 阅读 · 0 评论 -
PHP开发设计模式之单例模式
一、简介Singleton(单例模式),是最常见的开发模式之一作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。定义简单而言,就是一个独立的存在,在全局范围没有第二个了;优点对唯一实例的受控访问缩小命名空间 单例模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染命名空间比类操作更灵活应用场景Db数据库的应用操作,在项目中常会需要大量的DB操作,使用单原创 2020-06-13 16:18:54 · 202 阅读 · 0 评论 -
PHP小知识之final关键词
PHP5及以上版本支持Final 关键字> 特性:如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。> 示例1:类方法带有final关键词class FinalDemoClass{ // 建立一个带有final关键词的类方法TestFun() final public function TestFun() { echo "FinalDemoClass::TestFun() 被调用\n"; .原创 2020-06-13 15:20:22 · 163 阅读 · 0 评论 -
PHP框架开发之Route路由简单实现
参数Laravel路由的使用方式,来效仿一个简单的路由实现方式class Route{ /** * @var $_instance // 实例 */ private static $_instance = null; /** * @var $_currentPath // 当前URL中的地址 */ private $_currentPath = ''; /** * @var $_prefix // URL地址中前缀原创 2020-06-11 18:02:31 · 2133 阅读 · 0 评论 -
【资源库】CRM - Composer源管理工具
由于composer在国内下载速度非常慢,大家都习惯使用中国镜像,如果正在使用的镜像没有更新或者出现故障你可以使用Composer Registry Manager帮助你轻松地切换到另外一个镜像。默认带了一些镜像,当然你也可以添加新的镜像。安装使用composer安装,执行下面命令$ composer global require slince/composer-registry-manager基本用法列出所有可使用的镜像$ composer repo:ls --- -----------转载 2023-08-07 18:34:04 · 130 阅读 · 0 评论 -
PHP技巧之链式调用
接触过ThinkPHP、Laravel、Yii等开发框架的朋友们应该经常遇到这样的调用方式:// Laravel链式调用示例DB::table('users')->where('name', 'John')->first();我们对比下传统早期的调用方式$_db = new DB();$_db->table('users');$_db->where('name','John');$_db->first();两者相比是不是,链式更方便、简洁;那如何实现类.原创 2020-06-12 16:31:42 · 452 阅读 · 0 评论 -
【composer】如何在本地开发、调试Composer包
本地开发和调试composer包原创 2023-05-27 00:51:57 · 1696 阅读 · 0 评论 -
【PhpSpreadsheet】实现excel冻结列和行(即左右滚动时指定列和行固定不动)
composer require phpoffice/phpspreadsheet版本:^1.18在做表格数据导出时,如何冻结列和行(即左右滚动时冻结的列和行固定不动)代码$spreadsheet = new Spreadsheet();// 获取激活工作表$sheet = $spreadsheet->getActiveSheet();// 设定B3行、列冻结窗格$sheet->freezePane("B3",true);效果扩展【源】phpspreadshee.原创 2021-11-11 10:52:35 · 1252 阅读 · 0 评论 -
PHP自定义函数之计算别名序列数组的差集
示例$a = [];$b = [];$c = aliasArrayDiff($a, $b);var_dump($c);代码/** * 计算别名序列数组的差集 * * @param array $newData 待比对数组1 * @param array $oldData 待比对数组2 * @param string $asName [可选]默认goods_id,对比数组中同时持有的依据key名称 * @param array $attach [可选]公共附带数据 * * @原创 2021-11-10 15:30:13 · 255 阅读 · 0 评论 -
PHP自定义函数之根据指定key进行数组下标重组
/** * 索引下标重新排列(根据指定key进行数组下标重组) * * @param array $data 传入需要处理的数组(最大支持二位数组),一维数组 * @param string $suffix 下标字段 * * @return array */function array_key_change( array $data = [],$suffix=''){ $_data = []; if( !is_string($suffix) )return $da原创 2021-06-25 09:19:05 · 440 阅读 · 0 评论 -
PHP功能实现之微信提现(企业付款)
<?phpnamespace App\Helpers\Unit\Behaviour;use App\Helpers\Traits\Logs;use App\Models\PayTakeoutLogModels AS mPayTakeoutLog;/** * 组件 - 微信提现 * * @version 1.0.0 * @author Yunuo <ciwdream@gmail.com> * @link https://pay.weixin.qq.com/wiki/原创 2020-08-25 17:11:10 · 771 阅读 · 0 评论 -
PHP RSA2 签名算法
PHP-RSA2签名验证RSA2 是在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。该算法比SHA1WithRSA有更强的安全能力。<?php/** * RSA2 加密 */class Rsa2{ private static $PRIVATE_KEY = <<<EOD-----BEGIN RSA PRIVATE KEY-----////////-----END RSA PRIVATE KEY-----转载 2020-07-22 14:53:22 · 266 阅读 · 0 评论 -
PHP如何调用Python脚本执行 之 ppython
环境Python 3.*及以上PHP PPython类<?phpnamespace PPython;class PPython { private static $_CONFIG = []; private static $_ISINIT = false; public static function init(array $config = []) { self::$_CONFIG['LAJP_IP'] =原创 2020-06-14 15:10:46 · 1360 阅读 · 2 评论 -
PHP自定义函数之无级分类(递归)
代码:class TreeUnit{ /** * 生成树状结构 * * @param array $list 一维数组 * @param string $pk 主键字段名称 * @param string $pid 上级字段名称 * @param string $child 子级字段名称 * @param int $root 起始位 * * @return array */原创 2021-03-10 16:13:16 · 114 阅读 · 0 评论 -
PHP自定义函数之格式化字段Value数据类型
代码/** * 格式化字段Value数据类型 * * @param array|object $data 待格式化数据,一维数组 * @param array $fieldList 需格式化字段名称,一维数组 * @param string $dataTypeFun 格式化函数名称 * * @return array */function formatFieldDataType(&$data,array $fieldList=[],$d原创 2020-12-17 11:21:00 · 166 阅读 · 0 评论 -
PHP自定义函数之日期段列表生成
代码<?php/** * 指定日期访问内的日期列表 * @link https://segmentfault.com/q/1010000002458720 * * @param string $start 开始日期,例如:2020-07-23 * @param string $end 结束日期,例如:2020-07-23 * @param string $format 日期格式,默认:Y-m-d * @param integer $len 步长(天),默认:1 * @r原创 2020-12-21 13:43:29 · 190 阅读 · 0 评论 -
PHP自定义函数之浮点小数位保留(字符串切割) - 舍去不进位
代码:/** * 浮点小数位保留(字符串切割) - 舍去 * * @param string $number 数值 * @param int $digit [可选]保留位数,默认:3 * * @return int|float */function floatDecimalExcision(string $number,$digit=3){ $number = explode('.',$number); $digit = $digit - 1;原创 2021-01-29 22:25:59 · 329 阅读 · 0 评论