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

ホームページ PHPフレームワーク YII yii フレームワークを選択した理由は何ですか?

yii フレームワークを選択した理由は何ですか?

Sep 03, 2020 pm 03:56 PM
yii フレームワーク

yii フレームワークを選択した理由は何ですか?

# yii フレームワークを選択する 7 つの理由:

(推奨チュートリアル:

yii フレームワーク)

1. 簡単なインストール

Web 開発者にとって、時(shí)は金なりです。面倒なインストールや構(gòu)成に時(shí)間を無駄にしたくない人はいません。

Composer がインストール プロセスを処理します。インストール プロセスの説明が必要な場合は、Sitepoint が最近これに関する記事を公開しました。以下で読むことができます。サイトにフロントエンドとバックエンドのコンポーネントが別々にある場合でも、私は基本的なアプリ テンプレートを使い続けることを好みます。代わりに、サイトのバックエンド部分にモジュールを使用することにしました。 (Yii モジュールは、メインアプリケーションに埋め込むために使用される、ミニアプリケーションを最もよく表現(xiàn)したものです。)

注: 次の例の多くは、単純なディレクトリ參照を使用しています。テンプレート。

2. 最新のテクノロジーを使用する

Yii は、PHP のその他の機(jī)能の一部を最大限に活用する純粋な OOP フレームワークです。高度な機(jī)能には、遅延靜的バインディング、SPL クラスとインターフェイス、匿名関數(shù)が含まれます。

すべてのクラスは名前空間と呼ばれ、PSR-4 準(zhǔn)拠のオートローダーを利用できるようになります。言い換えれば、Yii に HTML 補(bǔ)助クラスを含めると、同様に単純になります。

use?yii\helpers\Html;

Yii は、名前空間を簡素化するためにエイリアスを定義することもできます。上の例では、 use ステートメントはクラス定義をロードし、ディレクトリ內(nèi)のデフォルトのパスは /vendor/yiisoft/yii2/helpers です。このエイリアスは、BaseYii クラスの 79 行目で定義されています。

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

フレームワーク自體は、その拡張機(jī)能と同様に Composer を使用してインストールされます。拡張機(jī)能の公開は、composer.json を作成し、コードを Github でホストし、拡張機(jī)能を Packagist にリストするだけで簡単です。 Yii は、ネームスペースを簡素化するためにエイリアスを定義することもできます。上の例では、 use ステートメントはクラス定義をロードし、ディレクトリ內(nèi)のデフォルトのパスは /vendor/yiisoft/yii2/helpers です。このエイリアスは、BaseYii クラスの 79 行目で定義されています:

3. 高度なスケーラビリティ

Yii Justスーツのように大きく見えますが、実際にはニーズに合わせて簡単に調(diào)整できます。フレームワークのほぼすべてのコンポーネントは拡張可能です。簡単な例は、ビューに一意の本文 ID を追加することです。 (これを行う理由を知りたい場合は、この記事を參照してください)

まず、アプリで行います。 \components View.php というファイルを作成し、次の內(nèi)容を追加します。

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?.'"'?:?'';
????}
?
}

次に、メイン レイアウト ファイル (app \ views\layouts\main.php)、HTML の body タグに次の內(nèi)容を追加したいと考えています: BodyIdAttribute?>>

最後に、Yii がデフォルトの View クラスの代わりに拡張 View クラスを使用できるように、次の內(nèi)容をメイン設(shè)定ファイルに追加します。 #4 、テストを奨勵する

#Yii と Codeception は密接に関係しています。 Codeception は、アプリケーションのウィジェット、機(jī)能テスト、受け入れテストの作成プロセスを簡素化するのに役立つ素晴らしい PHP テスト フレームワークです。あなたが作成するすべてのアプリケーションは自動テストだからです。

Codeception 拡張機(jī)能を使用すると、テスト中のアプリケーションの構(gòu)成が簡単になります。 /tests/_config.php ファイルを指定するだけで、テスト プログラムを構(gòu)成できます。例えば:######
return[
????'components'=>?[
????????'mail'=>?[
????????????'useFileTransport'=>?true,
????????],
????????'urlManager'=>?[
????????????'showScriptName'=>?true,
????????],
????????'db'=>?[
????????????????'dsn'=>?'mysql:host=localhost;dbname=mysqldb_test',
????????],
????],
];

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

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

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

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

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

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

5、簡化安全性

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

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

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

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

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

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

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

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

這兩種授權(quán)方法,較簡單的要數(shù)ACF了,它是通過在你的控制器中添加以下行為方法來實(shí)現(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?行為。(??是一個(gè)匿名用戶別名,@?指的是已認(rèn)證用戶)。

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

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

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

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

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

·模型

·控制器

·形式

·模塊

·擴(kuò)展

·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ā)的時(shí)候,Gii僅支持加載,并且它只通過本地主機(jī)訪問時(shí)才會加載。

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


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

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

yii?migrate/create?create_user_table

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

<?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)建該表將會簡單包括一個(gè)在運(yùn)行在命令行的命令:

./yii?migrate

然后移除該表:

./yii?migrate/down

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

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

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

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

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

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

./yii?asset/template?config.php

然后,編輯該配置來指定工具,達(dá)到你想要的簡化效果(如關(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'?=>?'',
????????],
????];

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

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

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

結(jié)論:

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

以上がyii フレームワークを選択した理由は何ですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Yii フレームワークミドルウェア: アプリケーションに複數(shù)のデータストレージサポートを提供 Yii フレームワークミドルウェア: アプリケーションに複數(shù)のデータストレージサポートを提供 Jul 28, 2023 pm 12:43 PM

Yii フレームワークのミドルウェア: アプリケーションに複數(shù)のデータ ストレージのサポートを提供する はじめに ミドルウェア (ミドルウェア) は、Yii フレームワークの重要な概念であり、アプリケーションに複數(shù)のデータ ストレージのサポートを提供します。ミドルウェアはフィルターのように機(jī)能し、アプリケーションのリクエストとレスポンスの間にカスタム コードを挿入します。ミドルウェアを通じて、リクエストを処理、検証、フィルタリングし、処理された結(jié)果を次のミドルウェアまたは最終ハンドラーに渡すことができます。 Yii フレームワークのミドルウェアは非常に使いやすいです

Yii Framework Middleware: アプリケーションにロギング機(jī)能とデバッグ機(jī)能を追加します。 Yii Framework Middleware: アプリケーションにロギング機(jī)能とデバッグ機(jī)能を追加します。 Jul 28, 2023 pm 08:49 PM

Yii フレームワーク ミドルウェア: アプリケーションにロギング機(jī)能とデバッグ機(jī)能を追加する [はじめに] Web アプリケーションを開発する場合、通常、アプリケーションのパフォーマンスと安定性を向上させるために、いくつかの機(jī)能を追加する必要があります。 Yii フレームワークは、アプリケーションがリクエストを処理する前後にいくつかの追加タスクを?qū)g行できるようにするミドルウェアの概念を提供します。この記事では、Yii フレームワークのミドルウェア機(jī)能を使用してロギングとデバッグ機(jī)能を?qū)g裝する方法を紹介します。 【ミドルウェアとは】 ミドルウェアとは、アプリケーションがリクエストを処理する前後のリクエストとレスポンスの処理を指します。

PHP で Yii フレームワークを使用する方法 PHP で Yii フレームワークを使用する方法 Jun 27, 2023 pm 07:00 PM

Web アプリケーションの急速な開発に伴い、最新の Web 開発は重要なスキルになりました。効率的な Web アプリケーションを開発するために多くのフレームワークやツールが利用できますが、その中でも Yii フレームワークは非常に人気のあるフレームワークです。 Yii は、最新のデザインパターンとテクノロジーを使用し、強(qiáng)力なツールとコンポーネントを提供し、複雑な Web アプリケーションの構(gòu)築に最適な、高性能のコンポーネントベースの PHP フレームワークです。この記事では、Yii フレームワークを使用して Web アプリケーションを構(gòu)築する方法について説明します。まずYiiフレームワークをインストールし、

Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを?qū)g裝する手順 Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを?qū)g裝する手順 Jul 30, 2023 am 09:22 AM

Yii フレームワークを使用して Web ページのキャッシュとページのチャンクを?qū)g裝する手順 はじめに: Web 開発プロセス中、Web サイトのパフォーマンスとユーザー エクスペリエンスを向上させるために、多くの場合、ページのキャッシュとチャンクが必要になります。 Yii フレームワークは強(qiáng)力なキャッシュとレイアウト機(jī)能を提供しており、開発者が Web ページのキャッシュとページ チャンキングを迅速に実裝できるようにします。この記事では、Yii フレームワークを使用して Web ページのキャッシュとページ チャンキングを?qū)g裝する方法を紹介します。 1. Web ページのキャッシュをオンにする Yii フレームワークでは、設(shè)定ファイルを通じて Web ページのキャッシュをオンにすることができます。メイン設(shè)定ファイルを開きます。

Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Jul 28, 2023 pm 07:37 PM

Yii フレームワークでは、コントローラーはリクエストの処理において重要な役割を果たします。通常のページ リクエストの処理に加えて、コントローラーを使用して Ajax リクエストを処理することもできます。この記事では、Yii フレームワークで Ajax リクエストを処理する方法を紹介し、コード例を示します。 Yii フレームワークでは、Ajax リクエストの処理は次の手順で実行できます。 最初の手順は、コントローラー (Controller) クラスを作成することです。 Yii フレームワークが提供する基本コントローラークラス yiiwebCo を継承できます。

Yii Framework のデバッグツール: アプリケーションのプロファイリングとデバッグ Yii Framework のデバッグツール: アプリケーションのプロファイリングとデバッグ Jun 21, 2023 pm 06:18 PM

現(xiàn)代の Web アプリケーション開発では、デバッグ ツールが不可欠です。これらは、開発者がアプリケーションに関するさまざまな問題を見つけて解決するのに役立ちます。人気のある Web アプリケーション フレームワークとして、Yii フレームワークは當(dāng)然ながらいくつかのデバッグ ツールを提供します。この記事では、Yii フレームワークのデバッグ ツールに焦點(diǎn)を當(dāng)て、それらがアプリケーションの分析とデバッグにどのように役立つかについて説明します。 GiiGii は、Yii フレームワークのコード ジェネレーターです。モデル、コントローラー、ビューなどの Yii アプリケーションのコードを自動的に生成できます。ギィを使って、

Yii フレームワークミドルウェアを使用して機(jī)密データを暗號化および復(fù)號化する Yii フレームワークミドルウェアを使用して機(jī)密データを暗號化および復(fù)號化する Jul 28, 2023 pm 07:12 PM

Yii フレームワークミドルウェアを使用した機(jī)密データの暗號化と復(fù)號化 はじめに: 最新のインターネット アプリケーションでは、プライバシーとデータ セキュリティが非常に重要な問題です。ユーザーの機(jī)密データに権限のない訪問者がアクセスできないようにするには、このデータを暗號化する必要があります。 Yii フレームワークは、機(jī)密データの暗號化と復(fù)號化の機(jī)能を?qū)g裝するためのシンプルかつ効果的な方法を提供します。この記事では、Yii フレームワークのミドルウェアを使用してこれを?qū)g現(xiàn)する方法について説明します。 Yii フレームワークの概要 Yii フレームワークは、高性能の PHP フレームワークです。

YIIインタビューの質(zhì)問:PHPフレームワークのインタビューをエース YIIインタビューの質(zhì)問:PHPフレームワークのインタビューをエース Apr 06, 2025 am 12:20 AM

YIIフレームワークへのインタビューの準(zhǔn)備をするときは、次の重要な知識ポイントを知る必要があります。1。MVCアーキテクチャ:モデル、ビュー、コントローラーの共同作業(yè)を理解してください。 2。ActiverCord:ORMツールの使用をマスターし、データベース操作を簡素化します。 3。ウィジェットとヘルパー:組み込みのコンポーネントとヘルパー機(jī)能に精通し、ユーザーインターフェイスをすばやく構(gòu)築します。これらのコアの概念とベストプラクティスを習(xí)得することは、インタビューで際立っています。

See all articles