Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
development:recommended_tools [2016/09/15 14:16] – [Dependency Management] crhallberg | development:recommended_tools [2019/01/30 16:22] – [Editors / IDEs] demiankatz |
---|
Some developers prefer to use a simple text editor to quickly and easily edit individual files. Others prefer a full-fledged IDE (Integrated Development Environment) which imposes a "whole project" view of the code and includes a built-in understanding of the code which enables it to detect errors, make suggestions and offer navigational shortcuts during programming. As a general rule, an IDE has a steeper learning curve than a basic editor and consumes more resources; however, it offers great advantages when undertaking more complex programming tasks. Basic text editors can offer more speed, and some also include plug-ins to enable certain IDE-like functionality. | Some developers prefer to use a simple text editor to quickly and easily edit individual files. Others prefer a full-fledged IDE (Integrated Development Environment) which imposes a "whole project" view of the code and includes a built-in understanding of the code which enables it to detect errors, make suggestions and offer navigational shortcuts during programming. As a general rule, an IDE has a steeper learning curve than a basic editor and consumes more resources; however, it offers great advantages when undertaking more complex programming tasks. Basic text editors can offer more speed, and some also include plug-ins to enable certain IDE-like functionality. |
| |
At Villanova, Demian uses the [[https://netbeans.org/|Netbeans IDE]] for most of his work, while Chris uses the [[https://notepad-plus-plus.org/|Notepad++]] text editor. | At Villanova, Demian uses the free, open source [[https://code.visualstudio.com/|Visual Studio Code]] IDE for most of his work (and has previously been successful using [[https://netbeans.org/|Netbeans]]), while Chris uses the [[https://notepad-plus-plus.org/|Notepad++]] text editor. |
| |
===== Version Control ===== | ===== Version Control ===== |
==== Style ==== | ==== Style ==== |
| |
For style compliance, it is recommended that you install [[https://github.com/squizlabs/PHP_CodeSniffer|PHP_CodeSniffer]] and [[https://github.com/FriendsOfPHP/PHP-CS-Fixer|PHP-CS-fixer]], each of which is capable of detecting (and sometimes automatically fixing) different issues. | For style compliance, VuFind uses [[https://github.com/squizlabs/PHP_CodeSniffer|PHP_CodeSniffer]] and [[https://github.com/FriendsOfPHP/PHP-CS-Fixer|PHP-CS-fixer]], each of which is capable of detecting (and sometimes automatically fixing) different issues. In recent versions of VuFind, these tools will be installed automatically by Composer. |
| |
To test style compliance with PHP_CodeSniffer, you can run: | To test style compliance with PHP_CodeSniffer while in your VuFind directory, you can test a single file with: |
| |
<code> | <code> |
phpcs --standard=PEAR [file] | vendor/bin/phpcs --standard=PEAR [file] |
</code> | </code> |
| |
To automatically fix certain PHP_CodeSniffer issues, you can run: | Or, through [[https://www.phing.info/|Phing]], you can check the whole project: |
| |
<code> | <code> |
phpcbf --standard=PEAR [file] | vendor/bin/phing phpcs-console |
</code> | </code> |
| |
To automatically fix additional issues with php-cs-fixer, you can install [[https://www.phing.info/|Phing]] and then, from the base of your VuFind directory, run: | To automatically fix certain PHP_CodeSniffer issues, you can run: |
| |
<code> | <code> |
phing php-cs-fixer | vendor/bin/phing phpcbf |
</code> | </code> |
| |
(Note that this assumes that the php-cs-fixer command is accessible on your search path). | To automatically fix additional issues with php-cs-fixer, from the base of your VuFind directory, run: |
| |
| <code> |
| vendor/bin/phing php-cs-fixer |
| </code> |
| |
If you are unwilling or unable to run these tools locally, note that if you open a pull request against the [[https://github.com/vufind-org/vufind|main VuFind repo]], they will be automatically run by [[development:testing:continuous_integration|continuous integration]] and you can view a list of issues in the resulting Travis report. Before you spend time manually fixing anything, you can post a comment on the pull request to ask for assistance with running the automatic processes. | If you are unwilling or unable to run these tools locally, note that if you open a pull request against the [[https://github.com/vufind-org/vufind|main VuFind repo]], they will be automatically run by [[development:testing:continuous_integration|continuous integration]] and you can view a list of issues in the resulting Travis report. Before you spend time manually fixing anything, you can post a comment on the pull request to ask for assistance with running the automatic processes. |