The point of Yii2 environments folder-open source projects yiisoft/yii2

Arman P.

I think you didn’t get the real purpose of environments introduced in Yii2.

I’ll try to explain what was the main purpose of adding environments to yii from the developers point of view on an example and hope you will really appreciate its usefulness.

Let’s suppose for a moment that you are a team of developers (e.g. 5-7 person) working on mid-to-large project implemented in Yii. To effectively work on that project your team decides to use some CVS or SVN (e.g. GIT) and keep all the files of the project in repository in cloud for the whole team. That’s de facto standard while working on mid-to-large projects in teams and nobody will resist that it’s the only comfortable and easy way.

Ok, now let’s suppose you use Yii 1.x or Yii2 with the approach of different entry scripts to differentiate between local (development) and production environments to connect to db or set some other environment specific configs. Everything is ok and working. But suppose your team members implemented something new on the project and you check out repository to work on updated version and you suddenly find out that your local config file (in this case entry script with config) is overwritten with other team member’s file who pulled the changes to repository (because each of you is using your local machine db with other database name or OS, or config, or simply because your team uses one local development server db, but you are on vacation and can’t use anything except your local machine).

So generally Yii2 environment adds more flexibility for using different environments each with it’s own specific configurations while using also general (common) configs when working in teams on mid-to-large projects hence why the example in guide is given on advanced app project.

Surely you can overcome everything stated above with some solutions or .gitignore which is used by default to overcome the problem stated in Yii2 with environments. But:

  1. Why bother if everything is already done?

and

  1. It was just one little example of usefulness of Yii2 environments. More depends on the project and your imagination.

Overall Yii2 is great product. Not only it adds many new features to already great framework, but it also is more robust and flexible than Yii 1.x (despite the fact that Yii 1.x was already very robust).

As for Laravel or any other PHP framework, it really depends… Everyone will find his/her own favorite.