Contributing to Phalcon

Phalcon is an open source project and heavily relies on volunteer efforts. We welcome contributions from everyone!

Please take a moment to review this document in order to make the contribution process easy and effective for all.

Following these guidelines, allows better communication, faster resolution of issues and moves the project forward.

Contributions

Contributions to Phalcon should be made in the form of GitHub pull requests. Each pull request will be reviewed by a core contributor (someone with permission to merge pull requests). Based on the type and content of the pull request, it can either be merged immediately, put on hold if clarifications are needed, or rejected.

Please ensure that you are sending your pull request to the correct branch and that you already have rebased your code.

Questions and Support

We only accept bug reports, new feature requests and pull requests in GitHub. For questions regarding the usage of the framework or support requests please visit the official forum.

Bug Report Checklist

Make sure you are using the latest released version of Phalcon before submitting a bug report. Bugs in versions older than the latest released one will not be addressed by the core team.

If you have found a bug, it is essential to add relevant information to reproduce it. Being able to reproduce a bug greatly reduces the time to investigate and fix it. This information should come in the form of a script, small application, or even a failing test. Please check Submit Reproducible Test for more information.

As part of your report, please include additional information such as the OS, PHP version, Phalcon version, web server, memory etc.

Pull Request Checklist

Don’t submit your pull requests to the master branch. Branch from the required branch and, if needed, rebase to the proper branch before submitting your pull request. If it doesn’t merge cleanly with master you may be asked to rebase your changes

Add tests relevant to the fixed bug or new feature. See our testing guide for more information

Phalcon is written in Zephir, please do not submit commits that modify C generated files directly or those whose functionality/fixes are implemented in the C programming language

Make sure that the PHP code you write fits with the general style and coding standards of the Accepted PHP Standards

Remove any change to ext/kernel, *.zep.c and *.zep.h files before submitting the pull request

Before submit new functionality, please open a NFR as a new issue on GitHub to discuss the impact of including the functionality or changes in the core extension. Once the functionality is approved, make sure your PR contains the following:

An update to the CHANGELOG.md

Unit Tests

Documentation or Usage Examples

Getting Support

If you have any questions about how to use Phalcon, please see the support page.