PHP Package Development Standards

This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors.

PDS publications are derived from and supported by common practices existing in real packages, as adopted by existing authors who have a continuing interest in the quality and consistency of their own work.



You can indicate your package attempts to comply with a PDS publication by requiring it in your package manager manifest.

For example, under Composer, {"require-dev": {"pds/skeleton": "~1.0"}} indicates your package attempts to comply with the pds/skeleton publication.

You can also indicate in your package README that your package has adopted a publication by displaying the relevant badges.

N.b.: Advertising PDS compliance, whether by adding a publication to your package manager manifest or by displaying a badge, helps with ongoing research as to adoption levels of PDS publications.

Naming and Versioning

PDS publications are named, instead of numbered. This makes them easier to recognize, and easier to publish as packages in their own right.

PDS publications are versioned. This makes it easier to show the status of a particular publication, easier to provide clarifications and additions in the text of a publication, and easier to deprecate older standards as newer ones supplant them.

Version numbers are X.Y.Z(-state), where:

This versioning approach is inspired by SemVer.