-
Introduction
- Understanding Matomo
-
Matomo Core development
- Contributing to Matomo Core
- Contributing to Matomo Plugins
- Coding Standards
- Using GitHub Issues
- Pull Requests and Reviews
- The Core Team Workflow
- Maintaining Plugins
- Maintaining Translations
- Matomo APIs
- Debugging Core
- Profiling Code
- Reproducing Issues
- FAQs
- Core Components
- Composer dependencies
- Release Management
- Using GitHub Actions
- Matomo's Roadmap
- Matomo Plugin development
- Web Interface
- Utils
- Reporting API
- Data Model
- Tests
- Tools
-
Plugin Development
PhpStorm
At Matomo we're using mostly PhpStorm for Matomo development. It's great at detecting errors and comes with a lot of features for refactoring and generating code.
Setting Up PhpStorm for Matomo
Using single quotes in auto-generated TypeScript
Matomo uses AirBnB's eslint rules which require the use of single quote strings in TypeScript, but by default PHPStorm inserts double quotes when auto-generating some TypeScript (like imports). The quote type used can be set by going to: Settings > Editor > Code Style > TypeScript, then clicking the Punctuation tab on the right and setting "Use single quotes in new code".
Rest to be defined. (Steps to setup phpunit, xdebug, etc.)
Tips for using PhpStorm
To be defined.
Multi-line edit
If you need to edit multiple lines in the same way, for example, to add a [ or => prefix to multiple lines, you can save a lot of time by using the "Column Selection Mode". Click on "Column Selection Mode" in the Edit menu or use the keyboard shortcut (varies by OS). If you currently select text it will create multiple cursors, one for each line of text. If not, you can create new cursors by clicking w/ a special key (alt + left click on Ubuntu).
Quickly getting the full path of a file
PHPStorm allows copying the path of a file by right clicking on a file tab header and selecting 'Copy Path...'. This will provide several options, but if you just need the absolute path, you can use a shortcut. On Ubuntu it is 'Ctrl + Shift + C'. This can be useful if you want to run a test on the command line, for example.