技术分享 -- 171




200x200


概述经过几周的重构,博客在结构上、编码风格上日趋完善,虽然在前端显示上还有着明显的不足,后端也有着很多需要进一步改进和完善的地方,但是作为一个简单、初步的 php web 

#技术帖    #symfony    #web    #php   
概述很多 php 程序员对一个问题很困扰,那就是数组的遍历顺序 <?php $arr['laruence'] = 'huixinchen'; $arr['yahoo'] = 2007; $arr['baidu'] = 2008; ?> 对这个数组使用 foreach ($arr as $key => $val) 遍历的结果是什么样的呢? <?php $arr[2] = 'huixinchen'; $arr[1] = 2007; $arr[0] = 2008; ?> 对这个数组使用 foreach ($arr as $key => $val) 遍历的结果又会是什么样的呢? 想要了解这些问题的具体细节,首先必须了解 PHP 数组的具体实现 PHP 数组的实现 -- HashTable 结构在PHP中,数组是用一种HASH结构(HashTable)来实现的,PHP使用了一些机制,使得可以在O(1)的时间复杂度下实现数组的增删,并同时支持线性遍历和随机访问 
#技术帖    #php    #技术分享    #源码   

200x200


问题原因安装了 libevent,程序运行时出现了错误提示:error while loading shared libraries: libevent-2.0.so.5  问题很

#技术帖    #linux    #c语言    #文件   
简介libevent 是一个轻量级的开源高性能网络库,很多开源软件包括memcached 都是使用他作为网络层组件他只专注于网络层,采用事件驱动的模式,实现了对 IO 事件、定时器事件、信号事件的处理同时,他对 windows、linux、BSD 等多个平台的不同接口进行了封装由于最近在阅读 nginx 源码的事件处理模块,所以对同样是事件驱动模式的 libevent 很感兴趣,打算研读一下他的源码 事件驱动模式 -- Reactor 模式众所周知,apache 作为应用 web 服务器使用的是同步多进程模型,即在进程池中创建多个进程,当请求到来时,每个进程单独处理一个请求,这样的好处在于进程之间相互独立,服务不会因为某个进程的超时或其他问题而随之出现问题,但是这样的模型占用了大量的系统资源,特别是在大量并发请求到来的时候,大量的进程启动会导致系统资源占用过大而 nginx 以及 libevent 这样事件驱动模型的异步非阻塞模型的网络层应用,使用的是 Reactor 的模式进行请求的处理,只启动有限的进程,比如 nginx 建议启动与
#技术帖    #web    #服务器    #技术分享   

200x200


概述聚簇索引并不是一种单独的索引类型,而是一种数据存储方式不同的存储引擎有着不同的实现方式,对于 InnoDB,聚簇索引意味着将 B-Tree 索引与数据行存储在同一个结

#读书笔记    #技术帖    #mysql    #database   

200x200


li { color: #00f; } 概述用过 mysql 的童鞋都知道建立索引的必要性,可是不少人对建立索引的目的仅仅停留于建立索引可以让查询变快然而,为了达到这个目的,科

#技术帖    #mysql    #sql    #技术分享   

200x200


概述使用 git 常常会遇到一个问题,那就是 commit 之后发现刚刚 commit 的内容还需要进行一些小的修改,或是并不想 

#技术帖    #github    #svn    #技术分享   
概述阅读 nginx 源码接触到了一个新的系统调用 -- eventfdeventfd 系统调用是 linux 2.6 以上版本用来在用户空间创建可以用来作为事件等待、通知的文件描述符简单地说,就是可以在用户态应用中建立一个内核态到用户态的通知机制,这在异步 IO 的使用中非常有用但是该调用必须工作在 64 位环境下 函数原型int eventfd(unsigned int intval, int flag); 定义于 sys/eventfd.h 中调用成功返回文件描述符,调用失败,返回 -1 参数 flag 说明通过按位或运算可以使用以下一个或多个标识:eventfd 系统调用 flag 参数取值取值说明EFD_CLOEXEC类似于 open 系统调用的 O_CLOEXEC 标识,一旦 exec 执行后,关闭所有 fdEFD_NONBLOCK非阻塞调用EFD_SEMAPHORE以信号方式处理文件描述符,linux 2.6.26 以上版本将不支持 用法关于该系统调用的实际用法,可以参看 nginx 中的相应代码 var CODE_DIVS=[{"
#技术帖    #linux    #unix    #文件描述符   

200x200


引言今天把此前初始分配给虚拟机的空间终于用光了,于是只好再新加硬盘空间了,几经折腾终于完成了 VMware 11.1.1.0 操作由于使用的是 VMware&n

#技术帖    #linux    #vmware    #虚拟机   
概述面向对象编程中,对象被赋予了自省的能力,也就是通过类对象找到类对象的来源,这个自省的过程就被称为“反射”作为面向对象语言的后起之秀,PHP 拥有更加强大的反射机制 PHP 反射功能对于一个类,我们怎么获取其方法和属性列表呢?以下函数可以完成此功能: 获取 PHP 类对象属性和方法的函数函数功能get_class(obj)获取对象 obj 所对应的类名get_object_vars(obj)获取对象 obj 具有的类属性(返回关联数组)get_class_vars(cls)获取类名 cls 的类属性(返回关联数组)get_class_methods(cls)获取类名 cls 具有的类方法(返回关联数组) 然而,反射 API 功能显然更加强大 PHP 反射类 -- ReflectionObject <?php class ReflectionClass implements Reflector { /* 常量 */ const integer IS_IMPLICIT_ABSTRACT = 16 ; const integer IS_EXPLICIT_ABSTRACT = 32 ; const integer IS_FINAL = 64 ; /* 属
#技术帖    #php    #mvc    #框架   



京ICP备15018585号