Merge pull request #2841 from Hypolite/issue/#2103-alt
Issue/#2103 alt - define coding standards for Friendica
This commit is contained in:
commit
4d591c4a07
|
@ -29,7 +29,7 @@ Welcome them, answer their questions, point them to documentation or ping other
|
||||||
Translation
|
Translation
|
||||||
---
|
---
|
||||||
|
|
||||||
The documentation contains help on how to translate Friendica in the [at Transifex](/help/translations) where the UI is translated.
|
The documentation contains help on how to translate Friendica [at Transifex](/help/translations) where the UI is translated.
|
||||||
If you don't want to translate the UI, or it is already done to your satisfaction, you might want to work on the translation of the /help files?
|
If you don't want to translate the UI, or it is already done to your satisfaction, you might want to work on the translation of the /help files?
|
||||||
|
|
||||||
Design
|
Design
|
||||||
|
@ -42,29 +42,64 @@ If you have seen Friendica you probably have ideas to improve it, haven't you?
|
||||||
* Make plans for a better Friendica interface design and share them with us.
|
* Make plans for a better Friendica interface design and share them with us.
|
||||||
* Tell us if you are able to realize your ideas or what kind of help you need.
|
* Tell us if you are able to realize your ideas or what kind of help you need.
|
||||||
We can't promise we have the right skills in the group but we'll try.
|
We can't promise we have the right skills in the group but we'll try.
|
||||||
* Choose a thing to start with, e.g. work on the icon set of your favourite theme
|
* Choose a thing to start with, e.g. work on the icon set of your favorite theme
|
||||||
|
|
||||||
Programming
|
Programming
|
||||||
---
|
---
|
||||||
|
|
||||||
|
###Coding standards
|
||||||
|
|
||||||
|
For the sake of consistency between contribution and general code readability, Friendica follows the widespread [PSR-2 coding standards](http://www.php-fig.org/psr/psr-2/) to the exception of a few rules.
|
||||||
|
Here's a few primers if you are new to Friendica or to the PSR-2 coding standards:
|
||||||
|
* Indentation is tabs, period (not PSR-2).
|
||||||
|
* By default, strings are enclosed in single quotes, but feel free to use double quotes if it makes more sense (SQL queries, adding tabs and line feeds).
|
||||||
|
* Operators are wrapped by spaces, e.g. `$var === true`, `$var = 1 + 2` and `'string' . $concat . 'enation'`
|
||||||
|
* Braces are mandatory in conditions
|
||||||
|
* No closing PHP tag
|
||||||
|
* No trailing spaces
|
||||||
|
|
||||||
|
Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica.
|
||||||
|
There are a few tools you can use to check or fix your files before you commit.
|
||||||
|
|
||||||
|
####Check with [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer)
|
||||||
|
|
||||||
|
This tool checks your files against a variety of coding standards, including PSR-2, and ouputs a report of all the standard violations.
|
||||||
|
You can simply install it through PEAR: `pear install PHP_CodeSniffer`
|
||||||
|
Once it is installed and available in your PATH, here's the command to run before committing your work:
|
||||||
|
|
||||||
|
$> phpcs --standard=PSR2 <file or directory>
|
||||||
|
|
||||||
|
The output is a list of all the coding standards violations that you should fix before committing your work.
|
||||||
|
Additionally, `phpcs` integrates with a few IDEs (Eclipse, Netbeans, PHPStorm...) so that you don't have to fiddle with the command line.
|
||||||
|
|
||||||
|
####Fix with PHP Code Beautifier and Fixer (phpbcf) included in PHP Code Sniffer
|
||||||
|
|
||||||
|
If you're getting a massive list of standards violations when running `phpcs`, it can be annoying to fix all the violations by hand.
|
||||||
|
Thankfully, PHP Code Sniffer is shipped with an automatic code fixer that can take care of the tedious task for you.
|
||||||
|
Here's the command to automatically fix the files you created/modified:
|
||||||
|
|
||||||
|
$> phpcbf --standard=PSR2 <file or directory>
|
||||||
|
|
||||||
|
If the command-line tools `diff` and `patch` are unavailabe for you, `phpcbf` can use slightly slower PHP equivalents by using the `--no-patch` argument.
|
||||||
|
|
||||||
###Code documentation
|
###Code documentation
|
||||||
|
|
||||||
If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it.
|
If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it.
|
||||||
The configuration file for Doxygen is located in the ```util``` directory of the project sources.
|
The configuration file for Doxygen is located in the `util` directory of the project sources.
|
||||||
Run
|
Run
|
||||||
|
|
||||||
$> doxygen util/Doxyfile
|
$> doxygen util/Doxyfile
|
||||||
|
|
||||||
to generate the files which will be located in the ```doc/html``` subdirectory in the Friendica directory.
|
to generate the files which will be located in the `doc/html` subdirectory in the Friendica directory.
|
||||||
You can browse these files with any browser.
|
You can browse these files with any browser.
|
||||||
|
|
||||||
If you find missing documentation, don't hestitate to contact us and write it down to enhance the code documentation.
|
If you find missing documentation, don't hesitate to contact us and write it down to enhance the code documentation.
|
||||||
|
|
||||||
###Issues
|
###Issues
|
||||||
|
|
||||||
Have a look at our [issue tracker](https://github.com/friendica/friendica) on github!
|
Have a look at our [issue tracker](https://github.com/friendica/friendica) on github!
|
||||||
|
|
||||||
* Try to reproduce a bug that needs more inquries and write down what you find out.
|
* Try to reproduce a bug that needs more inquiries and write down what you find out.
|
||||||
* If a bug looks fixed, ask the bug reporters for feedback to find out if the bug can be closed.
|
* If a bug looks fixed, ask the bug reporters for feedback to find out if the bug can be closed.
|
||||||
* Fix a bug if you can. Please make the pull request against the *develop* branch of the repository.
|
* Fix a bug if you can. Please make the pull request against the *develop* branch of the repository.
|
||||||
* There is a *Junior Job* label for issues we think might be a good point to start with.
|
* There is a *Junior Job* label for issues we think might be a good point to start with.
|
||||||
|
|
Loading…
Reference in a new issue