Revision #5 has been created by Mehdi Achour on Dec 17, 2018, 9:09:08 PM with the memo:
Reverted to revision #3
« previous (#4) next (#6) »
Changes
Title
unchanged
(draft) Understanding Yii 3
Category
unchanged
Tutorials
Yii version
unchanged
all
Tags
unchanged
yii3
Content
changed
[...]
Yii 3 is the second major rewrite of the Yii framework.
> Originally started in the 2.1 branch, it was later decided to switch to the 3.X series because of all the backward compatibility breakage. Starting with 3.0, [Yii will follow the Sementic Versionning](https://www.yiiframework.com/news/177/yii-adopts-semver-since-version-3-0-0).
This rewrite addresses a lot of issues Yii 2 suffered from, like the framework being too coupled with jQuery, bower, bootstrap. <small>[TODO: add more grieffs about Yii2]</small>
## Changes overview
Here are the main changes in Yii 3. You can check the complete [CHANGELOG](https://github.com/yiisoft/yii-core/blob/master/CHANGELOG.md#300-under-development) for an exhaustive list.
### Source code splitting
The framework source code have been split into several packages, and at its core level, Yii no longer makes assumptions about your development stack, or the features you will be using.
This enable you to cherry pick the packages you need to compose your application
In order to achieve this, the framework source code have been split into several packages, and at its core level, Yii no longer makes assumptions about your web stack.
This re-organisation is also a great new
s for maintainance, as these packages will be
maintained and released separat
ely, thus allowing more frequent updates.
### Autoloading
TIt's also important to note that the custom PHP class autoloader have also been removed in favor of Composer's PSR-4 implementation. We will see the implications of this change later.
### PSR compatibility
Yii 3 take some positive steps following the [PHP-FIG](https://www.php-fig.org/) recommendations, by implementing the following PSRs:
* Logging is now compliant with PSR-3
* Caching is now compliant with PSR-16
* Dependency Injection is now compliant with PSR-11
### Application configuration
<small>[TODO]</small>
### Dependencies injection
<small>[TODO]</small>
Other new PSR changes:
* Logging is now compliant with PSR-3
* Caching is now compliant with PSR-16
* Dependency Injection is now compliant with PSR-11
You can check the complete [CHANGELOG](https://github.com/yiisoft/yii-core/blob/master/CHANGELOG.md#300-under-development) for an exhaustive list of modifications.
## Yii 3 composer packages[...]
Let's introduce them briefly:
<details>
<summary>The framework</summary>
### The Framework
* [yiisoft/yii-core](https://github.com/yiisoft/yii-core)[...]
* `yii-web` implements all that you need to build a web application (Assets management, Sessions, Request handling ..)
* `yii-rest` implements all that you need to build a REST interface (ActiveController, ..)
</details>
<details>
<summary>Librairies</summary>
### Librairies[...]
* [yiisoft/db-mongodb](https://github.com/yiisoft/db-mongodb) MongoDB support
* [yiisoft/db-elasticsearch](https://github.com/yiisoft/db-elasticsearch) Elastic
</details>
<details>
<summary>Extensions</summary>
### Extensions[...]
* [yiisoft/yii-http-client](https://github.com/yiisoft/yii-http-client) HTTP client extension
* [yiisoft/yii-auth-client](https://github.com/yiisoft/yii-auth-client) External authentication extension
</details>
<details>
<summary>Yii project template and application bases</summary>
### Yii project template and application bases[...]
Let's try running the web base template in the next section.
</details>
## Running your first Yii 3 powered application
Let's try running a web application using Yii 3, and the provided project template.
##### Installing the project template[...]