PHP can run with different Web servers in different modes. Each Web server may set different environment variables with details about each HTTP request. This makes more difficult to develop Web server independent applications.
This class provides a solution to this problem. It rewrites certain PHP super-globals that store environment variables set by the Web server.
This way, applications do not need to be adapted to run with different Web servers.
This class can be used to fix the values of super-global variables so they have the same values independently of the Web server.
It can:
- Fixes PATH_TRANSLATED variable to use only / as path separator
- Set the REQUEST_URI to SCRIPT_NAME or QUERY_STRING when the REQUEST_URI is not set
- Set the SERVER_SIGNATURE with values based on SERVER_SOFTWARE, SERVER_NAME, and SERVER_PORT when SERVER_SIGNATURE is not set
- Set SCRIPT_FILENAME based on PATH_TRANSLATED when SCRIPT_FILENAME is not set
- Set DOCUMENT_ROOT based on REQUEST_URI and PATH_TRANSLATED when DOCUMENT_ROOT is not set