菜鸟后端开发进阶-lnmp
linux/nginx/mysql/php的开发组合,进阶笔记,边学边写吧,随笔类型
站在风口的熊
git:https://github.com/barebear
email:1432649234@qq.com
欢迎交流
展开
-
php源码之DateTime类
1.声明在php_date.h/* Advanced Interface */PHP_METHOD(DateTime, __construct);PHP_METHOD(DateTime, __wakeup);PHP_METHOD(DateTime, __set_state);PHP_METHOD(DateTime, createFromImmutable);/*其他方法,以映射的方...原创 2018-09-21 18:44:32 · 441 阅读 · 0 评论 -
自己动手写php扩展
1.下载最新版php源码git clone https://github.com/php/php-src2.切换到ext目录cd php-srccd ext 3.利用php-src提供的工具生成扩展的骨架./ext_skel.php --ext test便可以在当前目录查看到test文件夹--扩展的文件夹./ext_skel.php具体怎么使用,可在当前目录输...原创 2018-09-20 23:33:49 · 563 阅读 · 0 评论 -
redis pipeline 和 multi
redis的pipeline是批量操作,以提高性能为主,无法保证原子性;multi watch exec discard unwatch 主要针对原子性,性能会有所下降原创 2018-08-07 11:12:01 · 679 阅读 · 0 评论 -
redis源码中的ziplist zskiplist 压缩表和跳表
在压缩双链表中,节省了前驱和后驱指针的空间,在 64 位机器上共节省了 8 个字节, 这让数据在内存中更为紧 凑。只要清晰的描述每个数据项的边界,就可以轻易得到前驱后 驱数据项的位置,ziplist 就是这么做的。 ziplist 的格式可以表示为:<zlbytes><zltail><zllen><entry>...<entry>&l...原创 2018-08-23 16:32:26 · 2460 阅读 · 0 评论 -
php内核寻找ini的优先过程
php_init_config函数的作用是读取php.ini文件,设置配置参数,加载zend扩展并注册PHP扩展函数。此函数分为如下几步: 初始化参数配置表,调用当前模式下的ini初始化配置,比如CLI模式下,会做如下初始化:INI_DEFAULT("report_zend_debug", "0");INI_DEFAULT("display_errors", "1");不过在其它模式下...原创 2018-08-23 16:32:37 · 366 阅读 · 0 评论 -
php 内核hashtable中 pListNext和pNext的区别
pListNext指示在php数组中加入的先后顺序pNext指在存储的同一个bucket(链表法解决冲突)中的链表先后位置,注意是头插法,所以越后加入的元素在同一bucket中的位置越靠前;...原创 2018-08-23 16:20:03 · 720 阅读 · 0 评论 -
PHP源码之date函数
date函数的实现在源码目录的 ext/date。1.定义函数的参数表:ZEND_BEGIN_ARG_INFO_EX(arginfo_date, 0, 0, 1) ZEND_ARG_INFO(0, format) ZEND_ARG_INFO(0, timestamp)ZEND_END_ARG_INFO()将其展开,得到#define ZEND_ARG_INFO(pass_...原创 2018-09-13 19:15:34 · 589 阅读 · 0 评论