![](http://habrastorage.org/getpro/habr/avatars/2df/fce/7ee/2dffce7ee42c7b79cce513e382cec05c.jpg)
Yii 1.1.9
A stable version of the Yii PHP framework with the number 1.1.9 has been released. This release contains about 60 improvements and bug fixes.
A complete list of changes can be found in the corresponding file . Before upgrading from earlier versions, it’s important to read the instructions .
The Russian-language documentation, as usual, is in a completely up-to-date state. In addition, all typos found at the time of release have been fixed. Thanks to everyone who uses Orphus on yiiframework.ru.
Consider the most interesting changes.
The though option was added in version 1.1.7, but the syntax was not very convenient, so it was decided to make it more explicit. The current syntax uses the following syntax:
In the above
-
-
through can be used for both HAS_ONE and HAS_MANY .
This feature is described in more detail in the Relational Active Record section of the complete guide.
Now you can use condition groups when defining model relationships:
When using only one group of conditions, it can be specified as a string.
In this version, it became possible to create relations for a given pair PK-> FK without relying on a data scheme. This means that, for example, you can specify the following relationship for the model
In this case, it
Starting from 1.1.5, in Yii, it was possible to import classes in advance and use them without explicit import or
A complete list of changes can be found in the corresponding file . Before upgrading from earlier versions, it’s important to read the instructions .
The Russian-language documentation, as usual, is in a completely up-to-date state. In addition, all typos found at the time of release have been fixed. Thanks to everyone who uses Orphus on yiiframework.ru.
Consider the most interesting changes.
A more convenient way to define `through` in an ActiveRecord relationship
The though option was added in version 1.1.7, but the syntax was not very convenient, so it was decided to make it more explicit. The current syntax uses the following syntax:
'comments' => array (self :: HAS_MANY, 'Comment', array ('key1' => 'key2'), 'through' => 'posts'),
In the above
array('key1'=>'key2')
: -
key1
is the key defined in the relation that is indicated in through
(in our case, this posts
). -
key2
is the key defined in the model that the relation indicates (in our case, this Comment
). through can be used for both HAS_ONE and HAS_MANY .
This feature is described in more detail in the Relational Active Record section of the complete guide.
Support for condition groups in Model :: relations ()
Now you can use condition groups when defining model relationships:
'recentApprovedComments' => array (self :: BELONGS_TO, 'Post', 'post_id', 'scopes' => array ('approved', 'recent')),
When using only one group of conditions, it can be specified as a string.
Ability to make JOIN between models by given keys
In this version, it became possible to create relations for a given pair PK-> FK without relying on a data scheme. This means that, for example, you can specify the following relationship for the model
Day
:'jobs' => array (self :: HAS_MANY, 'Job', array ('date' => 'target_date')),
In this case, it
Day
may contain several Job
s. However, they are not connected in the usual way. We set the key in the form array('fk'=>'pk')
, that is, at the output we get SQL likeSELECT * FROM day t JOIN job ON t.date = job.target_date
Ability to override kernel classes with Yii :: $ classMap
Starting from 1.1.5, in Yii, it was possible to import classes in advance and use them without explicit import or
include
. Now using the same approach, you can override the kernel classes .