PHP 进阶篇
文章平均质量分 80
black-Dragon_
站在巨人的肩头,我们会看的更远、视野更加开阔。
展开
-
Linux源代码目录结构说明
*该文转载于http://blog.csdn.net/u010098331/article/details/52021110Linux源代码目录结构说明 系统核心组件: Linux源代码目录结构示意图: 图:linux源代码目录结构示意图(一) scripts目录: 该目录中不包含任何核心代码,该目录下存放了用来配置内核的脚本和应用程序源码。 (二)转载 2016-07-25 11:28:23 · 2609 阅读 · 0 评论 -
php单例模式
单例模式,正如其名,允许我们创建一个而且只能创建一个对象的类。这在整个系统的协同工作中非常有用,特别明确了只需一个类对象的时候。那么,为什么要实现这么奇怪的类,只实例化一次?在很多场景下会用到,如:配置类、Session类、Database类、Cache类、File类等等。这些只需要实例化一次,就可以在应用全局中使用。原创 2017-06-28 15:52:41 · 3271 阅读 · 3 评论 -
php抽象工厂模式
无论是简单工厂模式,工厂方法模式,还是抽象工厂模式,他们都属于工厂模式,在形式和特点上也是极为相似的,他们的最终目的都是为了解耦。在使用时,我们不必去在意这个模式到底工厂方法模式还是抽象工厂模式,因为他们之间的演变常常是令人琢磨不透的。经常你会发现,明明使用的工厂方法模式,当新需求来临,稍加修改,加入了一个新方法后,由于类中的产品构成了不同等级结构中的产品族,它就变成抽象工厂模式了;而对于抽象工厂模式,当减少一个方法使的提供的产品不再构成产品族之后,它就演变成了工厂方法模式。原创 2017-06-29 16:52:16 · 3397 阅读 · 0 评论 -
php适配器模式
在这个有没有对象都要高呼“面向对象”的年代,掌握面向对象会给我们带来意想不到的方便。学编程的小伙伴从开始能写几行代码实现简单功能到后来懂得将一些重复的操作组合起来形成一个“函数”,再到后来将“函数”和属性组合起来形成一个“类”。一步步走来,我们在考虑着机器运行代码效率的提高的同时也在考虑减轻程序员的工作量。 那么我们今天讲到的适配器模型更着重考虑的是什么呢?是程序员工作量。原创 2017-06-30 11:10:32 · 446 阅读 · 1 评论 -
php组合模式
首先,组合模式属于结构型模式,那么什么叫组合模式呢?用组合模式有什么要求呢?使用场景是什么呢?定义:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。模式中主要包含哪些角色呢?1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。3.Composite 定义有枝节点行为,用来存储子部件,在Compo原创 2017-06-30 16:01:59 · 2337 阅读 · 0 评论 -
什么是四层和七层反向代理
我们先了解一下什么是代理? 回答:[proxy]代表[访问用户],此时proxy是代理。例如:在家访问xxoo网站,不希望xxoo网站trace到我们的真实ip,于是就找一个proxy,通过proxy来访问,此时proxy代表用户,网站以为proxy的ip就是用户的ip。什么是反向代理呢?回答:[proxy]代表[被访问的服务器],此时proxy是反向代理。web-server希望对用户屏蔽高可用、屏蔽web-server扩展、web-server内网ip等细节,于是就找了一个proxy隔在中间,此时p原创 2017-07-11 14:05:34 · 1677 阅读 · 0 评论 -
【PHP】高级面试题之十万个为什么?(二)
现在也已经工作三年时间了,PHP在平时工作中天天都会使用,但是内心总是感觉差点什么,觉得自己对PHP这门语言了解的还不够,故下定决心,整理了一下平时工作所学所用,提出各种各样的问题,然后再一一的解决这些问题,加深自己对PHP这门语言的理解!!!原创 2017-06-19 09:42:38 · 2996 阅读 · 0 评论 -
【PHP】高级面试题之十万个为什么?(一)
现在也已经工作三年时间了,PHP在平时工作中天天都会使用,但是内心总是感觉差点什么,觉得自己对PHP这门语言了解的还不够,故下定决心,整理了一下平时工作所学所用,提出各种各样的问题,然后再一一的解决这些问题,加深自己对PHP这门语言的理解!!!原创 2017-06-14 18:35:09 · 3404 阅读 · 0 评论 -
apache常用的两种工作模式prefork和worker
apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多种,目前主要有两种模式:prefork模式和worker模式prefork是一个非线程型的、预派生的MPM,使用多个进程,每个进程在某个确定的时间只单独处理一个连接,效率高,但内存使用比较大。worker是支持混合的多线程多进程的多路处理的MPM,使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只处理一个连接,内原创 2017-06-19 10:07:05 · 2642 阅读 · 0 评论 -
php简单工厂模式
简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式包含如下角色: Factory:工厂角色,工厂角色负责实现创建所有实例的内部逻辑 Product:抽象产品角色,抽象产品角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口 Concr原创 2017-06-28 16:15:39 · 2682 阅读 · 1 评论 -
php工厂方法模式
这种设计模式网上可以查阅的资源有很多,但是很多都是理论性太强,理解起来不是很容易,首先我们先看一下,这种模式是如何定义的?使用的场景是什么?定义:定义一个创建对象的接口,但是让子类去实例化具体类。工厂方法模式让类的实例化延迟到子类中。针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例,在同一等级结构中,支持增加任意产品。问题引出:框架需要为多个应用提供标准化的架构模型,同时也要允许独立应用定义自己的域对象并对其进行实例化。原创 2017-06-29 14:04:30 · 3816 阅读 · 0 评论 -
for和foreach那个效率更高?原因是什么?
写这篇文章的原因主要是在开发过程中突然有以下几个疑问,特抽出时间深度探究一下,以加深自身对php的理解。1、作为一名phper,for和foreach循环遍历几乎每天都在使用,那么这两种遍历方式哪一种效率更高呢?2、效率高的原因是什么呢?3、原理分别是什么呢?原创 2017-06-16 10:47:52 · 39798 阅读 · 4 评论 -
MySQL server has gone away 问题的解决方法(查询的结果集超过 max_allowed_packet )
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插原创 2016-09-08 15:30:59 · 2353 阅读 · 0 评论 -
PHP内核的存储机制(分离/改变)
前言:大部分程序员看博客可能不是太喜欢看汉字比较多的文章哈,但本文确实介绍以汉字为主描述,耐心看完,对大部分人来说肯定会有收获!或许你知道,或许你不知道,PHP是一个弱类型,动态的脚本语言。所谓弱类型,就是说PHP并不严格验证变量类型(严格来讲,PHP是一个中强类型语言),在申明一个变量的时候,并不需要显示指明它保存的数据的类型。比如:$a = 1; (整形) $a ="1转载 2017-01-03 16:02:38 · 5230 阅读 · 0 评论 -
微信JSSDK分享功能详解
本文以微信分享到朋友圈,分享给微信好友为例为参考,进行调用测试,想添加其他的功能,自行查看开发人员文档即可工欲善其事,必先利其器,好好利用下边的帮助工具,都是腾讯给开发人员的工具1.微信开发者说明文档:点击查看2.微信WEB开发者工具:Windows 64位版本:下载地址Windows 32位版本:下载地址Mac版本:下载地址3.微信JSSDK分转载 2017-01-03 16:04:45 · 7338 阅读 · 0 评论 -
PHP-Mysql 联合做分表分库操作详解
一、当Mysql数据量过大时,就会面临压力分解,这时分库分表是一个不错的解决方案,现在我们就来谈谈Mysql如何分库分表比较理想,然后再用php如何调用。1,主从复制,读写分离 对主库修改数据,查询使用从库。一主多从,来降低数据库读取压力。 ①、那么什么叫一主多从? 原理: 主数据库只用来写和更新原创 2016-12-27 09:44:07 · 4242 阅读 · 0 评论 -
Mysql 隔离级别和锁(一)
ANSI/ISO SQL标准定义了4中事务隔离级别:未提交读(read uncommitted),提交读(read committed),重复读(repeatable read),串行读(serializable)。对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。我们将逐步的去探索其中的差异是什么?原创 2017-05-19 14:27:17 · 978 阅读 · 0 评论 -
MySQL的锁机制,表锁、行锁
相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。原创 2017-05-19 15:04:28 · 536 阅读 · 0 评论 -
【整理】MySQL引擎问题总结
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。原创 2017-05-21 20:02:44 · 337 阅读 · 0 评论 -
Mysql 锁问题分析 InnoDB 锁
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。原创 2017-05-21 20:10:43 · 523 阅读 · 2 评论 -
PHP如何实现百万级数据导出
| 前言公司目前有一个需求,需要对一个日增量在20万+数据量的数据表中的数据进行可自定义条件筛选的导出数据,该功能需要对多个部门进行开发使用,要保证功能可用的前提下,尽量优化体验。首先介绍一下当前可利用的资源:1、MySql - 一主库双从库。2、分布式服务器集群,选择其中一台中型机作为脚本执行载体。3、文件系统 - 可以支持上传大数据量文件。4、编程语言PHP,说实话PH...原创 2018-08-22 16:58:17 · 8848 阅读 · 0 评论