- 博客(41)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 PHP try...catch在项目中的实际应用
传统phper对程序中遇到的异常处理传统phper写代码,喜欢函数里面return false 表示程序中断执行function test() { //...业务逻辑 if (不符合条件) { return false; } return true;}优点: 还没发现缺点: 俄罗斯套娃,一层一层的套,每一层都要检查返回值try catch处理异常使用try cache处理异常function test() { //...业务逻辑 if (不符合条件) { throw
2022-03-29 15:41:14
824
1
原创 面向对象编程的深入理解
面向对象编程就是把需要处理的逻辑对象,当做一个整体,把需要的参数配置赋值给对象,对象内部处理逻辑完全对客户端封闭。只暴露接口给客户端调用。ps: 有一个问题困惑了我很久,就是数据库的增删改查与业务逻辑的搞混,数据库增删改查应该与逻辑对象分开来,放到数据层。示例:需求: 有n种职业,每种职业的不同名称,不同的薪资新建person表CREATE TABLE person ( `id` INT(11) NOT NULL auto_increment, `name` VARCHAR(20) NOT.
2021-10-14 10:57:22
249
原创 如何让你的代码不变成屎山
小明是一名萌新php程序员,受雇在一家传统的企业crm开发。一天老板提出一个新的需求业务部的业务员下了一张订单的时候,需要钉钉消息提醒物流部的同事去处理小明收到需求,然后打开了下单的model代码如下<?phpclass Order { public function create($params) { if (user == '业务员') { //todo 查询商品 //todo 计算价格
2021-09-01 21:41:27
417
原创 PHP单元测试
什么是单元测试百度百科:百度百科:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试之我见单元测试,就是把我们写的函数或者类作为一个单元,检
2021-06-03 18:14:03
3250
原创 PHP设计模式之代理模式
代理模式定义为其他对象提供一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。代理模式使用场景当需要隐藏一个类的时候;可以在代理类中做访问委托类的权限管理;当我们需要对委托类功能做拓展的时候也可以使用代理模式。代理模式的优缺点优点:职责清晰,委托类只需关注自身功能实现,不需要非自身职责;代理对象可以在客户端和目标对象之间起到中介作用,保护目标对象;可拓展性更强。缺点:代理类的增加,会使系
2021-01-06 23:46:03
137
原创 2021-01-04
策略模式(Strategy)策略模式定义策略模式是把算法,封装起来。使得使用算法和使用算法环境分离开来,当算法发生改变时,我们之需要修改客户端调用算法,和增加一个新的算法封装类。比如超市收银,收营员判断顾客是否是会员,当顾客不是会员时候,按照原价收取顾客购买商品费用,当顾客是会员的时候,满100减5元。策略模式的优点降低代码耦合度,增加代码重用性,当需要实现新的算法时候,只需要修改算法部分,而不需要对上下文环境做任何改动;增加代码可阅读性,避免使用if…else嵌套,造成难以理解的逻辑;策
2021-01-04 23:27:58
125
原创 工厂方法模式
工厂方法模式简单工厂模式违反了开闭原则还有单一职责原则,工厂方法模式是对简单工厂模式的进一步抽象。工厂方法模式的优缺点优点:用户创建实例时不需要知道知道具体类,而只需要知道工厂类;新建一个产品,只需要新建一个相应的类;缺点:类的个数将会越来越多;增加系统抽象度,更加难以理解;抽象产品只能生产一种产品。具体代码AbstractFactory.php<?phpnamespace App\Creational\Factory;abstract class Ab
2020-12-31 00:07:39
146
原创 简单工厂模式
工厂模式是最常用的设计模式之一,是一样创建型设计模式。是创建对象的最佳方式,客户端可以不用知道具体对象的情况下,实例化对象。有三种工厂模式简单工厂模式工厂模式抽象工厂模式这里我们先学习介绍简单工厂简单工厂模式定义一个工厂类,可以通过不同的参数返回不同的类的实例。优点:客户端只需知道参数即可,无需知道创建实例的具体类名;可以在不修改客户端的情况下,修改类名。缺点:违反单一职责原则,一个类承担多个职责,随着手机品牌增多,会变的原来越难以维护;违反开闭原则,如果修改一旦出现
2020-12-29 23:54:16
139
原创 CGI (通用网关接口)
CGI (通用网关接口)CGIcgi即 Common Gateway Interface 译作 通用网关接口是应用程序与应用程序之间的输入输出协议。比如我们写信,规定了开头一句写称呼,中间写内容,最后署名和日期。看到这种格式,我们就知道这是一封信。我要知道写这封信的人或者日期。那么我就直接信的最后两行。cgi就是应用程序与应用程序之间通信格式规定。php-cgicgi可以由任何语言...
2020-05-08 14:28:01
386
转载 将Sublime Text 添加到右键菜单的方法
把以下代码,复制到SublimeText3的文件目录,然后重命名为:安装右键菜单.inf,然后右击安装就可以了。[Version]Signature="$Windows NT$"[DefaultInstall]AddReg=SublimeText3[SublimeText3]hkcr,"*\\shell\\SublimeText3",,,"用 SublimeText3 打开"h...
2018-05-06 12:40:21
382
原创 wordpress主题制作学习记录
在学习wordpress主题开发时常用的函数以及作用 学习资料来自于我爱水煮鱼博客 http://blog.wpjam.com/m/wp-theme-lesson-1-intro/ 函数 功能 备注 bloginfo(‘name’) 输出博客名 bloginfo(‘url’) 输出博客链接 bloginfo(‘description’) 输
2017-09-05 14:37:47
800
原创 php笔试题
一. 字符串操做1. 表单中get和post的区别? 答:get发送HTTP请求是通过url参数传递进行接,而post是实体数据,可以通过表单提交大量数据;2. 用PHP打印出前一天的时间格式是2006-5-10 22:21:21 答:echo date(“y-m-d H:i:s”,strtotime(“-1 days”));3. 如何实现字符串翻转? echo strre
2017-08-02 01:19:27
630
原创 mysql常见错误
问题描述:服务器磁盘满了之后造成数据库发生或错误 [root@iZ25tub1fclZ ~]# mysqlcheck -A -r -uroot -p//数据库修复命令持续更新….
2017-06-06 09:27:18
292
原创 在mysql日志中输出错误sql语句
linux中/etc/my.cnf文件中添加 log-warning=2 log=/var/lib/mysql/sql.log
2017-06-03 10:29:50
3604
原创 redis安装
先安装TCL tar -zxvf tcl.xxx cd tcl/unix ./configure && make && make install 再安装 redis tar -zxvf redis…. cd redis/src make && make install cd ../utils ./install_server.sh service redis_6379 sta
2017-05-24 17:40:02
300
原创 工作常用操作
数据库删除数据select * from user where long_name=18576556xxx;DELETE from user where field_id=23xxx;DELETE from v_field where field_id=23xx;DELETE from field_account where field_id=236xx;
2017-04-21 16:15:48
180
原创 javascript 时间操作
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>时间和日期</title></head><body> </body></html><script type="text/javascript"> /* var box = new Date(2017,3,29,1,18
2017-03-29 09:12:15
309
原创 javacript 数组操作
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>对象和数组</title></head><body></body></html><script type="text/javascript">/*var box = ['ogq',25,'student',new Date()];alert(box
2017-03-28 19:45:52
481
原创 html5适配手机屏幕
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> 1、width=device-width :表示宽度是设备屏幕的宽度 2、initial-scale=1.0:表示初始的缩放比例 3、m
2017-03-28 15:06:52
4058
原创 curl get&post
使用curl post $url = 'http://123.xxxx/'; // 参数数组 $data = array ( 'appid' => $appid, 'appkey' => $appkey, ); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url
2017-03-18 18:35:15
296
原创 网页返回更新
返回上一页(相当于后退)window.history.back(); 获取上一页urldocument.referrer 重定向window.location.href 返回并更新window.location.href=document.referrer;
2017-03-17 17:46:27
297
原创 网页基础模版
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap-glyphicons/1.0/css/bootstrap-glyphicons.css"
2017-03-15 15:51:03
504
原创 bootstrap笔记
样式排版<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>bootstrap</title><link rel="stylesheet" href="http://localhost/Public/bootstrap/dist/css/bootstrap.css"></head><body style="
2017-03-08 12:07:26
272
原创 服务器环境搭建
安装 yum install rpm 安装集成环境 rpm -Uvh http://mirrors.ustc.edu.cn/epel/5/i386/epel-release-5-4.noarch.rpm 安装apache/mysql/php yum install --enablerepo=epel php53 php53-mbstring php53-mysql php53-pdo ph
2017-03-08 09:51:42
442
转载 phpstrom快捷键
常用快捷键 设置快捷键:File -> Settings -> IDE Settings -> Keymap -> 选择“Eclipse” -> 然后“Copy”一份 -> 再个性化设置(自己习惯的)快捷键 常用快捷键(keymaps:Default情况下)Esc键编辑器(从工具窗口) F1 帮助 千万别按,很卡! F2(Shift+F2) 下/上高亮错误或警告快速定位 F3
2017-02-28 10:41:36
465
原创 分页类
封装分页工具类的使用:本实例在tp框架环境下$goods = M("goods"); //tp实例化goods模型$total = $goods->count(); //计算数据条数$per = 7; //每页展示分页条数$page = new Page($total,$per);
2017-02-23 14:39:49
292
原创 tp&smarty使用日记
在smarty中使时间戳变成年/月/日格式: {$v.goods_create_time|date_format:"%Y-%m-%d %H:%M:%S"}在tp中获取系统提供的可以使用的常量:get_defined_constants(true);
2017-02-18 15:35:19
724
转载 PDO操作
数据库连接:<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=xb_yxb', "root", "123"); foreach($dbh->query('SELECT long_name from user limit 10') as $row) { print_r($row); $dbh = null;
2017-02-16 14:24:57
237
原创 Linux命令
批量查找替换文件中字符: *sed -i “s/查找字段/替换字段/g” `grep 查找字段 -rl 路径`* 查找字符串: find 具体的查找目录 -name “*” | xargs grep “要查询的特定字符串” 查找大文件: * du -sh * * 定时任务执行及php脚本:
2017-02-16 14:09:51
230
转载 Git使用
参考资料廖雪峰Git教程创建库: 初始化一个Git仓库,使用git init 命令。添加文件到Git仓库,分两步:第一步,使用命令 git add <file>,注意,可反复多次使用,添加多个文件;第二步,使用命令git commit,完成。 关联github仓库:git remote add origin git@github.com:Fenglin0721/Shop.git推送本地项目
2017-02-16 13:49:28
243
转载 mysqldump的各项参数
转自:http://www.cnblogs.com/qq78292959/p/3637135.htmlMysqldump参数大全(参数来源于mysql5.5.19源码) 参数参数说明--all-databases , -A导出全部数据库。mysqldump -uroot -p --all-databases--all-
2016-11-25 11:43:06
334
转载 mysql字段修改
mysql alter 语句用法,添加、修改、删除字段等//主键549830479 alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);//增加一个新列549830479 alter
2016-11-09 10:58:18
470
php封装的分页类
2017-02-27
mysql中如何更新数据库中的时间数据?
2016-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人