From 93e5877861a77a8869a081c918bb6172b2d9e45b Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 28 Apr 2023 12:26:02 +0200 Subject: [PATCH 1/5] [skip ci] Link technical resources in CONTRIBUTING.md --- CONTRIBUTING.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 14ce3c53dd9fa..77de9b257d982 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ had several contributions accepted, commit privileges are often quickly granted. * [Pull requests](#pull-requests) * [Filing bugs](#filing-bugs) * [Feature requests](#feature-requests) +* [Technical resources](#technical-resources) * [Writing tests](#writing-tests) * [Writing documentation](#writing-documentation) * [Getting help](#getting-help) @@ -85,6 +86,18 @@ You may also want to read [The Mysterious PHP RFC Process](https://blogs.oracle.com/opal/post/the-mysterious-php-rfc-process-and-how-you-can-change-the-web) for additional notes on the best way to approach submitting an RFC. +## Technical resources + +There are a number of technical resources on php-src. Unfortunately, they are +scattered across different websites, and often outdated. Nonetheless, they can +provide a good starting point for learning about the fundamentals of the code +base. + +* https://www.phpinternalsbook.com/ +* https://www.npopov.com/ +* https://wiki.php.net/internals +* https://blog.ircmaxell.com/categories/PHP/ + ## Writing tests We love getting new tests! PHP is a huge project and improving test coverage is From 6e5f4aad8884401e2cadf1766075d12e73a808ad Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 28 Apr 2023 13:46:14 +0200 Subject: [PATCH 2/5] [skip ci] Add more suggested links --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 77de9b257d982..65be4a62123aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -96,6 +96,8 @@ base. * https://www.phpinternalsbook.com/ * https://www.npopov.com/ * https://wiki.php.net/internals +* https://qa.php.net/phpt_details.php +* https://phpinternals.net/ * https://blog.ircmaxell.com/categories/PHP/ ## Writing tests From 5c5a5022a1fb8cd05362a31738c33216da315c1f Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 28 Apr 2023 22:11:48 +0200 Subject: [PATCH 3/5] [skip ci] List entries from Nikitas blog Co-authored-by: KapitanOczywisty <44417092+KapitanOczywisty@users.noreply.github.com> --- CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 65be4a62123aa..e11322de81569 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -95,6 +95,10 @@ base. * https://www.phpinternalsbook.com/ * https://www.npopov.com/ + * [Internal value representation](https://www.npopov.com/2015/05/05/Internal-value-representation-in-PHP-7-part-1.html), [part 2](https://www.npopov.com/2015/06/19/Internal-value-representation-in-PHP-7-part-2.html) + * [HashTable implementation](https://www.npopov.com/2014/12/22/PHPs-new-hashtable-implementation.html) + * [Zend Virtual Machine](https://www.npopov.com/2017/04/14/PHP-7-Virtual-machine.html) + * [How opcache works](https://www.npopov.com/2021/10/13/How-opcache-works.html), [opcache optimizer](https://www.npopov.com/2022/05/22/The-opcache-optimizer.html) * https://wiki.php.net/internals * https://qa.php.net/phpt_details.php * https://phpinternals.net/ From 07eb9ca034754a83eb68268b3caf8560e8941dcb Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 3 May 2023 12:35:43 +0200 Subject: [PATCH 4/5] [skip ci] List wiki.php.net pages Co-authored-by: KapitanOczywisty <44417092+KapitanOczywisty@users.noreply.github.com> --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e11322de81569..1062f7ba466b5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -100,6 +100,7 @@ base. * [Zend Virtual Machine](https://www.npopov.com/2017/04/14/PHP-7-Virtual-machine.html) * [How opcache works](https://www.npopov.com/2021/10/13/How-opcache-works.html), [opcache optimizer](https://www.npopov.com/2022/05/22/The-opcache-optimizer.html) * https://wiki.php.net/internals + * [Objects](https://wiki.php.net/internals/engine/objects) * https://qa.php.net/phpt_details.php * https://phpinternals.net/ * https://blog.ircmaxell.com/categories/PHP/ From d3b34c8098c7982b396d662308af804dcc023076 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 3 May 2023 12:37:00 +0200 Subject: [PATCH 5/5] [skip ci] List more pages Co-authored-by: KapitanOczywisty <44417092+KapitanOczywisty@users.noreply.github.com> --- CONTRIBUTING.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1062f7ba466b5..be8392f4764ea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -101,8 +101,12 @@ base. * [How opcache works](https://www.npopov.com/2021/10/13/How-opcache-works.html), [opcache optimizer](https://www.npopov.com/2022/05/22/The-opcache-optimizer.html) * https://wiki.php.net/internals * [Objects](https://wiki.php.net/internals/engine/objects) -* https://qa.php.net/phpt_details.php -* https://phpinternals.net/ +* https://qa.php.net/ + * [Writing tests](https://qa.php.net/write-test.php), [running tests][https://qa.php.net/running-tests.php] + * [PHPT structure](https://qa.php.net/phpt_details.php) +* https://phpinternals.net/ - parser related articles + * [Implementing new operator](https://phpinternals.net/articles/implementing_a_range_operator_into_php), [part 2](https://phpinternals.net/articles/a_reimplementation_of_the_range_operator) + * [Opcode extending](https://phpinternals.net/articles/implementing_new_language_constructs_via_opcode_extending) * https://blog.ircmaxell.com/categories/PHP/ ## Writing tests