PHP Review Tips
- phpcompatinfo report analysis is automatically run during fedora-review
yum/dnf install phpcompatinfo fedora-review
- phpcompatinfo is run against the full sources tree. It can be usefull to run it twice:
- run it against sources directory (src, lib, ...) for runtime requirement
- run it against tests directory for buildtime requirement.
Explanation: the package layout is not reliable, as it have change and will probably change again.
- a static extension (in the engine) can be build as a shared extension and move to another package (ex: gmp moved to php-gmp).
- a shared extension can move (e.g. shmop moved to php-process in 5.5)
- a extension can move from php to pecl when deprecated (e.g. ereg will disapear in php 7)
- a pecl extension can be merged in php when considered as "famous and stable" (e.g. opcache was merged in 5.5).
So all needed extensions MUST be required (use php-<extname>)
- Core and standard are not extensions and are always there. No need to requires them (and they are not provided)
- extensions don't have version, so never use: requires: php-foo > 5.5 (use Requires: php-foo, php(language) > 5.5)
Notice: some extensions are always there (cannot be built shared): spl and reflection, perhaps we will amend Guidelines in the future.