{"id":16458675,"url":"https://github.com/onecodemonkey/php-src-analysis","last_synced_at":"2025-10-07T09:31:46.423Z","repository":{"id":110581162,"uuid":"184913649","full_name":"OneCodeMonkey/php-src-analysis","owner":"OneCodeMonkey","description":"PHP源码分析注解。","archived":false,"fork":false,"pushed_at":"2019-09-02T08:56:01.000Z","size":24,"stargazers_count":28,"open_issues_count":0,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-14T00:04:16.271Z","etag":null,"topics":["analysis","analytics","php","source-code","src"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OneCodeMonkey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-04T15:40:24.000Z","updated_at":"2024-09-03T09:17:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"08731df2-7117-4d9f-865f-6edde25008bd","html_url":"https://github.com/OneCodeMonkey/php-src-analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Fphp-src-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Fphp-src-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Fphp-src-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneCodeMonkey%2Fphp-src-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OneCodeMonkey","download_url":"https://codeload.github.com/OneCodeMonkey/php-src-analysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235614117,"owners_count":19018400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","analytics","php","source-code","src"],"created_at":"2024-10-11T10:45:59.452Z","updated_at":"2025-10-07T09:31:41.137Z","avatar_url":"https://github.com/OneCodeMonkey.png","language":null,"readme":"# php-src-analysis\n\nPHP源码分析注解。\n\n###### 进度log\n\n| Date | 解决点 |\n| ---- | ------ |\n| //   | //     |\n\n\n\n### PHP 源代码分析目录\n\n1. #### 第一章 构建系统 准备工具、库及需要具备的基础知识；\n\n2. ​    如何编译不同平台的版本？编译时的各个选项是什么含义？\n\n3. ​    如何创建一个 PHP 扩展/模块？如何创建一个 Zend 扩展？\n\n4. ​    如何调试 PHP？如何调试 PHP/Zend 扩展？\n\n   \n\n5. #### 第二章 PHP 与 SAPI 的生命周期 脚本的运行周期\n\n6. ​    模块/脚本的起始与终止函数；\n\n7. ​    PHP SAPI 协议；\n\n8. ​    嵌入式 PHP 设计。\n\n   \n\n9. #### 第三章 内存管理 Zend 的内存管理器框架；\n\n10. ​    内存申请与释放流程，垃圾回收；\n\n11. ​    持久化（persistence）\n\n    \n\n12. #### 第四章 线程安全 TSRM\n\n13. ​    我是否该启用 ZTS？各有什么优缺点？\n\n14. ​    如何构建一个 ZTS 的程序/扩展？\n\n    \n\n15. #### 第五章 变量与常量 PHP 中的数据类型。\n\n16. ​    变量、常量与静态变量。\n\n17. ​    引用计数机制；\n\n18. ​    资源的创建与回收；\n\n19. ​    未来字符串的 UNICODE 支持、JIT 支持。\n\n    \n\n20. #### 第六章 函数 函数的内部布局；\n\n21. ​    函数的定义；\n\n22. ​    如何获取函数的参数。可选参数、参数默认值；\n\n23. ​    函数的返回值；\n\n    \n\n24. #### 第七章 类与对象 类的内部布局（属性、方法）；\n\n25. ​    构造函数与析构函数；\n\n26. ​    类的继承与转换；\n\n27. ​    接口（轻量级的类），微观上与类的差别；\n\n28. ​    类之间的up casting 和 down casting。\n\n29. ​    stdClass。\n\n    \n\n30. #### 第八章 错误与异常 什么是错误、什么是异常。两者的区别；\n\n31. ​    如何创建和抛出异常；\n\n32. ​    try/catch 的设计与实现；\n\n    \n\n33. #### 第九章 流（Streams）支持 这方面我接触较少，内容待定；\n\n    \n\n34. #### 第十章 虚拟机 脚本编译机制（词法分析、语法分析）；\n\n35. ​    脚本的执行机制（CALL|SWITCH|GOTO）；\n\n36. ​    各个符号表的作用；\n\n37. ​    开发 OPCode 缓存器；\n\n38. ​    开发 PHP 调试器；\n\n39. ​    PHP编译执行分离的实现(或者，源码加密的实现)\n\n    \n\n40. #### 附录 完整的 PHP API、Zend API 以及宏（Micro）参考（长期工程）\n\n41. ​    Zend Engine 1 的主要特性，与 Zend Engine 2的主要差别；\n\n42. ​    Zend Engine 3 的主要特性，与 Zend Engine 2的主要差别；\n\n43. ​    相关资源","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecodemonkey%2Fphp-src-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonecodemonkey%2Fphp-src-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecodemonkey%2Fphp-src-analysis/lists"}