xref: /php-src/docs/source/index.rst (revision 0f649013)
1##############
2 php-src docs
3##############
4
5.. toctree::
6   :caption: Introduction
7   :hidden:
8
9   introduction/high-level-overview
10   introduction/ides/index
11
12.. toctree::
13   :caption: Core
14   :hidden:
15
16   core/data-structures/index
17
18.. toctree::
19   :caption: Miscellaneous
20   :hidden:
21
22   miscellaneous/stubs
23
24Welcome to the php-src documentation!
25
26.. warning::
27
28   This documentation is work in progress.
29
30   At this point in time, there are other guides that provide a more complete picture of the PHP
31   project. Check the `CONTRIBUTING.md
32   <https://github.com/php/php-src/blob/master/CONTRIBUTING.md#technical-resources>`__ file for a
33   list of technical resources.
34
35php-src is the canonical implementation of the interpreter for the PHP programming language, as well
36as various extensions that provide common functionality. This documentation is intended to help you
37understand how the interpreter works, how you can build and test changes, and how you can create
38extensions yourself.
39
40This documentation is not intended to be comprehensive, but is meant to explain core concepts that
41are not easy to grasp by reading code alone. It describes best practices, and will frequently omit
42APIs that are discouraged for general use.
43
44******************
45 How to get help?
46******************
47
48Getting started with a new and complicated project like php-src can be overwhelming. While there's
49no way around reading lots and lots of code, asking questions of somebody with experience can save a
50lot of time. Luckily, many core developers are eager to help. Here are some ways you can get in
51touch.
52
53-  `Discord <https://phpc.chat>`__ (``#php-internals`` channel)
54-  `R11 on StackOverflow <https://chat.stackoverflow.com/rooms/11/php>`__
55
56***************
57 Prerequisites
58***************
59
60The php-src interpreter is written in C, and so are most of the bundled extensions. While extensions
61may also be written in C++, ext-intl is currently the only bundled extension to do so. It is
62advisable that you have *some* knowledge of C before jumping into php-src.
63
64It is also advisable to get familiar with the semantics of PHP itself, so that you may better
65differentiate between bugs and expected behavior, and model new language features.
66