随笔分类 -  PHP

lumen-framework 5.2 - redis 杂文
摘要:public static function lock($key, $value, $expireSeconds) { $response = Redis::set($key, $value, 'ex', $expireSeconds, 'nx'); if($response=='OK'){ return true; } return false; } public static function 阅读全文

posted @ 2019-11-05 19:44 周~~ 阅读(221) 评论(0) 推荐(0)

Swoole - FAQ
摘要:Swoole4 协程与 Go 协程有哪些区别https://wiki.swoole.com/wiki/page/p-differences_with_go.html 子协程+通道https://wiki.swoole.com/wiki/page/947.html 在多个协程间共用同一个协程客户端ht 阅读全文

posted @ 2019-03-11 11:59 周~~

Yii 2.0.6 - 从入口到Action执行
摘要:defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); // 注册 Composer 加载器 Yii::setAlias('@common', di... 阅读全文

posted @ 2019-02-13 11:44 周~~ 阅读(576) 评论(0) 推荐(0)

Lavavel5.5源代码 - RedisQueue是怎么实现
摘要:队列的基本功能: 1、立即执行;yes 2、延迟执行;yes 3、保证至少执行一次;yes 4、必须执行且最多执行一次;no 用到的数据结构: list、Sorted sets 延迟执行的机制: 1、先把数据放入SortedSets类型的queues:queue_000:delayed中 2、在执行 阅读全文

posted @ 2019-01-25 23:01 周~~ 阅读(207) 评论(0) 推荐(0)

Lavavel5.5源代码 - Pipeline
摘要:passable = $passable; return $this; } public function through($pipes) { $this->pipes = is_array($pipes) ? $pipes : func_get_args(); return $this; } pub... 阅读全文

posted @ 2018-12-29 18:20 周~~ 阅读(224) 评论(0) 推荐(0)

php-5.6.26源代码 - hash存储结构 - 添加
摘要:添加 if (zend_hash_add(&module_registry, lcname, name_len+1, (void *)module, sizeof(zend_module_entry), (void**)&module_ptr){ // zend_hash_add 定义在文件“php-5.6.26\Zend\zend_hash.h” #... 阅读全文

posted @ 2018-03-23 18:10 周~~ 阅读(231) 评论(0) 推荐(0)

php-5.6.26源代码 - hash存储结构 - 初始化
摘要:初始化 有指定析构函数,在销毁hash的时候会调用,如:“类似extension=test.so扩展”也是存放在HashTable中的,“类似extension=test.so扩展”的module_shutdown_func函数就是靠hash的析构函数来调用的 zend_hash_init_ex(GLOBAL_FUNCTION_TABLE, 100, NULL, ZEND_FUN... 阅读全文

posted @ 2018-03-23 18:09 周~~ 阅读(133) 评论(0) 推荐(0)

php-5.6.26源代码 - hash存储结构 - hash算法
摘要:// zend_inline_hash_func 实现在文件“php-5.6.26\Zend\zend_hash.h” h = zend_inline_hash_func(arKey, nKeyLength); { // zend_hash_add 定义在文件“php-5.6.26\Zend\zend_hash.h” /* ... 阅读全文

posted @ 2018-03-23 18:06 周~~ 阅读(210) 评论(0) 推荐(0)

php-7.2.3源代码和php-5.6.26源代码摘录,对比 “汇编php文件”和“执行opcode代码”
摘要:php-7.2.3 在“汇编php文件”和“执行opcode代码”上做了大量改变php-5.6.26 没见到支持抽象语法树的相关代码,php-7.2.3 见到支持抽象语法树的相关代码php-5.6.26 存在“保存active_op_array现场”的代码,php-7.2.3 去除了“保存activ 阅读全文

posted @ 2018-03-23 17:12 周~~ 阅读(304) 评论(0) 推荐(0)

php-5.6.26源代码 - include_once、require_once、include、require、eval 的opcode处理器
摘要:# ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER 实现在文件 php-5.6.26\Zend\zend_vm_execute.h static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE ze... 阅读全文

posted @ 2018-03-23 10:58 周~~ 阅读(299) 评论(0) 推荐(0)

php-5.6.26源代码 - 如何用C语言支持“类似异常”机制
摘要:代码编写在文件php-5.6.26\Zend\zend.h #define zend_bailout() _zend_bailout(__FILE__, __LINE__) #ifdef HAVE_SIGSETJMP # define SETJMP(a) sigsetjmp(a, 0) // 设置跳转点 # define L... 阅读全文

posted @ 2018-03-23 10:57 周~~ 阅读(164) 评论(0) 推荐(0)

php-5.6.26源代码 - opcode处理器,“函数调用opcode”处理器,如何调用扩展模块的函数
摘要:// opcode处理器 --- ZEND_DO_FCALL_SPEC_CONST_HANDLER实现在 php-5.6.26\Zend\zend_vm_execute.h static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE zva... 阅读全文

posted @ 2018-03-23 10:56 周~~ 阅读(174) 评论(0) 推荐(0)

php-5.6.26源代码 - opcode处理器,“乘法opcode”处理器
摘要:// opcode处理器 - 运算符怎么执行: “*” 乘法opcode处理器 static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { USE_OPLINE SAVE_OPLINE(); fast_mul_function(&EX_T(oplin... 阅读全文

posted @ 2018-03-23 10:51 周~~ 阅读(176) 评论(0) 推荐(0)

php-5.6.26源代码 - 扩展模块的加载、注册
摘要:// main实现在文件 php-5.6.26\sapi\cgi\cgi_main.c int main(int argc, char *argv[]) { .... cgi_sapi_module->startup(){ // php_cgi_startup实现在文件 php-5.6.26\sapi\cgi\cgi_main.c ... 阅读全文

posted @ 2018-03-23 10:50 周~~ 阅读(198) 评论(0) 推荐(0)

php-5.6.26源代码 - 扩展模块的种类,扩展模块的执行埋点
摘要:模块种类(两种) 类型一:zend的模块:(类似zend_extension=test.so) 识别方法: php.ini中以zend_extension开头的配置,如zend_extension=test.so,存放到数据结构zend_extensions中 模块的数据结构: struct _zend_... 阅读全文

posted @ 2018-03-23 10:43 周~~ 阅读(268) 评论(0) 推荐(0)

php-5.6.26源代码 - opcode处理器的注入
摘要:1、初始化 opcode处理器列表 // main实现在文件“php-5.6.26\sapi\cgi\cgi_main.c” int main(int argc, char *argv[]) { if (cgi_sapi_module.startup(&cgi_sapi_module){ // php_cgi_startup实现在文件“php-5.6.26\... 阅读全文

posted @ 2018-03-23 10:35 周~~ 阅读(259) 评论(0) 推荐(0)

php-5.6.26源代码 - opcode列表
摘要:文件 php-5.6.26/Zend/zend_vm_opcodes.h 阅读全文

posted @ 2018-03-23 10:28 周~~ 阅读(297) 评论(0) 推荐(0)

php-5.6.26源代码 - opcode执行
摘要:文件 php-5.6.26/Zend/zend_vm_execute.h 阅读全文

posted @ 2018-03-23 10:26 周~~ 阅读(185) 评论(0) 推荐(0)

php-5.6.26源代码 - PHP文件汇编成opcode(require、include的差异)
摘要:文件 php-5.6.26/Zend/zend_language_scanner.c 阅读全文

posted @ 2018-03-23 10:24 周~~ 阅读(214) 评论(0) 推荐(0)

php-5.6.26源代码 - PHP文件汇编成opcode、执行
摘要:文件 php-5.6.26/Zend/zend.c 阅读全文

posted @ 2018-03-23 10:07 周~~ 阅读(284) 评论(0) 推荐(0)

导航