To regenerate the dockerfile, run php Dockerfile.php > Dockerfile
To regenerate headers, run: docker buildx build . -o .
To generate headers without checking (useful for getting a copy of the header file to identify any errors), comment out the last line of process.php
Symbols syntax:
x
: export symbol x#x
: export definition x//...
: Comment
Modifiers (after a symbol):
zts
/nts
: Only import symbol on thread-safe/non-thread-safe<x.y
/>x.y
/<=x.y
/>=x.y
/=x.y
/!=x.y
: Only import symbol on a given PHP version
To add a new symbol:
- Check what PHP versions it's defined in and if it's in an
#ifdef
(specificallyZTS
) and add modifiers as appropriate - Add to bottom of symbols.txt unless required by another symbol (in which case list it above)
- Regenerate headers and ensure all builds pass
- Commit updated headers
To add a new PHP version:
- Add to Dockerfile.php
- Regenerate dockerfile
- Regenerate headers
- Add modifier for any removed symbols to exclude them
- Add modifier for any newly required symbols (ex. members of common classes)