mirror of
https://github.com/friendica/friendica
synced 2024-12-23 07:20:15 +00:00
Merge pull request #2841 from Hypolite/issue/#2103-alt
Issue/#2103 alt - define coding standards for Friendica
This commit is contained in:
commit
4d591c4a07
1 changed files with 41 additions and 6 deletions
|
@ -29,7 +29,7 @@ Welcome them, answer their questions, point them to documentation or ping other
|
|||
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?
|
||||
|
||||
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.
|
||||
* 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.
|
||||
* 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
|
||||
---
|
||||
|
||||
###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
|
||||
|
||||
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
|
||||
|
||||
$> 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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
* 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.
|
||||
|
|
Loading…
Reference in a new issue