Changes: - Added introductory paragraph to explain the file for newcomers and where to ignore local editor configurations as a common practice when using Git. - Patterns organized into several main context sections for a better overview of the php-src directory structure and which files get generated where. - Added comments describing reasons for ignoring particular file(s). - Patterns normalized according to Git ignore blob patterns. Absolute paths are different than relative paths and similar fixes. - Folders patterns have appended ending slash for readability to distinguish them from files. Removed ignore patterns: - Removed `sapi/phpdbg/build` pattern since it doesn't seem to be relevant anymore in the php-src repository. - The `acconfig.h` pattern removed in favor of the more recent Autoconf versions. - Removed patterns for `.FBCIndex` `.FBCLockFolder` folders. These were generated on old Mac OS systems [1] using the Sherlock [2] software and can be today ignored using a global gitignore file if needed. Newer macOS systems don't generate these anymore. - Removed `php_version.h` pattern since the `main/php_version.h` file is tracked by Git. - Removed `*.mk` pattern since few *.mk files are tracked by Git and new ones aren't generated during build process. - Removed `**/tests/**/*.txt` pattern. This has been refactored via595a395cb9and current tests also clean the generated `*.txt` files as soon as they are executed. Since there are several `*.txt` files in the repository tracked by Git already and renaming them would be counter productive so the pattern is now removed. In case there will be a need to adjust it, we can rename the generated `*.txt` into something else instead (ideally into `*.tmp`) to not conflict with already tracked `*.txt` files in tests. - Removed `ext/*/scan_makefile_in.awk` and `scan_makefile_in.awk` patterns since these are already included in the `/ext/*/build/` pattern. - Removed the `/ext/*/libs.mk` pattern since these auxilary Makefiles have been used in previous build system and made obsolete via the commit9d9d39a0de. - Removed pattern for configuration header `ext/pdo_sqlite/sqlite3.h` since it is not generated anymore in the current code. - Removed `main/streams/build-defs.h` pattern since this file is not generated. - Removed `test.php3` pattern. These don't seem to be present in the current PHP source code nor used since PHP 3. - Removed `/ext/oci8/tests/*.vglog` pattern since the tests don't seem to produce these files. - Removed pattern for Visual Studio's `*.ncb` files. Since the Visual Studio 2010 they are no longer used. - Removed `ext/sqlite3/tests/phpsql*` pattern. It was part of the `ext/sqlite/tests`. - Removed `shlibtool` pattern since the shlibtool file is not generated anymore. It was once part of the libtool usage and customized naming used in the previous build system in Makefiles. Such naming was later removed and only libtool was used. - Removed `meta_ccld` pattern since it is no longer relevant viaa5b55416f4- Pattern `meta_cc` has been removed viae5176fe60a. - Pattern `dynlib.m4` removed since the file is no longer generated via9d9d39a0de- Pattern `debug.log` removed since the Autoconf Macro PHP_DEBUG_MACRO is not called anymore and this file not generated anymore. - Pattern `results.txt` removed. It was once part of the logging results of test files by Netware and previous Windows builds. - Removed `_libs` pattern in favor of only `.libs`. These directories were once generated by Automake and Libtool on systems that didn't support the dot folder `.libs` (MS-DOS). - Removed `*.opt` pattern since it was used by Visual Studio 6. Later versions of Visual Studio don't use these anymore. - Removed `*.plg` pattern. It was build log generated by Visual Studio 6. - Removed `core` pattern since it was probably related to commitfd7153b0f3and is today not used. - Removed ˙*.˙, ˙diff`, and ˙*.tgz` patterns since they don't seem to be generated in the current code on the first glance. In case these will be one day required to ignore again, they can be simply added back again. - Removed Emacs specific interlock files pattern `.#*`. The number of editors and IDEs specific files is very big. Emacs editors also produce some other files such as `#*#` for autosave feature, which were previously not ignored. To fully and properly support all additional patterns these could be added to .gitignore files. A much more sustainable and better practice is to use a global gitignore file on the local system or the `.git/info/exclude` per repository basis for these in particular. Added patterns: - Added new pattern for `*.obj` standard object files in the Windows section. These are generated by Visual Studio. - Added `/ext/*/run-tests.php` patterns for extensions. - Reversed patterns for particular tracked `/win32/build/Makefile`, `config.h` files and `.patch` files. - Added patterns for generated dtrace files `/ext/oci8/oci8_dtrace_gen.h` Other changes: - All `conftest*` patterns merged into a single one. - Pattern `*.mem` made more specific where the memory check files get generated by `run-tests.php -m`, i.e. `**/tests/**/*.mem`. - Fixed `/Zend/zend_dtrace_gen.h.bak` `hbak` typo. [1] http://www.westwind.com/reference/OS-X/invisibles.html [2] https://en.wikipedia.org/wiki/Sherlock_(software)
The PHP Interpreter
This is the github mirror of the official PHP repository located at https://git.php.net.
Pull Requests
PHP accepts pull requests via github. Discussions are done on github, but depending on the topic can also be relayed to the official PHP developer mailing list internals@lists.php.net.
New features require an RFC and must be accepted by the developers. See https://wiki.php.net/rfc and https://wiki.php.net/rfc/voting for more information on the process.
Bug fixes do not require an RFC, but require a bugtracker ticket. Always open a ticket at https://bugs.php.net and reference the bug id using #NNNNNN.
Fix #55371: get_magic_quotes_gpc() throws deprecation warning
After removing magic quotes, the get_magic_quotes_gpc function caused
a deprecate warning. get_magic_quotes_gpc can be used to detected
the magic_quotes behavior and therefore should not raise a warning at any
time. The patch removes this warning
We do not merge pull requests directly on github. All PRs will be pulled and pushed through https://git.php.net.
Guidelines for contributors
Testing
To run tests the make test is used after successful compilation of the sources.
See Creating new test files chapter for more information about testing.