YII 2.0已發佈到Beta,首次穩定版本的目標設定為2014年中期。 Github問題列表列表有300個公開問題,而我寫這篇文章的同時2913次關閉,並且兩個數字仍在增加。 2.0RC里程碑的進度為99%。我的猜測是團隊很接近,但是我們可能必須等待更長的時間。當我們都在等待時,讓我們看看一個已經可以使用的示例,看看我們可以期望的。
鑰匙要點>使用名稱空間和特徵的用法將要求提高到PHP 5.4。此外,當您開始開發時,您還需要MB_STRING,PDO和INTL擴展。如果您運行自己的服務器,這應該不是問題,但是如果您在共享環境下,則可能是問題。當然,隨著該問題的及時,該問題將消失。
>>安裝
現在可以從作曲家安裝當前,有兩個申請示例可用。有一個基本示例,其中包含幾頁,聯繫頁面和登錄頁面。高級示例添加了一個單獨的前端和後端,數據庫交互,註冊和密碼恢復。
入門WebApp。使用以下命令將基本示例與作曲家一起安裝:>
然後,您可以通過打開http://localhost/yii2-app-basic/requirements.php來檢查服務器是否滿足您的需求。然後,實際應用程序將從http:// localhost/yii2-app-basic/web/運行。composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
這是要注意的第一個重要的事情:想法是,您將應用程序的詞根設置為/path/to/to/to/application/web,就像與Symfony一樣。目錄佈局從版本1.1改變了一點。如果仔細觀察,更改將是有道理的,並將提高應用程序的安全性。
以前,所有應用程序組件(模型,視圖,控制器,框架和供應商庫)都將生活在受保護文件夾中的文檔根下。這樣,安全性取決於要尊重的.htaccess文件,這意味著您的應用程序默認情況下的應用程序是100%不安全的。將所有應用程序組件從文檔根中移開,從而阻止Web服務器將應用程序組件發送給用戶。>
>您可能會發現自己正在尋找實際的框架來源。該框架是使用作曲家安裝的組件,因此它將位於Vendoryiisoftyii目錄下。在這裡,您會發現更多,但是現在,我們將其留下。>目前,讓我們更改本地Web服務器配置,然後將文檔root設置為/路徑/到/application/web。我添加了一個VirtualHost http://yii2-app-basic.localhost/,但您認為適合自己的情況。默認配置設置為將腳本文件隱藏在URL中。如果您使用的是Apache,則需要在Web目錄中添加.htaccess文件才能指示Apache進行重寫,默認情況下不存在。
>查看基本YII應用程序
>現在我們已經運行了基本應用程序,有些祝賀...
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
謝謝!到目前為止,還沒有火箭科學。
>您將從開始頁面,關於頁面的靜態頁面,聯繫頁面和登錄頁面開始。聯繫頁面和登錄表具有與以前相同的功能; CAPTCHA代碼,表單驗證和兩個可用於登錄的用戶。登錄與以前相同;幾乎一無所有。儘管如此,這還是一個很好的開始。
基本應用程序的設計發生了巨大變化。以前,您將獲得一個基於藍圖CSS框架的應用程序,而現在我們從Twitter Bootstrap開始。改進?它可能與藍圖進行了比較,但是Bootstrap又比藍圖嘗試過的要多得多。
Bootstrap將為您提供各種應用程序組件,並將加快構建應用程序。另一方面,有些人可能會爭辯說所有站點都與Bootstrap看起來都一樣(主題僅部分修復),這也將使您的站點更大的尺寸。無論哪種方式,使用YII 2.0的集成都使用YII2-Bootstrap擴展程序完成。這使得將Bootstrap組件集成在您的視圖中非常容易。
>
>
GII將通過生成供您開始的代碼來幫助您,這是另一種有助於加快開發的好工具。它將為您生成模型和控制器。 CRUD生成器將進一步走一步,並為所有操作生成完整的MVC集。 GII還將通過立即插入yii :: t()函數在需要它的地方生成更適合國際化的代碼(I18N)。
>基本應用程序現在還帶有一個簡單的命令行應用程序,您可以在基礎上構建。 yii 1.1已經支持了這一點,但是您必須從Wiki中獲得一個示例。
這就是您在基本應用程序中找到的。還有一個可用的高級應用程序示例。它的結構有些不同,但可以為您的應用程序添加更多功能:>
>用戶授權,身份驗證和密碼還原。 一個應用程序分為前端和後端。
發生了很多變化。一開始可能會使您感到困惑,但是我發現大多數更改很有意義,而且易於接受。這是我發現有趣,有趣或令人困惑的一些變化。
> PHP 5.4要求使一些更改成為可能;陣列短標籤可用。在視圖中使用Echo簡短標籤也是安全的,因為這不再取決於配置設置。
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
>翻譯函數yii :: t()仍然與我們同在。它指示YII使用I18N組件將提供的文本轉換為當前使用的語言。您也可以指示它替換變量。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
由於這種佔位符格式,dateTimeFormatter消失了:
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
>此功能由ICU庫提供。 YII文檔稱其為原始文檔:“非常神秘”。我敢您閱讀它並嘗試理解它……希望YII文檔及時包含一個更可讀的版本。
控制器<span><span><?php </span></span><span><span>echo `Yii<span>::</span>t('app', 'Hello, {username}!', [ </span></span><span> <span>'username' => $username, </span></span><span><span>]); </span></span><span><span>?></span></span>
>之前,如果您想使用YII訪問控制功能,則AccessControl()將是控制器的函數。使用YII 2.0,訪問控制是控制器行為的一部分():
>>我確實注意到示例代碼(不是框架本身!)缺少許多放映,並且有很多@InHeritDoc的評論。這不是您從一個示例中期望的,但我認為這將是及時固定的。
><span><span><?php </span></span><span><span>echo <span>\Yii</span>::t('app', '{n, number} is spelled as {n, spellout}', ['n' => 81]); </span></span><span><span>echo <span>\Yii</span>::t('app', 'You are {n, ordinal} in line, please hold.', ['n' => 3]); //Will echo "You are 3rd in line, please wait.". </span></span><span><span>echo <span>\Yii</span>::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array( </span></span><span> <span>'n' => 14, </span></span><span><span>)); </span></span><span><span>?></span></span>
基本模型(以前的CModel)並沒有太大變化。現在,方案允許您更改驗證規則的執行。您可以根據當前場景更改需要驗證的需要(即,在前端或後端使用時具有不同規則的模型)。
> 不過,
派生的Activerecord經歷了一些嚴重的變化。使用ActivereCord進行搜索的語法更像是編寫查詢,因為CDBCriteria已經消失了。它已被ActiveQuery替換為使檢索信息更容易:composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
>您現在有兩個選擇來定義此問題;通常,您會在關係函數中使用Via()方法。如果僅需要樞軸表之後的表中的數據,則還可以使用Viatable()方法來定義關係。與上面的示例相同,但現在適用於yii 2.0:
>
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
視圖
正如我之前所說的
>; PHP 5.4使短迴聲標籤始終可用。這使得由混合PHP和HTML組成的視圖更可讀;渲染()和renderpartial()函數也更改。在它會自動迴聲之前,您必須添加一個附加參數才能使渲染的輸出作為字符串。 yii 2.0將始終返回render()上的字符串 - 就像呼叫一樣,使其與小部件的行為方式更加一致。
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
>從yii 1.1
升級>有一個特別頁面,專門用於在YII網站上升級YII。目前,最大的問題是您的擴展。如果您依靠很多擴展名,您將很難做到,因為社區需要花費一些時間來編寫YII 2.0的擴展名。如果您是真正的專業人士,那麼您當然可以認真看一下您使用的擴展名,並考慮(重新)寫它們。
遷移手冊在應用程序中有一個關於運行YII 1.1和YII 2.0的部分。對於大型項目,這是創建安全遷移路徑的好方法。將您的通用代碼遷移到YII 2.0,並花點時間在更複雜或填充的零件上。
結論YII 2.0的文檔質量從yii 1.1提高了。幾年前,當我從YII 1.1開始時,我很難弄清楚東西,我覺得該文檔比以前更為廣泛。
>您是否已經看過YII 2.0,甚至已經使用了一些東西了?請告訴我們您遇到了什麼。我很想知道你的經歷!經常詢問有關yii 2.0
的問題 與以前的版本相比,YII 2.0中有哪些新功能是什麼?
yii 2.0調試器是什麼,它如何工作?
>如何使用第三方擴展程序擴展yii 2.0?
yii 2.0支持使用第三方擴展,可以使用Composer軟件包管理器安裝。安裝後,您可以像YII的內置功能一樣使用這些擴展名。 YII社區已經開發了廣泛的擴展名,可提供其他功能,例如用戶身份驗證,表單驗證和數據庫抽象。> yii 2.0如何支持靜止的API開發?
>
> yii 2.0如何處理用戶身份驗證?yii 2.0提供了靈活的用戶身份驗證系統。它支持傳統的用戶名/密碼身份驗證和更現代的方法(例如Oauth和OpenID)。您還可以擴展內置的用戶模型以添加自己的身份驗證方法。
>
>如何測試我的yii 2.0應用程序?yii 2.0提供了測試框架基於Phpunit和硒。它支持單位測試和功能測試。您可以編寫測試用例以測試模型,視圖和控制器。測試框架還提供了模擬用戶輸入並檢查輸出的方法。
以上是YII 2.0的期望的詳細內容。更多資訊請關注PHP中文網其他相關文章!