自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 为公司开发定的数据库规范

我们公司相当多的项目用的是mysql数据库,但是大家在开发过程中对mysql的认识问题,往往在数据库设计时对字段的定义不一致,在开发时对sql语句的执行出现问题,特地把一些通用性的、值得注意的问题做一下总结一、数据库的设计规范1、必须使用InnoDB存储引擎原因:支持事务安全、行级锁、并发性能更好(查询不加锁,完全不影响查询),内存缓存页优化使得资源利用率更高,mysql5.6

2018-03-01 14:17:49 641

原创 如何防止自己的网站被比人嵌套在<frame>, <iframe>中

我们经常做一些网站在自己的iframe中来展示,如果一些嵌套的页面被别人回去到,就可以将其展示在他人的网站中,一是会自己的资源被比人占用,二是会形成点击劫持。X-Frame-Options 响应头是发送给浏览器用来表示是否允许一个页面可否在自己活着其他网站的 iframe 中来展现的标记。网站可以使用此功能,来保护自己网站的页面不能被嵌到别人的网站中去,也从而避免了点击劫持 (clickj

2018-02-07 20:01:33 2652

原创 Token认证的随心整理

token就是前端每次访问的时候带的证件,过来服务端看看是不是合法。一、我们使用token解决什么问题1、解决认证的非同源问题2、解决安全问题3、解决restful中的服务间的共享认证二、token的有效期问题token存放到数据库中不太好设置过期,所以一般存放到缓存中;还有一个原因是时间长了产生泄露的风险会增加。有过期时间还有一个问题,采用类似session那

2018-02-07 17:48:47 609

原创 Yii2中ActiveForm::begin()的常用参数

通过打印begin里的数组发现,不能使用class属性,会和使用的activeForm相冲突,所以,使用的样式class都以option数组来配置基础版<?php $form = ActiveForm::begin(['id'=>'countrys-form','method' => 'post','action' => ['add'],'options' => ['enctype

2018-02-07 15:08:41 4025

原创 YII2中一些通用字段的自动插入--behaviors()行为绑定的简要使用分析

behaviors()主要是用来绑定行为的,所谓绑定行为,就是在执行action的时候回附加添加某些属性。比如使用最多的就是我们在添加数据时,会有created_time,修改数据时,会有update_time ,用户登录时,会记录最后登录时间;数据库里很多字段都是一些通用有规律的字段,那么我们就可以把这些字段提出来,作为行为绑定来实现,减少代码量。yii2中自带的行为模型,有五种

2018-02-07 11:01:24 1945

原创 Yii2中model模型中可实现功能总结

一直写model,但是里面都有哪些功能是可以在内部实现的一直都是零星的,今天看了一下model的基础类,总结一下我们常继承的\yii\base\Model类,该类就是 Yii 中的模型类仔细阅读一下代码,可以看到在里面可实现如下功能 属性: 代表可像普通类属性或数组 一样被访问的业务数据; 属性标签映射: 指定属性到显示出来的标签映射; 块赋值: 支持一步给许

2018-02-07 08:47:09 1763

原创 Yii2 事件--自定义事件和系统事件

首先撇开yii,让我们来理解一下js的事件以js的click事件为例--点击按钮时的弹出警告,首先要定义click事件,然后在点击的时候回触发事件,最后是弹出警告。事件就是这么一个过程。总结一下,事件一共分为三个过程1、定义事件2、触发事件3、处理事件当然,我们在写代码完成的时候,要按照312来进行。一、首先使用yii来看一下自定义事件。这里就以写操作的

2018-02-05 17:29:18 2020

原创 搞笑--为毛我顶多是个包工头

开发商: 给我搬500块砖上六楼。            ——原始需求包工头点头哈腰: 好咧,我这就去安排包工头: 兄弟们,开工了,老板说,搬500块砖上六楼.....民工们二话不说,撸起袖子,扑哧扑哧搬起来半响,500块砖搬了上去。             ——技术架构开发商数了数,皱起眉头。开发商: 我明明说的是800块,怎么才500块?包工头一愣:老板,你刚刚

2018-02-02 17:25:06 232

原创 产品经理和项目经理的差别

项目经理与产品经理的区别,用一句话概括就是:产品经理是做正确的事情,项目经理是正确的做事情。1、从岗位职责来区分产品经理 了解产品的现状以及竞品 规划产品的功能迭代 对产品进行线上线下营销 负责整个产品的生命周期,从产品的诞生到下线项目经理 制定项目计划,把控风险 组织资源,分配职责 对成本、进度、质量进行控制 负责从开发到交付的项目周期

2018-01-31 17:00:21 7223

原创 Yii2-debug 在特定页面开启调试

debug调试器,是简单的bug收集工具,在调试问题的时候非常有用。但是当上线了之后,有两种方法来进行调试1、制定特定的ip在allowedIPs中加入当前网络的ip,这样就可以只有当前网络可见了,这是最常用也是最好的调试方式$config['bootstrap'][] = 'debug';$config['modules']['debug'] = [ '

2018-01-29 10:08:43 4522

原创 开心一刻:一个产品经理死了之后……

一个产品经理死后,和上帝喝茶,上帝认为他太啰嗦了,会打扰天堂的幽静,于是就把他打入了地狱。       刚过了一个星期,阎王就满头大汗找上门来说:“上帝呀,赶紧把他弄走吧”。上帝问:“怎么回事?”      阎王说:“地狱的小鬼们都被他激活了,天天开站会,

2018-01-25 18:59:00 373

原创 如何判断自己所在的公司时技术驱动还是业务驱动

作为技术人员,喜欢去以技术驱动型的公司,这也是以后的发展方向,那么我们如何来区别是自己所在的公司时技术驱动还是业务驱动呢?1、看公司眼光的长短一般来说,业务型公司关注当下,技术型公司关注未来。比如说业务型公司比较关注公司当前的盈利情况;技术型公司一般着眼于我们解决了用户的那些痛点,有哪些创新是是其他人没有解决的问题。当然技术公司也有缺点,纯技术公司在发展过程往往会有资金的问题,不过

2018-01-25 14:16:13 7972

原创 YII2在使用activeForm设置默认值

activeForm设置默认值input:field($model,'code')->label('国别码')->input('text',['value'=>'ceshi']); ?>CheckBox:先在控制器中设置 $model->type = 1再在视图中field($model,'type')->dropDownList(['1'=>'best','2'=>'bett

2018-01-25 13:23:48 4724

原创 订单超时自动关闭的实现方案总结

统一来说,业务有“在一段时间之后,完成一个工作任务”的需求。实现这种定时任务有哪些方法呢,来总结一下想到的方法。一、定时轮询这是一个比较直接的思路,启动一个计划任务,每隔一定时间处理一次,这种处理方式只是适用比较小而简单的项目。假设订单表的结构为:t_order(oid, finish_time, stars, status, …),更具体的,定时任务每隔一个小时会这么做一次:

2018-01-23 09:33:10 36691 10

原创 简析YII2响应内容协商行为类 - ContentNegotiator

目前根据我的测试,内容协商有返回内容格式和返回内容语言两种。、这里我们主要说一下返回内容格式。我们常用的内容格式有FORMAT_RAWFORMAT_HTMLFORMAT_JSONFORMAT_JSONPFORMAT_XMLContentNegotiator内容协商是干嘛的?它可以分析Request的header,然后指派所需的响应格式给客户端,不需要我们人工指定。

2018-01-22 10:21:22 557

原创 yii2 advance版简易主从搭建测试

首先主从我是在同一台mysql服务器上进行的从配置文件中可以看到,在common/config/main_loacal.php<?phpreturn [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:h

2018-01-20 12:31:03 295

原创 yii2 中设置标题的两种方法

在Yii2中,页面标题是View类的一个公有成员(public)变量$title。方法一、要设置页面标题,首先在Controller/Action中设置$title的值,TestController { public funtion actionIndex() { ... $this->getView()->title = "y

2018-01-19 15:26:39 3474

原创 crontab 定时备份数据库

#!/bin/bash#设置mysql要备份到的备份目录folder=/home/www/data_backupcd $folderday=`date +%Y%m%d`rm -rf $daymkdir $daycd $day#数据库服务器,一般为localhosthost=127.0.0.1#用户名user=backup#密码,特殊字符要用\转移

2018-01-19 14:37:26 253

原创 YII2在视图中引入php文件的方法

有时需要在模板中引入php文件,一般使用“@app” 开头,“@app”是一个路径别名,对应站点根目录。比如项目路径为:D:/www/yii/,引入为:$this->render('@app/views/site/about.php'),则对应的文件所在磁盘路径为:“E:/www/yii2/views/site/about.php”我们可以用var_dump(Yii::getAlias

2018-01-19 13:44:06 1757

原创 php开发--yii2中数据块的使用

yii中提供了数据块,一方面,提高了代码的利用率,另一方面,可以使用替换的方法,经layout中定义的block整体替换掉可以定义专门的block块文件夹,在内部增加常用的块,然后在模板中加载block块文件,使用代码块。然后在模板文件中使用<?phpuse yii\helpers\Html;use yii\widgets\LinkPager;?>render(

2018-01-19 13:25:11 873

原创 php -- yii2 表单部分原始input在load的时候返回false

在view中使用原始的表单代码来提交errors['username'][0])) echo $model->errors['username'][0] ?>在调试时,使用$model->load(Yii:app->request->post())的时候结果为false,经对比发现,需要这样写errors['username'][0])) echo $model->errors

2018-01-18 15:37:10 472

原创 开心一刻--西游记到一家三口

孩子是唐僧,一路受着保护。[亲亲]老师就像孙悟空,一路坎坷,不畏艰险的领头人,有时费力不讨好[快哭了]妈妈就像沙僧,吃喝拉撒全负担,还显的特没用[可怜]爸爸就像八戒,沒什麼用,就知道吃还不能少[偷笑],一不小心还有可能被女妖精勾引了去[捂脸][捂脸]看到此图突然觉得……查看原文:http://www.architecy.com/archives/339

2018-01-12 11:03:53 608

原创 php开发--yii2框架内错误调试总结

1、$this->error();model验证错误,yii提供的最常用的调试方法2、打印原始sql,在调试sql问题的情况下特别管用,看看自己写的sql是否有问题$query = new Books::find()->where('author=2');echo $query->createCommand()->sql;或者$query->createCommand()->g

2018-01-12 08:50:42 1013

原创 YII2实现redis单机和集群分别连接

用YII2 开发了一套程序,牵扯到的数据非重要长期缓存的放单机redis中,重要的放集群中使用composer安装predis扩展:composer require mojifan/yii2-predis在配置文件添加如下配置:'redis_single' => [ 'class' => 'mojifan\redis\Connection',

2018-01-10 16:31:42 3318 1

原创 web服务器连接数据库常用权限管理

mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: grant 权限 on 数据库对象 to 用户 一、普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。 grant select on testdb.* to web_user@’%’ grant insert on

2018-01-09 16:43:45 2614

原创 uml中关系表示法

1、关联关系(association)关联关系用一条直线表示,如A——B。它描述不同类之间的结构关系,在一定的时间内将多个类联系在一起。关联关系时一种静态关系,通常与运行状态无关,而是有一种强关联的关系联系在一起,如公民和身份证之间是一对一的关系。和依赖关系不同的是依赖关系往往是一种临时的、动态关系。在代码实现时,关联的对象之间不会相互直接使用,一般通过外部对象的访问获取到信息。在代码中,关

2018-01-06 10:00:23 851 1

原创 什么是UML

一、什么是UML(Uniform Model Language,统一建模语言)UML就是使用同一的建模来规范软件开发过程中的标准,协调产品、设计、开发的整个过程,避免不必要的沟通问题从现实世界映射到面向对象的方法从面向对象反应现实世界的方法验证面向对象是否真实反应了现实世界的方法查看原文:http://www.architecy.com/archives/314

2018-01-06 09:54:43 976

原创 网站架构--分而治之解决网站瓶颈

先说一句糙理不糙的话,一切不以实际业务为基础的架构都是扯淡。所以在网站架构时,我们首先要考虑的是网站的承载量是多少。架构的理念是:就是不断找到系统的瓶颈和弱点,采用分而治之、缓存、异步等手段逐渐化解,并平衡处理系统各项要求(性能、安全、可用性、伸缩性、扩展性…)的过程。由此形成了架构。要理解分而治之,就需要理解都走了那些部分,通常的访问顺序是这样:浏览器发出请求->DNS解析域名->浏览器

2018-01-05 09:57:20 208

原创 网站架构--ajax跨域问题总结--方法以及调试

首先,ajax默认是不允许跨域的,主要原因就是因为浏览器的“同源策略”。同源策略的目的是为了安全性,当然有些情况是我们需要跨域进行请求的,所以在我们自己控制了安全性的情况下,进行跨域请求是理所当然的了。一、方法介绍在网站架构设计时,有五种方法规避这个限制,实现跨域请求。设置head头,严格来说不算架设服务器代理(浏览器请求同源服务器,再由后者请求外部服务)JSONPWebSocketCORS1

2018-01-04 13:22:32 168

原创 网站架构中分层设计总结1--解决的问题

一、网站分层架构解决的问题一个比较大的网站,需要多人进行协作才能完成;而在协作过程中又会有自己的专长,比如前端对外观比较敏锐,后端对逻辑安全比较重视,所以分层可以让专人做自己擅长的事情。还有就是在需求变更的情况,导致了大量项目因为超出预算时间而归于失败。软件开发成本有限的,但需求变更似乎是无限的,这成为了一个非常难解决的问题;而软件代码的修改却是程序员们最头疼的事情。因为一些大型系统,其代

2018-01-03 15:20:50 456

原创 记帮同事解决vsftp安装后无法启动的过程

一、环境: centos7 二、过程: yum install vsftpd 之后显示安装成功 然后systemctl start vsftpd报错 [root@VM_0_2_centos /]# systemctl start vsftpdJob for vsftpd.service failed because the control pro

2017-12-27 16:22:12 18810 1

原创 php危机与发展纵横谈

近几年大数据、人工智能的发展如火如荼,php从人数和薪资上都比前几年有下降趋势,这多少会带动一些人盲目跟风。其实开发工程师对自己知识体系的扩充和转型都需要有一个明确的目标。跟风是一件比较危险的事情,转型也不同于丢掉自己所有的东西。我想通过程序员的诞生和程序员的成长来讨论,究竟该如何选择。1、php程序员的现状初级 PHPer 觉得这个行业难,工资不高,工作相对难找,中级 PHPer 大

2017-12-27 10:58:14 236

原创 redis 性能优化优化提升之管道(pipeline)

redis 增加的管道(pipe)功能1、以前正常使用过程客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应。服务器处理命令并将响应发送回客户端。 也就是每个命令都会有一来以往的过程2、管道的意义 如果能将连续执行的redis命令在操作完成后统一返回,就可以减少连接数,从来减少延迟时间,那么管道也就产生了。 管道的基本含义是

2017-12-26 15:36:45 1732

原创 php连接mysql是否应该使用存储过程以及优劣势和使用场景

先说一下优劣势,再说一下使用场景吧1、存储过程的优势(1)、减少连接数(2)、调用相对程序方比较简单,由DB管理员加,程序方只是需要传递参数即可(3)、方便DBA查看2.使用存储过程的劣势(1)、程序极大耦合,业务一旦更改,需要都进行更改(2)、牵扯到复杂计算的情况下,需要数据库进行运算,而数据库的优势是存取,循环等逻辑判断服务的情况是数据库的一个硬伤(3)、调试困

2017-12-26 11:39:52 358

原创 php中PECL 和 PEAR 他们之间的不同和相同之处。

PEAR 是“PHP Extension and Application Repository”的缩写,即PHP扩展和应用仓库。 PECL 是“PHP Extension Community Library”的缩写,即PHP 扩展库。  PEAR 将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebServic

2017-12-26 11:20:37 403

原创 mysql执行计划看必会(explain讲解)

explain会看到的信息共有10个字段,下面讲逐一讲解这10个字段,我经常看的的是id,type,rows这几个1、id表示查询中执行select子句或操作表的顺序,id执行顺序从大到小,即id越大越先被执行,如果id相同,则从上到下2、select_type 表示查询中每个select子句的类型(简单 OR 复杂)(1)、SIMPLE:查询中不包含子查询

2017-12-11 18:32:06 1959

原创 JSONObject和JSONArray的区别

一直说json格式,今天说到json数组和json对象,突然一卡顿,想了一下,还真是有区别1,JSONObject json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}2,JSONArray json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的查看原文:http://www.architecy.com/archives/267

2017-12-11 13:18:46 643

原创 服务降级--服务降级的一点认识

服务降级:主要是针对非正常情况下的应急服务措施;比如电商平台,在针对618、双11等高峰情形下采用部分服务不出现或者延时出现的情形。为什么是非正常情况下呢,比如我要出差,如果经常出差的话,要带的衣服又非常多,那我买个大箱子就好;但是如果我基本出差,买个大箱子又用不到,那我只有个小箱子就够用,那么我只有在出差的时候把一些不重要的放弃了。放弃某一部分就是服务降级1、服务降级的特征:原因:整

2017-12-11 11:37:47 6188

原创 redis监控相关命令以及说明

1、检查内存的使用情况 info信息中的used_memory是Redis申请的内存;used_memory_rss是操作系统分配给Redis的物理内存,两者之间隔着碎片,一般要大于used_memory;used_fragmentation_ratio 就是内存碎片的比率,正常情况下是1左右,如果大于1比如1.8说明内存碎片很严重了, 如果used_memory>used_memory_r

2017-12-11 11:08:40 449

原创 数据一致性方案一--数据在多个冗余表中的一致性优化

一、为什么会有冗余表创建表的时候,为了方便查询,通常在分表的时候会对一些字段做冗余,即同一个字段会存在于多个表中,这样在查询的时候避免同时关联2个或两个以上的表。比如有一种情况淘宝上的交易,买家需要看到自己的订单情况,商家需要查看到商品的销售情况,规范情况的设计Order(order_id,good_detail)Table(buyer_id, seller_id, oid)

2017-12-01 20:01:37 867

twig模板手册

twig手册pdf版本的,带有锚点,使用特方便

2013-09-05

空空如也

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

TA关注的人

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