You are viewing revision #5 of this wiki article.
This is the latest version of this article.
You may want to see the changes made in this revision.
There are a few settings and plugins that can enhance the development experience with Yii in PHPStorm or IntelliJ IDEA. This article explains how to get the most out of your IDE.
This arcticle is valid for Yii 2 and above, there is an older article for Yii 1.1.
Yii2 Support adds many useful tools that improve working with Yii. It makes working with class configuration, DI and views easier.
Yii2 Inspections is a very useful plugin that adds Yii specific code inspections to PHPStorm. It helps for example to manage
@propertyannotations for getters and setters as well as translation messages.
Php Inspections (EA Extended) is not directly Yii related but has a lot of additional code inspections that help you write better code. There is also a paid version that has even more features, especially security related inspections.
Project Setup ¶
Exclude runtime directories from code search. Debug toolbar stores a lot of stuff that clutters search results.
runtime- right click - Mark Directory As - Excluded
Enable composer integration to tell PHPStorm to separate vendor files from project files.
composer.json- right click - Composer - Init Composer ...
PHPUnit and Codeception ¶
PHPStorm has integrations for PHPUnit as well as Codeception, so you can run your tests directly from the IDE.
Settings for that can be found at Run - Edit Configurations....
To add your Codeception tests, click the + button, select Codeception. Then enter the following details:
- Name: "Codeception tests" - or whatever you want to name it
- Test Scope: Defined in the Configuration file
- Use alternative configuration file: "codeception.yml"
- In case PHPStorm asks you to do it, configure a PHP Interpreter in PHPStorm settings
- Configure Codeception binary as
You can now run your tests directly from PHPStorm.
For PHPUnit the steps are similar but Yii application templates do not provide PHPUnit tests by default so the options depend on your setup.