If you're interested in contributing to CakePHP and supporting the community then we'd love for you to join us, there are a variety of ways to get involved and help out.
One of the greatest ways to contribute to CakePHP is by directly supporting the developer community. There's no need to be a genius or guru to get involved, you may just have the answer to some of the questions being asked. Here are some ways you can get started:
* For those who don't have an IRC client we have a web-based client available here.
Education and Training
Helping others to learn CakePHP is another valuable way to contribute to the community. There are many ways
you can help others, these include:
- Coding Seminars
- Live Workshops
- Training Courses
Additionally, we offer professional training for CakePHP. Sign up to our monthly training sessions sponsored by CakeDC.
Marketing and Evangelism
As an open source project, backed by the Cake Software Foundation, Inc. we don't have a massive budget to market and advertise the framework, so we depend
on people like you getting involved and helping support the community. There are many actions which can help
raise awareness, share experiences and educate your fellow developers about CakePHP.
Write and Talk About CakePHP
Actively writing and talking about CakePHP helps spread the word about the framework.
- Write an article or blog post about a certain feature or development experience.
- Comment on articles or posts and provide ideas and arguments which invite further conversation and
- Use social platforms such as Facebook, Discourse or Twitter to provide links to articles, posts, plugins, events, etc.
Help Your Local Community
We depend on people who know and understand their local community. This not only refers to the difference in
the language, but also the local customs and cultural differences. You can help us by connecting with your
local community and supporting CakePHP. A few actions you can undertake include:
- Starting or joining a local user group
- Organizing events or meet-ups
- Distributing information and awareness
If you want to contribute code for a bug fix then coordinate your approach in the comments of the issue, either
by linking to a gist/pastebin or by linking to the commit(s) for the fix.
Contributing via a Pull Request
Contributing via commits on a GitHub fork is the preferred way of submitting fixes. If your fix is more than
a single commit, you should put the fix on an appropriately named branch. This makes integration of the fix
Testing and Quality Assurance
Filing issues is a great way to start contributing to CakePHP. By finding and reporting issues in the code
you notify the maintainers of any issues and help get them resolved. Issues for all CakePHP projects are
located on GitHub
Found a Bug?
Sometimes there are problems in CakePHP. If you think you've come across one you can:
- Search for a similar or existing issues.
- Create a new issue if you're sure it doesn't already exist OR update the existing issue.
- Add detailed instructions on how to reproduce the bug. This could be in the form of test cases or a code
snippet that demonstrates the issue. Not having a way to reproduce an issue, means its less likely to
Issues That Need Additional Information
New issues often need to be confirmed or need more
information. Asking for additional information on unclear issues doesn't take much time, and helps speed up the process.
Confirm or Invalidate Existing Issues That Need a Way to Reproduce
If an issue cannot be easily reproduced, or is unclear, it will be set to hold. Issues on hold generally need
a way to be confirmed or require additional information. You can help by finding out ways to reproduce
issues, or prodding issue authors for more information. Issues that are on hold can be found here
Bug Issues for Maintenance Releases
Existing releases usually have a few issues open against them. These issues generally need patches and test
cases created for them, so they can be resolved. Preparing patches for open unresolved issues
is a great way to get involved with CakePHP, and is one of the first steps to becoming a core contributor.
Features and Enhancements for Future Releases
We are currently working on the 4.x releases. There are still a number of
incomplete tasks and unresolved defects. If an issue has been moved into a specific milestone, it is planned for inclusion in that
release. Issues are moved into milestones based on community feedback and the core team's plans. If you
plan on contributing a feature, please also include relevant test cases for the feature. We want to keep
CakePHP as bug free as possible, and test cases have proven to help immensely. If you submit features
without test cases, and no documentation it is highly unlikely it will be merged in.
CakePHP is continuously integrated, so you can check the status of the various builds on the Jenkins server at any time.
Documentation is another excellent way to start getting involved with CakePHP. We have two primary forms of
documentation, the API and the Cookbook. The API
is generated from the source code, so if you find an inaccuracy or issue with the API documentation, you can
file a patch against the source code. The Cookbook is a community managed
documentation source which can also be found on GitHub.
Guidelines on contributing to the documentation can be reviewed here.
We have developers from countries all over the world who use CakePHP. If you're a non-english speaker,
translating the the Cookbook content
into your language is another way to help support the community. Providing the official documentation and
support material in as many languages as possible helps lower the barrier to entry to using the framework.
Find Jobs or Developers
If you're looking for skilled CakePHP developers, or are a developer yourself and seeking a freelance project or
position at a company, there are many resources available:
Official career group for CakePHP related opportunities
Jobs available for freelance developers
CakePHP related job postings
Development and consultancy from the experts
The following is a list of recommendations to help keep the CakePHP community strong, active and healthy, as well as a place where everyone feels welcome. These are by no means rules or laws, but instead suggestions and best practices.
- Remember that when you talk about CakePHP you're representing a global community of people, most of whom are passionate about their involvement, and dedicate their free time and good will to helping the framework. Be friendly and helpful, and always show the respect for others in the same way you'd expect from them.
- Never insult, tease or ridicule a user, group of users or community, based on personal opinion or bias towards them. If you don't agree with their opinion or argument, then simply state your reason, provide examples or links, and be polite. If they're acting inappropriately or using abusive language then contact an admin of that channel to have them removed.
- Never degrade, belittle, insult or otherwise damage the name or reputation of another project in favour of CakePHP. If you want to compare or promote features of the framework, always aim to do so with relevant and technical arguments, with a positive attitude, and in a humble and respectful manner.
- Never use the community channels to announce or advertise a commercial service or product, or to spam other users with content unrelated to CakePHP or the community.
- When dealing with a user asking for help, if possible, attempt to resolve their problem or concern, no matter how trivial it may seem. We all started from somewhere. If you don't have the time, the patience or the know-how to answer, always refer the user to the CakePHP Community Center at http://community.cakephp.org
- When talking about a technical feature of CakePHP, always try to make a clear reference to the version of the framework in which it became available. Also, if possible, attempt to supply documentation and examples where possible, to help the reader or listener better understand the concept. And remember, always check your facts before jumping to conclusions or defending a false argument.
- When writing example code, always try to apply the CakePHP Conventions and Coding Standards correctly, and check that the example given does not throw an error or give an incorrect result. This promotes good practice, and aids developers in learning to do things "the right way" by default, without hitting too many bumps along the way.
- The use of the CakePHP logo and brand assets should follow the instructions available from the logo usage guide: http://cakephp.org/logos. Following those standards ensures that the visual identity of the framework is never misrepresented or abused.
- Try to use the CakePHP name correctly. The name should be spelled "CakePHP", all as one word, with an uppercase "C", and "PHP". This helps keep the links and references to the framework consistent. For example, CAKEPHP, Cakephp, cake-php or just Cake would be incorrect uses. Maintaining a common spelling and format for the name helps keep brand coherent and consistent.
- When making a reference to CakePHP in a marketing or promotional context, it helps to make the name stand-out or interactive. Consider using <strong> or <b> tags for HTML, bold formatting for documents, or making the name a visible link to http://cakephp.org. Don't overuse the name in any body of text, instead try keeping any direct uses of the name relevant. To even out the usage try to use other references, such as "the framework" or "the project".
The Annual CakePHP Conference
Every year we hold a conference dedicated to CakePHP, hosting live workshops and inviting a variety of great
speakers, to give you the very best in presentations and talks on the latest from the community:
- The workshops are a great way to learn CakePHP, and get up-to-date with the latest versions and innovations,
directly from the core developers of the framework!
- The conference days are packed with presentations, discussions and talks on CakePHP and related
technologies, an ideal moment to learn more from the community.
- It's a great opportunity to network, meet friends old and new, and have some fun with the core members of
the project. Plus, there's cake!
More information on the conference and ticket sales can be found on the CakeFest website