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.
Plugins ¶
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
@property
annotations 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 - ExcludedEnable 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
vendor/bin/codecept
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.
I get an error when I run with this setup that the system cannot find autoload.php.
If I set the binary to vendor/codeception/base/codecept it runs.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.