Skip to content
Snippets Groups Projects
index.md 4.76 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Development tools
    
    
    ## Tools included with buildkit {:#with-buildkit}
    
    When you install [buildkit](/tools/buildkit.md) you'll get all these tools.
    
    
    *This list of tools is also maintained [in the buildkit readme file](https://github.com/civicrm/civicrm-buildkit/blob/master/README.md).*
    
    ### CiviCRM-specific tools {:#civicrm-specific}
    
    * `civibuild` - Build a complete source tree (with CMS+Civi+addons), provision httpd/sql, etc.
    
    Sean Madsen's avatar
    Sean Madsen committed
        * *[documentation](/tools/civibuild.md)*
    
        * *[repository](https://github.com/civicrm/civicrm-buildkit)*
    * `cv` - command is a utility for interacting with a CiviCRM installation
        * *documentation: run `cv list`*
        * *[repository](https://github.com/civicrm/cv)*
    * `civix` - Generate skeletal code for CiviCRM extensions
    
        * *[documentation](/extensions/civix.md)*
    
        * *[repository](https://github.com/totten/civix)*
    * `civistrings` - Scan code for translatable strings (*.pot)
        * *documentation: run `civistrings --help`*
        * *[repository](https://github.com/civicrm/civistrings)*
    * `cividist` - Generate tarballs from a series of git branches/tags
    
        * *[documentation](/tools/cividist.md)*
    
        * *repository: [within civicrm-buildkit](https://github.com/civicrm/civicrm-buildkit/blob/master/bin/cividist)*
    * `gitify` - Convert a CiviCRM installation to a git repo
        * *documentation: run `gitify` with no arguments*
        * *repository: [within civicrm-buildkit](https://github.com/civicrm/civicrm-buildkit/blob/master/bin/gitify)*
    * `civilint` - Check the syntax of uncommitted files using `phpcs`, `jshint`, etc.
        * *documentation: run `civilint` with no arguments*
        * *repository: [within civicrm-buildkit](https://github.com/civicrm/civicrm-buildkit/blob/master/bin/civilint)*
    * `civihydra` - Create a series test sites for several CMSs (extends `civibuild`)
        * *documentation: run `civihydra` with no arguments*
        * *repository: [within civicrm-buildkit](https://github.com/civicrm/civicrm-buildkit/blob/master/bin/civihydra)*
    * `civicrm-upgrade-test` - Scripts and data files for testing upgrades
        * *[documentation& repository](https://github.com/civicrm/civicrm-upgrade-test)*
    * Coder - Configure phpcs for CiviCRM's [coding standards](http://wiki.civicrm.org/confluence/display/CRMDOC/PHP+Code+and+Inline+Documentation)
        * *[documentation & repository](https://github.com/civicrm/coder)*
        * *(Derived from [Drupal's coder project](https://www.drupal.org/project/coder))*
    
    ### External tools installed with buildkit {:#external}
    
    These tools are not specific to CiviCRM, so you may already have some of them installed on your system. If you install [buildkit](/tools/buildkit.md) you'll get all these tools at once, in addition to the CiviCRM-specific tools listed above.
    
    
    * Dependency management
        * [composer](http://getcomposer.org/) - Manage dependencies for PHP code.
        * [bower](http://bower.io/) - Manage dependencies for Javascript code.
    * Source code management
        * [git-scan](https://github.com/totten/git-scan/) - Manage a large number of git repositories.
        * [hub](http://hub.github.com/) - Send commands to github.com.
    * Source code quality
        * [jshint](http://jshint.com/) - Check the syntax of Javascript files.
        * [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) - Check the syntax of PHP files.
     * Site management
        * [amp](https://github.com/totten/amp) - Abstracted interface for local httpd/sql service (Apache/nginx/MySQL).
        * [drush](http://drush.ws/) - Administer a Drupal site.
        * [joomla](https://github.com/joomlatools/joomla-console) (joomla-console) - Administer a Joomla site.
        * [wp](http://wp-cli.org/) (wp-cli) - Administer a WordPress site.
    * Testing
        * [karma](http://karma-runner.github.io) (w/[jasmine](http://jasmine.github.io/)) - Unit testing for Javascript.
        * [paratest](https://github.com/brianium/paratest) - Parallelized version of PHPUnit.
        * [phpunit](http://phpunit.de/) - Unit testing for PHP (with Selenium and DB add-ons).
    
    
    ## Other useful tools {:#other}
    
    ### Miscellaneous {:#misc}
    
    * [git](https://git-scm.com/) - version control system
    * [psysh](http://psysh.org/) - a reply-echo-print-loop for PHP (like `php -a`, but better)
    * [MySQL Workbench](https://www.mysql.com/products/workbench/) - A graphical interface to your local (or remote) MySQL server
    
    * [MkDocs](http://www.mkdocs.org) - for [editing documentation](/documentation/index.md)
    
    
    If you already have a text editor you love, then stick to that. If you're new and need some recommendations, here are some of the most popular text editors among CiviCRM developers:
    
    
    * [PhpStorm](https://www.jetbrains.com/phpstorm/) *(See [CiviCRM-specific notes on PhpStorm](/tools/phpstorm.md))*
    
    * [NetBeans](https://netbeans.org/)
    * [Sublime](https://www.sublimetext.com/)
    * [Atom](https://atom.io/)
    * [vim](http://www.vim.org/)