自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fenglin's Blog

学习记录

  • 博客(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 745 1

原创 面向对象编程的深入理解

面向对象编程就是把需要处理的逻辑对象,当做一个整体,把需要的参数配置赋值给对象,对象内部处理逻辑完全对客户端封闭。只暴露接口给客户端调用。ps: 有一个问题困惑了我很久,就是数据库的增删改查与业务逻辑的搞混,数据库增删改查应该与逻辑对象分开来,放到数据层。示例:需求: 有n种职业,每种职业的不同名称,不同的薪资新建person表CREATE TABLE person ( `id` INT(11) NOT NULL auto_increment, `name` VARCHAR(20) NOT.

2021-10-14 10:57:22 182

原创 如何让你的代码不变成屎山

小明是一名萌新php程序员,受雇在一家传统的企业crm开发。一天老板提出一个新的需求业务部的业务员下了一张订单的时候,需要钉钉消息提醒物流部的同事去处理小明收到需求,然后打开了下单的model代码如下<?phpclass Order { public function create($params) { if (user == '业务员') { //todo 查询商品 //todo 计算价格

2021-09-01 21:41:27 356

原创 docker中的ubuntu容器没有ps、top命令

安装procps包apt-get install procps

2021-07-22 11:53:18 1083

原创 不会吧,不会吧,一个十年老程序猿,竟然不知道这个小技巧

入职新公司已经有几个月了。业务也慢慢上手了。今天,测试说刚上线的程序出现了bug

2021-07-06 22:20:03 104 2

原创 PHP单元测试

什么是单元测试百度百科:百度百科:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试之我见单元测试,就是把我们写的函数或者类作为一个单元,检

2021-06-03 18:14:03 3151

原创 PHP设计模式之代理模式

代理模式定义为其他对象提供一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。代理模式使用场景当需要隐藏一个类的时候;可以在代理类中做访问委托类的权限管理;当我们需要对委托类功能做拓展的时候也可以使用代理模式。代理模式的优缺点优点:职责清晰,委托类只需关注自身功能实现,不需要非自身职责;代理对象可以在客户端和目标对象之间起到中介作用,保护目标对象;可拓展性更强。缺点:代理类的增加,会使系

2021-01-06 23:46:03 100

原创 2021-01-04

策略模式(Strategy)策略模式定义策略模式是把算法,封装起来。使得使用算法和使用算法环境分离开来,当算法发生改变时,我们之需要修改客户端调用算法,和增加一个新的算法封装类。比如超市收银,收营员判断顾客是否是会员,当顾客不是会员时候,按照原价收取顾客购买商品费用,当顾客是会员的时候,满100减5元。策略模式的优点降低代码耦合度,增加代码重用性,当需要实现新的算法时候,只需要修改算法部分,而不需要对上下文环境做任何改动;增加代码可阅读性,避免使用if…else嵌套,造成难以理解的逻辑;策

2021-01-04 23:27:58 89

原创 工厂方法模式

工厂方法模式简单工厂模式违反了开闭原则还有单一职责原则,工厂方法模式是对简单工厂模式的进一步抽象。工厂方法模式的优缺点优点:用户创建实例时不需要知道知道具体类,而只需要知道工厂类;新建一个产品,只需要新建一个相应的类;缺点:类的个数将会越来越多;增加系统抽象度,更加难以理解;抽象产品只能生产一种产品。具体代码AbstractFactory.php<?phpnamespace App\Creational\Factory;abstract class Ab

2020-12-31 00:07:39 111

原创 简单工厂模式

工厂模式是最常用的设计模式之一,是一样创建型设计模式。是创建对象的最佳方式,客户端可以不用知道具体对象的情况下,实例化对象。有三种工厂模式简单工厂模式工厂模式抽象工厂模式这里我们先学习介绍简单工厂简单工厂模式定义一个工厂类,可以通过不同的参数返回不同的类的实例。优点:客户端只需知道参数即可,无需知道创建实例的具体类名;可以在不修改客户端的情况下,修改类名。缺点:违反单一职责原则,一个类承担多个职责,随着手机品牌增多,会变的原来越难以维护;违反开闭原则,如果修改一旦出现

2020-12-29 23:54:16 110

原创 CGI (通用网关接口)

CGI (通用网关接口)CGIcgi即 Common Gateway Interface 译作 通用网关接口是应用程序与应用程序之间的输入输出协议。比如我们写信,规定了开头一句写称呼,中间写内容,最后署名和日期。看到这种格式,我们就知道这是一封信。我要知道写这封信的人或者日期。那么我就直接信的最后两行。cgi就是应用程序与应用程序之间通信格式规定。php-cgicgi可以由任何语言...

2020-05-08 14:28:01 344

转载 将Sublime Text 添加到右键菜单的方法

把以下代码,复制到SublimeText3的文件目录,然后重命名为:安装右键菜单.inf,然后右击安装就可以了。[Version]Signature="$Windows NT$"[DefaultInstall]AddReg=SublimeText3[SublimeText3]hkcr,"*\\shell\\SublimeText3",,,"用 SublimeText3 打开"h...

2018-05-06 12:40:21 326

转载 linux svn服务器搭建

http://www.cnblogs.com/mymelon/p/5483215.html#undefined

2017-09-19 10:48:15 422

原创 wordpress主题制作学习记录

在学习wordpress主题开发时常用的函数以及作用 学习资料来自于我爱水煮鱼博客 http://blog.wpjam.com/m/wp-theme-lesson-1-intro/ 函数 功能 备注 bloginfo(‘name’) 输出博客名 bloginfo(‘url’) 输出博客链接 bloginfo(‘description’) 输

2017-09-05 14:37:47 752

原创 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 549

原创 msyql常用操作

如果想让自增ID从默认值开始只要 TRUNCATE TABLE table1

2017-06-09 09:23:25 251

原创 linux操作记录

tar.gz文件压缩命令 tar -czf jpg.tar.gz *.jpg

2017-06-09 09:22:03 217

原创 mysql常见错误

问题描述:服务器磁盘满了之后造成数据库发生或错误 [root@iZ25tub1fclZ ~]# mysqlcheck -A -r -uroot -p//数据库修复命令持续更新….

2017-06-06 09:27:18 268

原创 在mysql日志中输出错误sql语句

linux中/etc/my.cnf文件中添加 log-warning=2 log=/var/lib/mysql/sql.log

2017-06-03 10:29:50 3525

原创 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 263

原创 工作常用操作

数据库删除数据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 155

原创 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 266

原创 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 439

原创 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 4007

原创 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 226

原创 网页返回更新

返回上一页(相当于后退)window.history.back(); 获取上一页urldocument.referrer 重定向window.location.href 返回并更新window.location.href=document.referrer;

2017-03-17 17:46:27 267

原创 网页基础模版

<!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 459

原创 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 246

原创 服务器环境搭建

安装 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 398

转载 phpstrom快捷键

常用快捷键 设置快捷键:File -> Settings -> IDE Settings -> Keymap -> 选择“Eclipse” -> 然后“Copy”一份 -> 再个性化设置(自己习惯的)快捷键 常用快捷键(keymaps:Default情况下)Esc键编辑器(从工具窗口) F1 帮助 千万别按,很卡! F2(Shift+F2) 下/上高亮错误或警告快速定位 F3

2017-02-28 10:41:36 424

原创 分页类

封装分页工具类的使用:本实例在tp框架环境下$goods = M("goods"); //tp实例化goods模型$total = $goods->count(); //计算数据条数$per = 7; //每页展示分页条数$page = new Page($total,$per);

2017-02-23 14:39:49 268

原创 Mysql操作

having和where的区别having(字段)用于查询查询出来的字段; where (字段) 用于查询纯在数据库的字段。

2017-02-20 11:58:37 200

原创 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 687

原创 sublime text使用技巧

快捷键查找替换:ctrl + h

2017-02-18 09:12:23 209

转载 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 203

原创 Linux命令

批量查找替换文件中字符:   *sed -i “s/查找字段/替换字段/g” `grep 查找字段 -rl 路径`* 查找字符串:        find 具体的查找目录 -name “*” | xargs grep “要查询的特定字符串” 查找大文件:      * du -sh * *  定时任务执行及php脚本:

2017-02-16 14:09:51 204

转载 Git使用

参考资料廖雪峰Git教程创建库: 初始化一个Git仓库,使用git init 命令。添加文件到Git仓库,分两步:第一步,使用命令 git add <file>,注意,可反复多次使用,添加多个文件;第二步,使用命令git commit,完成。 关联github仓库:git remote add origin [email protected]:Fenglin0721/Shop.git推送本地项目

2017-02-16 13:49:28 213

原创 vim 笔记

上下换行       用dd 然后p命令换行

2017-02-07 11:39:40 193

转载 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 263

转载 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 441

php封装的分页类

封装分页工具类的使用: 本实例在tp框架环境下 $goods = M("goods"); //tp实例化goods模型 $total = $goods->count(); //计算数据条数 $per = 7; //每页展示分页条数 $page = new Page($total,$per); //new分页对象 $sql = "select * from sw_goods ".$page->limit; //整理sql查询语句 $info = $goods->query($sql); $pagelist = $page->fpage(); //获取分页条 $this->assign("info",$info); $this->assign("pagelist",$pagelist); $this->display();

2017-02-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除