-
-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate files for multiple versions #503
base: master
Are you sure you want to change the base?
Conversation
The CI looks unhappy because of redeclaration, probaly caused by files pending for clean up? I think we may split this huge PR into several small PR (one for generating scripts, and one for each PHP version), which makes the PR easy to read & review. |
174426b
to
3375fb4
Compare
I am unsure why the generator script is giving different outputs on my laptop and in CI testing D: |
c127a0d
to
cf0393d
Compare
tl;dr: replace ```php $function_list = read_docs(); generate_files($function_list, "../generated/"); ``` with ```php foreach(["8.1", "8.2", "8.3", "8.4"] as $version) { exec("cd docs && git checkout $version"); $function_list = read_docs(); generate_files($function_list, "../generated/$version/"); } ``` generate a bunch of stubs like generated/misc.php: ```php <?php if(PHP_VERSION == "8.1") require_once __DIR__ . "/8.1/misc.php"; if(PHP_VERSION == "8.2") require_once __DIR__ . "/8.2/misc.php"; if(PHP_VERSION == "8.3") require_once __DIR__ . "/8.3/misc.php"; if(PHP_VERSION == "8.4") require_once __DIR__ . "/8.4/misc.php"; ``` This also automates generation of "deprecated" `safe` functions (ie, instead of hard-coding `deprecated/apache.php`, any functions which needed safe wrappers in 8.1 but no longer need safe wrappers in 8.2 will have no-op stubs generated instead) Currently the `Exceptions` are shared between all versions, which I _think_ is a good idea? (Thoughts, anybody?) This isn't even remotely tested, just a proof of concept to show what this kind of approach might look like
Looks like CI was only checking out the most recent revision, and the |
If you want to test this, you can add a dependency on |
tl;dr:
replace
with
generate a bunch of stubs like generated/misc.php:
This also automates generation of "deprecated"
safe
functions (ie, instead of hard-codingdeprecated/apache.php
, any functions which needed safe wrappers in 8.1 but no longer need safe wrappers in 8.2 will have no-op stubs generated instead)Currently the
Exceptions
are shared between all versions, which I think is a good idea? (Thoughts, anybody?)This isn't even remotely tested, just a proof of concept to show what this kind of approach might look like