BodyIdAttribute?>><\/p>\n

Enfin, je souhaitez ajouter le contenu suivant au fichier de configuration principal afin que Yii puisse utiliser la classe View étendue au lieu de celle par défaut?: <\/span><\/p>\n

return[\n????\/\/?...\n????'components'=>?[\n????????\/\/?...\n????????'view'=>?[\n????????????'class'=>?'app\\components\\View'\n????????]??\n????]\n];<\/pre>\n

4. Encouragez les tests <\/strong><\/span><\/p>\n

Yii et Codeception sont étroitement liés. Codeception est un incroyable framework de test PHP qui permet de simplifier le processus de création de widgets, de tests fonctionnels et de tests d'acceptation pour votre application. Parce que chaque application que vous écrivez est un test automatisé, n'est-ce pas?? <\/span><\/p>\n

L'extension Codeception facilitera la configuration de votre application lors des tests. Fournissez simplement le fichier \/tests\/_config.php pour configurer votre programme de test. Par exemple?: <\/span><\/p>\n

return[\n????'components'=>?[\n????????'mail'=>?[\n????????????'useFileTransport'=>?true,\n????????],\n????????'urlManager'=>?[\n????????????'showScriptName'=>?true,\n????????],\n????????'db'=>?[\n????????????????'dsn'=>?'mysql:host=localhost;dbname=mysqldb_test',\n????????],\n????],\n];<\/pre>\n

使用該配置,將會發(fā)生如下幾種情況:<\/span><\/p>\n

1、?在功能測試和驗收測試期間發(fā)送的任何一封郵件,將會被寫入一個文件中,而不是被發(fā)送。使用該配置,將會發(fā)生如下這種情況:<\/span><\/p>\n

2、?在你測試中的URLs將會采取這種格式:?index.php\/controller\/action?而不是這種:\/controller\/action<\/span><\/p>\n

3、?測試將會使用你的測試數(shù)據(jù)庫,而不是你的產(chǎn)品數(shù)據(jù)庫。<\/span><\/p>\n

存在Yii框架中的特殊模塊,同樣也存在Codeception內(nèi)。它TestGuy類中增加了幾個方法,協(xié)助你在功能測試中的活動記錄(Yii中的ORM)。舉例來說,如果你想看看是否成功創(chuàng)建了一個用戶名為“testuser”的新user,你可以做以下幾點:<\/span><\/p>\n

<\/span><\/p>\n

$I->amOnPage('register');\n$I->fillField('username','testuser');\n$I->fillField('password','qwerty');\n$I->click('Register');\n$I->seeRecord('app\\models\\User',array('name'=>?'testuser'));<\/pre>\n

5、簡化安全性<\/strong><\/span><\/p>\n

安全性是任何一個web應(yīng)用的重要組成部分,幸運的是,Yii有一些很棒的功能可以幫你解決這方面的煩惱。
Yii帶有一個安全應(yīng)用組件,其中公開的幾個方法可以幫助創(chuàng)建一個更安全的應(yīng)用。其中一些比較有用的方法如下:
<\/span><\/p>\n

·generatePasswordHash:<\/strong>?從一個密碼和隨機因子生成一個安全的單向散列函數(shù)。這種方法為你編譯了一個隨機因子,然后通過PHP?crypt函數(shù)功能提供的字符串創(chuàng)建了一個單項散列函數(shù)。<\/span><\/p>\n

·validatePassword:<\/strong>對于generatePasswordHash,這是一個伴侶功能,并且允許你檢查用戶提供的密碼是否與你存儲的散列函數(shù)相匹配。<\/span><\/p>\n

·generateRandomKey:<\/strong>允許你創(chuàng)建一個任意長度的隨機字符串。<\/span><\/p>\n

Yii會對所有不安全的HTTP請求方法(PUT,POST,DELETE)進行自動檢查,當你使用ActiveForm::begin()方法創(chuàng)建開放表單標簽時,它會生成并輸出一個token。通過編輯你的主配置文件可以禁止此功能,方法如下:<\/span><\/p>\n

return[\n????'components'=>?[\n????????'request'=>?[\n????????????'enableCsrfValidation'=>?false,\n????????]\n];<\/pre>\n

為了防止XSS,Yii提供了一個叫HtmlPurifier的輔助類。這個類有一個名為process的靜態(tài)方法,并且會使用popular?filter?library過濾出同名的輸出庫。<\/span><\/p>\n

Yii還包括備用類,用來進行用戶身份驗證和授權(quán)。授權(quán)分為兩種類型:ACF(訪問控制過濾器)和RBAC(基于角色的訪問控制)。<\/span><\/p>\n

這兩種授權(quán)方法,較簡單的要數(shù)ACF了,它是通過在你的控制器中添加以下行為方法來實現(xiàn)的:<\/span><\/p>\n

useyii\\filters\\AccessControl;\n?\nclassDefaultController?extendsController?{\n????\/\/?...\n????publicfunction?behaviors()?{\n????????return[\n????????????\/\/?...\n????????????'class'=>?AccessControl::className(),\n????????????'only'=>?['create','login','view'],\n????????????????'rules'=>?[\n????????????????[\n????????????????????'allow'=>?true,\n????????????????????'actions'=>?['login','view'],\n????????????????????'roles'=>?['?']\n????????????????],\n????????????????[\n????????????????????'allow'=>?true,\n????????????????????'actions'=>?['create'],\n????????????????????'roles'=>?['@']\n????????????????]\n????????????]\n????????];\n????}\n????\/\/?...\n}<\/pre>\n

上面的代碼用于區(qū)分DefaultControllerto,允許guest用戶的訪問login?和view行為,而不是create?行為。(??是一個匿名用戶別名,@?指的是已認證用戶)。<\/span><\/p>\n

RBAC是指那些用戶可以在整個應(yīng)用中執(zhí)行特定操作行為的更有效的方法。包括為用戶創(chuàng)建角色,定義app權(quán)限,然后使這些權(quán)限試用于相應(yīng)的角色。如果你想創(chuàng)建一個Moderator的角色,并允許分配給該角色的所有用戶批準文章。<\/span><\/p>\n

你也可以使用RBAC定義角色,它允許你在特定條件下,授權(quán)訪問應(yīng)用的某些方面的自定義規(guī)則。例如,你可以創(chuàng)建一個規(guī)則,即允許用戶編輯自己的文章,而不是那些其他人創(chuàng)建的。<\/span><\/p>\n

6、縮短開發(fā)時間<\/strong><\/span><\/p>\n

大多數(shù)項目都會涉及一定的重復(fù)任務(wù),沒有人愿意浪費時間。而Yii提供的一些工具可以幫助你減少在這些任務(wù)中所花費的時間,將更多的時間用于定制讓客戶滿意的應(yīng)用。<\/span><\/p>\n

在這些工具中,其中有一個名為“Gii”的工具最為強大。Gii是一個基于web的基架代碼工具,可以讓你快速創(chuàng)建代碼模板:<\/span><\/p>\n

·模型<\/strong><\/span><\/p>\n

·控制器<\/strong><\/span><\/p>\n

·形式<\/strong><\/span><\/p>\n

·模塊<\/strong><\/span><\/p>\n

·擴展<\/strong><\/span><\/p>\n

·CRUD控制器行為和視圖<\/strong><\/span><\/p>\n

Gii是高度可配置的。你可以將其設(shè)置為僅在特定的環(huán)境下加載。只需簡單編輯下你的web配置文件即可,方法如下:<\/span><\/p>\n

<\/span><\/p>\n

if?(YII_ENV_DEV)?{\n????\/\/?...\n????$config['modules']['gii']?=?[\n????????'class'?=>?'yii\\gii\\Module',\n????????'allowedIPs'?=>?['127.0.0.1',?'::1']\n????]\n}<\/pre>\n

這樣就可以確保黨Yii的環(huán)境設(shè)置為開發(fā)的時候,Gii僅支持加載,并且它只通過本地主機訪問時才會加載。<\/span><\/p>\n

現(xiàn)在,讓我們來看下模型生成器吧:<\/span><\/p>\n

\"\"
<\/p>\n

表名使用的是一個預(yù)輸入控件,來試圖猜測哪個表格與你的模型相關(guān)聯(lián),并且所有領(lǐng)域都有一個翻轉(zhuǎn)工具,提示你如何填寫出來。在用Gii生成它之前,你可以預(yù)覽代碼,并且所有代碼模板是完全可以自定義的。<\/span><\/p>\n

還有幾個命令行工具可以幫你為你的自動化測試創(chuàng)建數(shù)據(jù)庫遷移,信息翻譯(I18N:國際化)和數(shù)據(jù)庫fixtures?代碼模板。例如,你可以使用如下命令創(chuàng)建一個新的數(shù)據(jù)庫遷移文件:<\/span><\/p>\n

<\/span><\/p>\n

yii?migrate\/create?create_user_table<\/pre>\n

這將會在?{appdir}\/migrations上創(chuàng)建一個新的遷移模板,看起來像這樣的:<\/span><\/p>\n

<\/span><\/p>\n

所以我們可以說,我想添加在該表中再添加幾列。我只想添加以下內(nèi)容到up<\/span> 方法中:<\/p>

public function up()\n{\n    $this->createTable('user',?[\n????????'id'?=>?Schema::TYPE_PK,\n????????'username'?=>?Schema::TYPE_STRING?.?'?NOT?NULL',\n????????'password_hash'?=>?Schema::?TYPE_STRING?.?'?NOT?NULL'\n????],?null);\n}<\/pre>\n

<\/span><\/p>\n

然后,保證我可以反向遷移,下面我將添加down<\/span>?方法:<\/p>\n

public?function?down()\n{\n$this->dropTable('user');\n}<\/pre>\n

創(chuàng)建該表將會簡單包括一個在運行在命令行的命令:<\/p>\n

.\/yii?migrate<\/pre>\n

<\/span><\/span><\/p>\n

然后移除該表:<\/span><\/p>\n

<\/span><\/span><\/span><\/span><\/p>\n

.\/yii?migrate\/down<\/pre>\n

<\/span><\/p>\n

7、容易調(diào)整為最佳性能<\/span><\/strong><\/p>\n

大家都知道,一個網(wǎng)站很慢的話會很容易讓用戶產(chǎn)生不滿,所以Yii提供了幾種工具來幫助你從應(yīng)用中“擠”出更多的速度。<\/p>\n

所有Yii的緩存組件都是從yii\/caching\/Cache擴展來的,你可以選擇任何一種,你想同時使用一個通用API擴展的緩存系統(tǒng)。你甚至可以注冊多個高速緩存組件。Yii目前支持數(shù)據(jù)庫和文件緩存,APC,Memcache,?Redis,?WinCache,?XCache和Zend?數(shù)據(jù)緩存。<\/p>\n

默認情況下,如果你正在使用Active?Record,然后Yii會運行一個額外的查詢,來確定表參與生成模型的架構(gòu)。你可以通過編輯注配置文件設(shè)置應(yīng)用程序,從而緩存這些架構(gòu):<\/p>\n

return?[\n????\/\/?...\n????'components'?=>?[\n????????\/\/?...\n????????'db'?=>?[\n????????????\/\/?...\n????????????'enableSchemaCache'?=>?true,\n????????????'schemaCacheDuration'?=>?3600,\n????????????'schemaCache'?=>?'cache',\n????????],\n????????'cache'?=>?[\n????????????'class'?=>?'yii\\caching\\FileCache',\n????????],\n????],\n];<\/pre>\n

最后,Yii有一個命令行工具,使前端資源極簡化更容易。只需運行以下命令來生成配置模板:<\/span><\/p>\n

.\/yii?asset\/template?config.php<\/pre>\n

<\/span><\/span><\/p>\n

然后,編輯該配置來指定工具,達到你想要的簡化效果(如關(guān)閉編譯器,?YUI?Compressor,或UglifyJS)。生成的配置模板,如下所示:<\/span><\/p>\n

<\/span><\/span><\/span><\/span><\/p>\n

?'java?-jar?compiler.jar?--js?{from}?--js_output_file?{to}',\n????????'cssCompressor'?=>?'java?-jar?yuicompressor.jar?--type?css?{from}?-o?{to}',\n????????'bundles'?=>?[\n????????????\/\/?'yii\\web\\YiiAsset',\n????????????\/\/?'yii\\web\\JqueryAsset',\n????????],\n????????'targets'?=>?[\n????????????'app\\config\\AllAsset'?=>?[\n????????????????'basePath'?=>?'path\/to\/web',\n????????????????'baseUrl'?=>?'',\n????????????????'js'?=>?'js\/all-{hash}.js',\n????????????????'css'?=>?'css\/all-{hash}.css',\n????????????],\n????????],\n????????'assetManager'?=>?[\n????????????'basePath'?=>?__DIR__,\n????????????'baseUrl'?=>?'',\n????????],\n????];<\/pre>\n

接著,運行此控制臺命令來實現(xiàn)壓縮:<\/span><\/p>\n

'components'?=>?[\n????\/\/?...\n????'assetManager'?=>?[\n????????'bundles'?=>?require?'\/app\/assets_compressed.php'\n????]\n]<\/pre>\n

注意:你必須要手動下載和安裝這些外部工具。<\/span><\/p>\n

結(jié)論:<\/strong><\/span><\/p>\n

像任何一個好的框架一樣,Yii能夠幫助你快速創(chuàng)建流行的web應(yīng)用,并確保它們可以做的很好。通過做許多繁瑣的事情,它幫你你創(chuàng)建安全的和可測試的網(wǎng)站。你可以輕松的使用它提供的大部分功能,或者你也可以修改其中任何一個來適應(yīng)你的需求。真心建議你在你的下一個web項目中考慮一下它!<\/span><\/p>"}

国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison cadre php YII Quelles sont les raisons du choix du framework yii ?

Quelles sont les raisons du choix du framework yii ?

Sep 03, 2020 pm 03:56 PM
framework yii

Quelles sont les raisons du choix du framework yii ?

Sept raisons de choisir le framework yii?:

(Tutoriel recommandé?: framework yii)

1. Installation facile

Pour les développeurs Web, le temps, c'est de l'argent. Personne ne veut perdre son temps dans une installation et une configuration fastidieuses.

Composer se chargera du processus d'installation. Eh bien, si vous souhaitez une description du processus d'installation, Sitepoint a récemment publié un article à ce sujet, que vous pouvez lire ci-dessous. Je préfère m'en tenir au modèle d'application de base même si j'ai un composant front-end et back-end distincts sur mon site. Au lieu de cela, j'ai choisi d'utiliser un module pour la partie backend de mon site. (Les modules Yii sont la meilleure représentation des mini-applications, utilisées pour être intégrées dans votre application principale.)

Remarque?: La plupart des exemples suivants utilisent des références de répertoire simples. modèle.

2. Utiliser la technologie moderne

Yii est un framework POO pur qui utilise pleinement certains des plus Les fonctionnalités avancées incluent la liaison statique paresseuse, les classes et interfaces SPL et les fonctions anonymes.

Toutes les classes sont dotées d'un espace de noms et vous permettent de profiter de leur chargeur automatique compatible PSR-4. En d'autres termes, inclure la classe auxiliaire HTML dans Yii est tout aussi simple?:

use?yii\helpers\Html;

Yii peut également définir des alias pour vous aider à simplifier votre espace de noms. Dans l'exemple ci-dessus, l'instruction use chargera une définition de classe et le chemin par défaut dans le répertoire est /vendor/yiisoft/yii2/helpers. Cet alias est défini dans la classe BaseYii à la ligne 79 :

public?static?$aliases?=?['@yii'?=>?__DIR__];

Le framework lui-même est installé à l'aide de Composer, comme ses extensions. Publier une extension est aussi simple que de créer un composer.json, d'héberger votre code sur Github et de répertorier l'extension sur Packagist. Yii peut également définir des alias pour simplifier votre espace de noms. Dans l'exemple ci-dessus, l'instruction use chargera une définition de classe et le chemin par défaut dans le répertoire est /vendor/yiisoft/yii2/helpers. Cet alias est défini à la ligne 79 de la classe BaseYii :

3. Haute scalabilité

Yii Tout comme un costume, il a l'air grand mais est en fait facile à ajuster pour répondre à vos besoins. Pratiquement tous les composants du framework sont extensibles. Un exemple simple consiste à ajouter un identifiant de corps unique à votre vue. (Si vous voulez savoir pourquoi vous voulez faire cela, vous pouvez consulter cet article)

Tout d'abord, je vais créer un composants d'application dans mon fichier nommé View.php et ajoutez ce qui suit :

namespaceapp\components;
?
classView?extendsyii\web\View?{
?
????public$bodyId;
?
????/*?Yii?allows?you?to?add?magic?getter?methods?by?prefacing?method?names?with?"get"?*/
?
????publicfunction?getBodyIdAttribute()?{
????????return($this->bodyId?!='')??'id="'?.?$this->bodyId?.'"'?:?'';
????}
?
}

Ensuite, dans mon fichier de mise en page principal (appviewslayoutsmain.php ), Je souhaite ajouter le contenu suivant à la balise body du HTML?:
BodyIdAttribute?>>

Enfin, je souhaitez ajouter le contenu suivant au fichier de configuration principal afin que Yii puisse utiliser la classe View étendue au lieu de celle par défaut?:

return[
????//?...
????'components'=>?[
????????//?...
????????'view'=>?[
????????????'class'=>?'app\components\View'
????????]??
????]
];

4. Encouragez les tests

Yii et Codeception sont étroitement liés. Codeception est un incroyable framework de test PHP qui permet de simplifier le processus de création de widgets, de tests fonctionnels et de tests d'acceptation pour votre application. Parce que chaque application que vous écrivez est un test automatisé, n'est-ce pas??

L'extension Codeception facilitera la configuration de votre application lors des tests. Fournissez simplement le fichier /tests/_config.php pour configurer votre programme de test. Par exemple?:

return[
????'components'=>?[
????????'mail'=>?[
????????????'useFileTransport'=>?true,
????????],
????????'urlManager'=>?[
????????????'showScriptName'=>?true,
????????],
????????'db'=>?[
????????????????'dsn'=>?'mysql:host=localhost;dbname=mysqldb_test',
????????],
????],
];

使用該配置,將會發(fā)生如下幾種情況:

1、?在功能測試和驗收測試期間發(fā)送的任何一封郵件,將會被寫入一個文件中,而不是被發(fā)送。使用該配置,將會發(fā)生如下這種情況:

2、?在你測試中的URLs將會采取這種格式:?index.php/controller/action?而不是這種:/controller/action

3、?測試將會使用你的測試數(shù)據(jù)庫,而不是你的產(chǎn)品數(shù)據(jù)庫。

存在Yii框架中的特殊模塊,同樣也存在Codeception內(nèi)。它TestGuy類中增加了幾個方法,協(xié)助你在功能測試中的活動記錄(Yii中的ORM)。舉例來說,如果你想看看是否成功創(chuàng)建了一個用戶名為“testuser”的新user,你可以做以下幾點:

$I->amOnPage('register');
$I->fillField('username','testuser');
$I->fillField('password','qwerty');
$I->click('Register');
$I->seeRecord('app\models\User',array('name'=>?'testuser'));

5、簡化安全性

安全性是任何一個web應(yīng)用的重要組成部分,幸運的是,Yii有一些很棒的功能可以幫你解決這方面的煩惱。
Yii帶有一個安全應(yīng)用組件,其中公開的幾個方法可以幫助創(chuàng)建一個更安全的應(yīng)用。其中一些比較有用的方法如下:

·generatePasswordHash:?從一個密碼和隨機因子生成一個安全的單向散列函數(shù)。這種方法為你編譯了一個隨機因子,然后通過PHP?crypt函數(shù)功能提供的字符串創(chuàng)建了一個單項散列函數(shù)。

·validatePassword:對于generatePasswordHash,這是一個伴侶功能,并且允許你檢查用戶提供的密碼是否與你存儲的散列函數(shù)相匹配。

·generateRandomKey:允許你創(chuàng)建一個任意長度的隨機字符串。

Yii會對所有不安全的HTTP請求方法(PUT,POST,DELETE)進行自動檢查,當你使用ActiveForm::begin()方法創(chuàng)建開放表單標簽時,它會生成并輸出一個token。通過編輯你的主配置文件可以禁止此功能,方法如下:

return[
????'components'=>?[
????????'request'=>?[
????????????'enableCsrfValidation'=>?false,
????????]
];

為了防止XSS,Yii提供了一個叫HtmlPurifier的輔助類。這個類有一個名為process的靜態(tài)方法,并且會使用popular?filter?library過濾出同名的輸出庫。

Yii還包括備用類,用來進行用戶身份驗證和授權(quán)。授權(quán)分為兩種類型:ACF(訪問控制過濾器)和RBAC(基于角色的訪問控制)。

這兩種授權(quán)方法,較簡單的要數(shù)ACF了,它是通過在你的控制器中添加以下行為方法來實現(xiàn)的:

useyii\filters\AccessControl;
?
classDefaultController?extendsController?{
????//?...
????publicfunction?behaviors()?{
????????return[
????????????//?...
????????????'class'=>?AccessControl::className(),
????????????'only'=>?['create','login','view'],
????????????????'rules'=>?[
????????????????[
????????????????????'allow'=>?true,
????????????????????'actions'=>?['login','view'],
????????????????????'roles'=>?['?']
????????????????],
????????????????[
????????????????????'allow'=>?true,
????????????????????'actions'=>?['create'],
????????????????????'roles'=>?['@']
????????????????]
????????????]
????????];
????}
????//?...
}

上面的代碼用于區(qū)分DefaultControllerto,允許guest用戶的訪問login?和view行為,而不是create?行為。(??是一個匿名用戶別名,@?指的是已認證用戶)。

RBAC是指那些用戶可以在整個應(yīng)用中執(zhí)行特定操作行為的更有效的方法。包括為用戶創(chuàng)建角色,定義app權(quán)限,然后使這些權(quán)限試用于相應(yīng)的角色。如果你想創(chuàng)建一個Moderator的角色,并允許分配給該角色的所有用戶批準文章。

你也可以使用RBAC定義角色,它允許你在特定條件下,授權(quán)訪問應(yīng)用的某些方面的自定義規(guī)則。例如,你可以創(chuàng)建一個規(guī)則,即允許用戶編輯自己的文章,而不是那些其他人創(chuàng)建的。

6、縮短開發(fā)時間

大多數(shù)項目都會涉及一定的重復(fù)任務(wù),沒有人愿意浪費時間。而Yii提供的一些工具可以幫助你減少在這些任務(wù)中所花費的時間,將更多的時間用于定制讓客戶滿意的應(yīng)用。

在這些工具中,其中有一個名為“Gii”的工具最為強大。Gii是一個基于web的基架代碼工具,可以讓你快速創(chuàng)建代碼模板:

·模型

·控制器

·形式

·模塊

·擴展

·CRUD控制器行為和視圖

Gii是高度可配置的。你可以將其設(shè)置為僅在特定的環(huán)境下加載。只需簡單編輯下你的web配置文件即可,方法如下:

if?(YII_ENV_DEV)?{
????//?...
????$config['modules']['gii']?=?[
????????'class'?=>?'yii\gii\Module',
????????'allowedIPs'?=>?['127.0.0.1',?'::1']
????]
}

這樣就可以確保黨Yii的環(huán)境設(shè)置為開發(fā)的時候,Gii僅支持加載,并且它只通過本地主機訪問時才會加載。

現(xiàn)在,讓我們來看下模型生成器吧:


表名使用的是一個預(yù)輸入控件,來試圖猜測哪個表格與你的模型相關(guān)聯(lián),并且所有領(lǐng)域都有一個翻轉(zhuǎn)工具,提示你如何填寫出來。在用Gii生成它之前,你可以預(yù)覽代碼,并且所有代碼模板是完全可以自定義的。

還有幾個命令行工具可以幫你為你的自動化測試創(chuàng)建數(shù)據(jù)庫遷移,信息翻譯(I18N:國際化)和數(shù)據(jù)庫fixtures?代碼模板。例如,你可以使用如下命令創(chuàng)建一個新的數(shù)據(jù)庫遷移文件:

yii?migrate/create?create_user_table

這將會在?{appdir}/migrations上創(chuàng)建一個新的遷移模板,看起來像這樣的:

<?php
 
    use yii\db\Schema;
 
    class m140924_153425_create_user_table extends \yii\db\Migration
    {
        public function up()
        {
 
        }
 
        public function down()
        {
            echo "m140924_153425_create_user_table cannot be reverted.\n";
 
            return false;
        }
}

所以我們可以說,我想添加在該表中再添加幾列。我只想添加以下內(nèi)容到up 方法中:

public function up()
{
    $this->createTable('user',?[
????????'id'?=>?Schema::TYPE_PK,
????????'username'?=>?Schema::TYPE_STRING?.?'?NOT?NULL',
????????'password_hash'?=>?Schema::?TYPE_STRING?.?'?NOT?NULL'
????],?null);
}

然后,保證我可以反向遷移,下面我將添加down?方法:

public?function?down()
{
$this->dropTable('user');
}

創(chuàng)建該表將會簡單包括一個在運行在命令行的命令:

./yii?migrate

然后移除該表:

./yii?migrate/down

7、容易調(diào)整為最佳性能

大家都知道,一個網(wǎng)站很慢的話會很容易讓用戶產(chǎn)生不滿,所以Yii提供了幾種工具來幫助你從應(yīng)用中“擠”出更多的速度。

所有Yii的緩存組件都是從yii/caching/Cache擴展來的,你可以選擇任何一種,你想同時使用一個通用API擴展的緩存系統(tǒng)。你甚至可以注冊多個高速緩存組件。Yii目前支持數(shù)據(jù)庫和文件緩存,APC,Memcache,?Redis,?WinCache,?XCache和Zend?數(shù)據(jù)緩存。

默認情況下,如果你正在使用Active?Record,然后Yii會運行一個額外的查詢,來確定表參與生成模型的架構(gòu)。你可以通過編輯注配置文件設(shè)置應(yīng)用程序,從而緩存這些架構(gòu):

return?[
????//?...
????'components'?=>?[
????????//?...
????????'db'?=>?[
????????????//?...
????????????'enableSchemaCache'?=>?true,
????????????'schemaCacheDuration'?=>?3600,
????????????'schemaCache'?=>?'cache',
????????],
????????'cache'?=>?[
????????????'class'?=>?'yii\caching\FileCache',
????????],
????],
];

最后,Yii有一個命令行工具,使前端資源極簡化更容易。只需運行以下命令來生成配置模板:

./yii?asset/template?config.php

然后,編輯該配置來指定工具,達到你想要的簡化效果(如關(guān)閉編譯器,?YUI?Compressor,或UglifyJS)。生成的配置模板,如下所示:

<?php
    return [
        &#39;jsCompressor&#39; =>?'java?-jar?compiler.jar?--js?{from}?--js_output_file?{to}',
????????'cssCompressor'?=>?'java?-jar?yuicompressor.jar?--type?css?{from}?-o?{to}',
????????'bundles'?=>?[
????????????//?'yii\web\YiiAsset',
????????????//?'yii\web\JqueryAsset',
????????],
????????'targets'?=>?[
????????????'app\config\AllAsset'?=>?[
????????????????'basePath'?=>?'path/to/web',
????????????????'baseUrl'?=>?'',
????????????????'js'?=>?'js/all-{hash}.js',
????????????????'css'?=>?'css/all-{hash}.css',
????????????],
????????],
????????'assetManager'?=>?[
????????????'basePath'?=>?__DIR__,
????????????'baseUrl'?=>?'',
????????],
????];

接著,運行此控制臺命令來實現(xiàn)壓縮:

'components'?=>?[
????//?...
????'assetManager'?=>?[
????????'bundles'?=>?require?'/app/assets_compressed.php'
????]
]

注意:你必須要手動下載和安裝這些外部工具。

結(jié)論:

像任何一個好的框架一樣,Yii能夠幫助你快速創(chuàng)建流行的web應(yīng)用,并確保它們可以做的很好。通過做許多繁瑣的事情,它幫你你創(chuàng)建安全的和可測試的網(wǎng)站。你可以輕松的使用它提供的大部分功能,或者你也可以修改其中任何一個來適應(yīng)你的需求。真心建議你在你的下一個web項目中考慮一下它!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Middleware du framework Yii?: prise en charge de plusieurs stockages de données pour les applications Middleware du framework Yii?: prise en charge de plusieurs stockages de données pour les applications Jul 28, 2023 pm 12:43 PM

Middleware du framework Yii?: fournir une prise en charge de plusieurs stockages de données pour les applications Introduction Le middleware (middleware) est un concept important dans le framework Yii, qui fournit une prise en charge de plusieurs stockages de données pour les applications. Le middleware agit comme un filtre, insérant du code personnalisé entre les requêtes et les réponses d'une application. Grace au middleware, nous pouvons traiter, vérifier, filtrer les demandes, puis transmettre les résultats traités au middleware suivant ou au gestionnaire final. Le middleware du framework Yii est très simple à utiliser

Yii Framework Middleware?: ajoutez des fonctionnalités de journalisation et de débogage à votre application Yii Framework Middleware?: ajoutez des fonctionnalités de journalisation et de débogage à votre application Jul 28, 2023 pm 08:49 PM

Middleware du framework Yii?: ajouter des fonctionnalités de journalisation et de débogage aux applications [Introduction] Lors du développement d'applications Web, nous devons généralement ajouter des fonctionnalités supplémentaires pour améliorer les performances et la stabilité de l'application. Le framework Yii fournit le concept de middleware qui nous permet d'effectuer certaines taches supplémentaires avant et après que l'application traite la requête. Cet article explique comment utiliser la fonction middleware du framework Yii pour implémenter les fonctions de journalisation et de débogage. [Qu'est-ce qu'un middleware] Le middleware fait référence au traitement des demandes et des réponses avant et après que l'application traite la demande.

Comment utiliser le framework Yii en PHP Comment utiliser le framework Yii en PHP Jun 27, 2023 pm 07:00 PM

Avec le développement rapide des applications Web, le développement Web moderne est devenu une compétence importante. De nombreux frameworks et outils sont disponibles pour développer des applications web efficaces, parmi lesquels le framework Yii est très populaire. Yii est un framework PHP hautes performances basé sur des composants qui utilise les derniers modèles de conception et technologies, fournit des outils et des composants puissants et est idéal pour créer des applications Web complexes. Dans cet article, nous verrons comment utiliser le framework Yii pour créer des applications Web. Installez d'abord le framework Yii,

étapes pour mettre en ?uvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii étapes pour mettre en ?uvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Jul 30, 2023 am 09:22 AM

étapes pour mettre en ?uvre la mise en cache et la segmentation de pages Web à l'aide du framework Yii Introduction?: Au cours du processus de développement Web, afin d'améliorer les performances et l'expérience utilisateur du site Web, il est souvent nécessaire de mettre en cache et de fragmenter la page. Le framework Yii fournit de puissantes fonctions de mise en cache et de mise en page, qui peuvent aider les développeurs à mettre en ?uvre rapidement la mise en cache et la segmentation de pages Web. Cet article explique comment utiliser le framework Yii pour implémenter la mise en cache et la segmentation de pages Web. 1. Activez la mise en cache des pages Web Dans le framework Yii, la mise en cache des pages Web peut être activée via le fichier de configuration. Ouvrez le fichier de configuration principal co

Comment utiliser des contr?leurs pour gérer les requêtes Ajax dans le framework Yii Comment utiliser des contr?leurs pour gérer les requêtes Ajax dans le framework Yii Jul 28, 2023 pm 07:37 PM

Dans le framework Yii, les contr?leurs jouent un r?le important dans le traitement des requêtes. En plus de gérer les requêtes de pages régulières, les contr?leurs peuvent également être utilisés pour gérer les requêtes Ajax. Cet article expliquera comment gérer les requêtes Ajax dans le framework Yii et fournira des exemples de code. Dans le framework Yii, le traitement des requêtes Ajax peut s'effectuer à travers les étapes suivantes : La première étape consiste à créer une classe contr?leur (Controller). Vous pouvez hériter de la classe de contr?leur de base yiiwebCo fournie par le framework Yii

Outils de débogage dans le framework Yii?: applications de profilage et de débogage Outils de débogage dans le framework Yii?: applications de profilage et de débogage Jun 21, 2023 pm 06:18 PM

Dans le développement d’applications Web modernes, les outils de débogage sont indispensables. Ils aident les développeurs à trouver et à résoudre divers problèmes liés à leurs applications. En tant que framework d'application Web populaire, le framework Yii fournit naturellement des outils de débogage. Cet article se concentrera sur les outils de débogage du framework Yii et expliquera comment ils nous aident à analyser et déboguer les applications. GiiGii est un générateur de code pour le framework Yii. Il peut générer automatiquement du code pour les applications Yii, telles que des modèles, des contr?leurs, des vues, etc. En utilisant Gii,

Crypter et décrypter les données sensibles à l'aide du middleware du framework Yii Crypter et décrypter les données sensibles à l'aide du middleware du framework Yii Jul 28, 2023 pm 07:12 PM

Cryptage et déchiffrement des données sensibles à l'aide du middleware du framework Yii Introduction : Dans les applications Internet modernes, la confidentialité et la sécurité des données sont des problèmes très importants. Pour garantir que les données sensibles des utilisateurs ne soient pas accessibles à des visiteurs non autorisés, nous devons chiffrer ces données. Le framework Yii nous offre un moyen simple et efficace de mettre en ?uvre les fonctions de cryptage et de décryptage des données sensibles. Dans cet article, nous expliquerons comment y parvenir en utilisant le middleware du framework Yii. Introduction au framework Yii Le framework Yii est un framework PHP hautes performances.

Yii Interview Questions: Ace Your PHP Framework Interview Yii Interview Questions: Ace Your PHP Framework Interview Apr 06, 2025 am 12:20 AM

Lorsque vous vous préparez à une entrevue avec YII Framework, vous devez conna?tre les principaux points de connaissances suivants: 1. Architecture MVC: Comprendre le travail collaboratif des modèles, des vues et des contr?leurs. 2. ActiveRecord: ma?triser l'utilisation des outils ORM et simplifier les opérations de base de données. 3. Widgets et aides: familier avec les composants et les fonctions d'assistance intégrés, et créez rapidement l'interface utilisateur. La ma?trise de ces concepts de base et des meilleures pratiques vous aidera à vous démarquer dans l'entretien.

See all articles