高性能的PHP5开发框架,Yii Framework 1.1.9 发布了

fmms 12年前
     <a href="/misc/goto?guid=4958190863365418330" target="_blank">Yii</a>是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。    <br />    <img title="logo.png" border="0" alt="logo.png" src="https://simg.open-open.com/show/5eb83c1d48be3cee13189c2a8fc7c5b7.png" width="284" height="64" />    <br />    <p>2012年元旦,发布了Yii PHP framework 1.1.9</p>    <h1> <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">We are very pleased to announce the immediate availability of Yii Framework version 1.1.9. In this release, we've included nearly 60 enhancements and bug fixes.</p> <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">For the complete list of changes in this release, please see the <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323346944974075">change log</a> and <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323347743099000">important feature additions</a>. And if you plan to upgrade from an older version to 1.1.9, refer to the <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323348544357419">upgrade instructions</a>.</p> <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">In the following page, we briefly introduce some of the changes in this release.</p> </h1>    <h3 style="padding-bottom:0px;border-right-width:0px;margin:0px 0px 20px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:21px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">More convenient way to define through AR relation</h3>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">Active Record though option was introduced in 1.1.7 but syntax wasn't convenient so we decided to make it more definitive. Current syntax is the following:</p>    <div style="padding-bottom:0px;line-height:19px;border-right-width:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:gray;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">     <div style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:'Courier New', Courier, monospace;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-main">      <pre style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin-top:0px;padding-left:0px;outline-width:0px;padding-right:0px;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;"><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">comments</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">=></span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">self</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">::</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">HAS_MANY</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">Comment</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">key1</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">=></span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">key2</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">through</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">=></span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">posts</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span></pre>     </div>    </div>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">In the above array('key1'=>'key2'):</p>    <ul style="padding-bottom:0px;line-height:19px;border-right-width:0px;margin:0px 0px 20px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">     <li style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px 0px 0px 30px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;"><code style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">key1</code> is a key defined in relation specified in <code style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">through</code> (<code style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">posts</code> is this case).</li>     <li style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px 0px 0px 30px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;"><code style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">key2</code> is a key defined in a model relation points to (<code style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">Comment</code> in this case).</li>    </ul>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">through can be used with both HAS_ONE and HAS_MANY relations.</p>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">For more details and examples refer to <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323349350046086">Relational Query with through</a>.</p>    <h3 style="padding-bottom:0px;border-right-width:0px;margin:0px 0px 20px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:21px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">Scope support for Model::relations()</h3>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">You can now use scopes when defining AR model relations such as</p>    <div style="padding-bottom:0px;line-height:19px;border-right-width:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:gray;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">     <div style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:'Courier New', Courier, monospace;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-main">      <pre style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin-top:0px;padding-left:0px;outline-width:0px;padding-right:0px;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;"><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">recentApprovedComments</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">=></span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">self</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">::</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">BELONGS_TO</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">, </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">Post</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">, </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">post_id</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,       </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">scopes</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code"> => </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">approved</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">, </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">recent</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span></pre>     </div>    </div>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">In case of a single scope you can specify a single scope with a string instead of array.</p>    <h3 style="padding-bottom:0px;border-right-width:0px;margin:0px 0px 20px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:21px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">Ability to join AR models on a specific keys</h3>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">It is now possible to build AR relations on PK->FK specified instead of relying on the schema defaults so you can specify AR relation like the following declaration for Day model:</p>    <div style="padding-bottom:0px;line-height:19px;border-right-width:0px;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:gray;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">     <div style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:'Courier New', Courier, monospace;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-main">      <pre style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin-top:0px;padding-left:0px;outline-width:0px;padding-right:0px;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;font-size:12px;vertical-align:baseline;border-left-width:0px;padding-top:0px;"><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">jobs</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">=></span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">self</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">::</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:green;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-identifier">HAS_MANY</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">, </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">Job</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">, </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:black;vertical-align:baseline;border-left-width:0px;font-weight:bold;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-reserved">array</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">(</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">date</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code"> => </span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-string">target_date</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:red;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-quotes">'</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:olive;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-brackets">)</span><span style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" class="hl-code">,</span></pre>     </div>    </div>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">In the case above Day can have multiple Jobs but these aren't related usual way. We've specified relation key in form of array('fk'=>'pk'). That means it will generate SQL like</p>    <pre style="padding-bottom:0px;line-height:19px;border-right-width:0px;background-color:#ffffff;margin-top:0px;padding-left:0px;outline-width:0px;padding-right:0px;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;padding-top:0px;">SELECT * FROM day t  JOIN job ON t.date = job.target_date</pre>    <h3 style="padding-bottom:0px;border-right-width:0px;margin:0px 0px 20px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:21px;vertical-align:baseline;border-left-width:0px;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">Ability to override core classes using Yii::$classMap</h3>    <p style="padding-bottom:0px;line-height:19px;border-right-width:0px;padding-left:0px;outline-width:0px;padding-right:0px;font-family:Arial, sans-serif;margin-bottom:20px;border-top-width:0px;border-bottom-width:0px;color:#222222;font-size:13px;vertical-align:baseline;border-left-width:0px;font-weight:normal;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;">There was an ability to <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323350152743400">pre-import classes</a> and use them without explicitly importing or including since 1.1.5. Now using the same technique you can override <a style="padding-bottom:0px;border-right-width:0px;background-color:transparent;margin:0px;padding-left:0px;outline-width:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;color:#0099cc;vertical-align:baseline;border-left-width:0px;text-decoration:none;padding-top:0px;border-image:initial;background-origin:initial;background-clip:initial;" href="/misc/goto?guid=4958323350950801905">Yii core classes</a> with your own ones.</p>