[skip ci] Link technical resources in CONTRIBUTING.md

Co-authored-by: KapitanOczywisty

Closes GH-11155
This commit is contained in:
Ilija Tovilo 2023-04-28 12:26:02 +02:00
parent 41cda46b70
commit d82e96cc09
No known key found for this signature in database
GPG Key ID: A4F5D403F118200A

View File

@ -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,30 @@ 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/
* [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)
* [The 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/
* [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/
* [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)
## Writing tests
We love getting new tests! PHP is a huge project and improving test coverage is