Safe-PHP code is generated automatically from the PHP doc.
The first step is to download the PHP documentation project locally, using git.
$ cd generator/doc
$ sh update.sh
The script can be used to both install the doc and to update it. All it does is pull from theses mirrors:
https://github.com/salathe/phpdoc-base
To use the generator, you need to make sure you installed all the needed dependencies:
$ cd generator
$ composer install
Generating the functions can be done with a simple command.
$ cd generator
$ php ./safe.php generate
In some cases, automatic generation is too difficult to execute and the function has to be written manually.
This should however only be done exceptionally in order to keep the project easy to maintain.
The most important examples are all the functions of the classes DateTime
and DateTimeImmutable
, since the entire classes have to be overloaded manually.
All custom objects must be located in lib/ and custom functions must be in lib/special_cases.php.
The continuous integration hooks will regenerate all the functions and check that the result is exactly what has been committed. Therefore, before submitting a PR, please:
- Perform step 1 to update doc
- Regenerate the files using
php ./safe.php generate