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

目錄
詳解PHP的Yii框架中自帶的前端資源包的使用,yii框架
您可能感興趣的文章:
首頁 后端開發(fā) php教程 詳解PHP的Yii框架中自帶的前端資源包的使用,yii框架_PHP教程

詳解PHP的Yii框架中自帶的前端資源包的使用,yii框架_PHP教程

Jul 12, 2016 am 08:55 AM
php yii

詳解PHP的Yii框架中自帶的前端資源包的使用,yii框架

Yii中的資源是和Web頁面相關的文件,可為CSS文件,JavaScript文件,圖片或視頻等, 資源放在Web可訪問的目錄下,直接被Web服務器調(diào)用。

通過程序自動管理資源更好一點,例如,當你在頁面中使用 yii\jui\DatePicker 小部件時, 它會自動包含需要的CSS和JavaScript文件,而不是要求你手工去找到這些文件并包含, 當你升級小部件時,它會自動使用新版本的資源文件,在本教程中,我們會詳述Yii提供的強大的資源管理功能。

資源包

Yii在資源包中管理資源,資源包簡單的說就是放在一個目錄下的資源集合, 當在視圖中注冊一個資源包,在渲染W(wǎng)eb頁面時會包含包中的CSS和JavaScript文件。

定義資源包

資源包指定為繼承yii\web\AssetBundle的PHP類,包名為可自動加載的PHP類名, 在資源包類中,要指定資源所在位置,包含哪些CSS和JavaScript文件以及和其他包的依賴關系。

如下代碼定義基礎應用模板使用的主要資源包:

<&#63;php

namespace app\assets;

use yii\web\AssetBundle;

class AppAsset extends AssetBundle
{
 public $basePath = '@webroot';
 public $baseUrl = '@web';
 public $css = [
  'css/site.css',
 ];
 public $js = [
 ];
 public $depends = [
  'yii\web\YiiAsset',
  'yii\bootstrap\BootstrapAsset',
 ];
}

如上AppAsset 類指定資源文件放在 @webroot 目錄下,對應的URL為 @web,資源包中包含一個CSS文件 css/site.css,沒有JavaScript文件, 依賴其他兩個包 yii\web\YiiAsset 和 yii\bootstrap\BootstrapAsset, 關于yii\web\AssetBundle 的屬性的更多詳細如下所述:

  • yii\web\AssetBundle::sourcePath: 指定包包含資源文件的根目錄, 當根目錄不能被Web訪問時該屬性應設置,否則,應設置 yii\web\AssetBundle::basePath 屬性和yii\web\AssetBundle::baseUrl。 路徑別名 可在此處使用;
  • yii\web\AssetBundle::basePath: 指定包含資源包中資源文件并可Web訪問的目錄, 當指定yii\web\AssetBundle::sourcePath 屬性, 資源管理器 會發(fā)布包的資源到一個可Web訪問并覆蓋該屬性, 如果你的資源文件在一個Web可訪問目錄下,應設置該屬性,這樣就不用再發(fā)布了。 路徑別名 可在此處使用。

yii\web\AssetBundle::baseUrl: 指定對應到y(tǒng)ii\web\AssetBundle::basePath目錄的URL, 和 yii\web\AssetBundle::basePath 類似,如果你指定 yii\web\AssetBundle::sourcePath 屬性, 資源管理器 會發(fā)布這些資源并覆蓋該屬性,路徑別名 可在此處使用。
yii\web\AssetBundle::js: 一個包含該資源包JavaScript文件的數(shù)組,注意正斜杠"/"應作為目錄分隔符, 每個JavaScript文件可指定為以下兩種格式之一:

  • 相對路徑表示為本地JavaScript文件 (如 js/main.js),文件實際的路徑在該相對路徑前加上 yii\web\AssetManager::basePath,文件實際的URL在該路徑前加上yii\web\AssetManager::baseUrl。
  • 絕對URL地址表示為外部JavaScript文件,如 http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js 或//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js.
  • yii\web\AssetBundle::css: 一個包含該資源包JavaScript文件的數(shù)組,該數(shù)組格式和 yii\web\AssetBundle::js 相同。
  • yii\web\AssetBundle::depends: 一個列出該資源包依賴的其他資源包(后兩節(jié)有詳細介紹)。
  • yii\web\AssetBundle::jsOptions: 當調(diào)用yii\web\View::registerJsFile()注冊該包 每個 JavaScript文件時, 指定傳遞到該方法的選項。
  • yii\web\AssetBundle::cssOptions: 當調(diào)用yii\web\View::registerCssFile()注冊該包 每個 css文件時, 指定傳遞到該方法的選項。
  • yii\web\AssetBundle::publishOptions: 當調(diào)用yii\web\AssetManager::publish()發(fā)布該包資源文件到Web目錄時 指定傳遞到該方法的選項,僅在指定了yii\web\AssetBundle::sourcePath屬性時使用。

資源位置

資源根據(jù)它們的位置可以分為:

源資源: 資源文件和PHP源代碼放在一起,不能被Web直接訪問,為了使用這些源資源,它們要拷貝到一個可Web訪問的Web目錄中 成為發(fā)布的資源,這個過程稱為發(fā)布資源,隨后會詳細介紹。
發(fā)布資源: 資源文件放在可通過Web直接訪問的Web目錄中;
外部資源: 資源文件放在你的Web應用不同的Web服務器上;
當定義資源包類時候,如果你指定了yii\web\AssetBundle::sourcePath 屬性,就表示任何使用相對路徑的資源會被 當作源資源;如果沒有指定該屬性,就表示這些資源為發(fā)布資源(因此應指定yii\web\AssetBundle::basePath 和 yii\web\AssetBundle::baseUrl 讓Yii知道它們的位置)。

推薦將資源文件放到Web目錄以避免不必要的發(fā)布資源過程,這就是之前的例子指定 yii\web\AssetBundle::basePath 而不是 yii\web\AssetBundle::sourcePath.

對于 擴展來說,由于它們的資源和源代碼都在不能Web訪問的目錄下, 在定義資源包類時必須指定yii\web\AssetBundle::sourcePath屬性。

注意: yii\web\AssetBundle::sourcePath 屬性不要用@webroot/assets,該路徑默認為 yii\web\AssetManager資源管理器將源資源發(fā)布后存儲資源的路徑,該路徑的所有內(nèi)容會認為是臨時文件, 可能會被刪除。
資源依賴

當Web頁面包含多個CSS或JavaScript文件時,它們有一定的先后順序以避免屬性覆蓋, 例如,Web頁面在使用jQuery UI小部件前必須確保jQuery JavaScript文件已經(jīng)被包含了, 我們稱這種資源先后次序稱為資源依賴。

資源依賴主要通過yii\web\AssetBundle::depends 屬性來指定, 在AppAsset 示例中,資源包依賴其他兩個資源包: yii\web\YiiAsset 和 yii\bootstrap\BootstrapAsset 也就是該資源包的CSS和JavaScript文件要在這兩個依賴包的文件包含 之后 才包含。

資源依賴關系是可傳遞,也就是人說A依賴B,B依賴C,那么A也依賴C。

資源選項

可指定yii\web\AssetBundle::cssOptions 和 yii\web\AssetBundle::jsOptions 屬性來自定義頁面包含CSS和JavaScript文件的方式, 這些屬性值會分別傳遞給 yii\web\View::registerCssFile() 和 yii\web\View::registerJsFile() 方法, 在視圖 調(diào)用這些方法包含CSS和JavaScript文件時。

注意: 在資源包類中設置的選項會應用到該包中 每個 CSS/JavaScript 文件,如果想對每個文件使用不同的選項, 應創(chuàng)建不同的資源包并在每個包中使用一個選項集。
例如,只想IE9或更高的瀏覽器包含一個CSS文件,可以使用如下選項:

public $cssOptions = ['condition' => 'lte IE9'];

這會是包中的CSS文件使用以下HTML標簽包含進來:

<!--[if lte IE9]>
<link rel="stylesheet" href="path/to/foo.css">
<![endif]-->

為鏈接標簽包含

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何防止PHP中的跨站點偽造偽造(CSRF)攻擊? 如何防止PHP中的跨站點偽造偽造(CSRF)攻擊? Jun 28, 2025 am 02:25 AM

TopreventCSRFattacksinPHP,implementanti-CSRFtokens.1)Generateandstoresecuretokensusingrandom_bytes()orbin2hex(random_bytes(32)),savethemin$_SESSION,andincludetheminformsashiddeninputs.2)ValidatetokensonsubmissionbystrictlycomparingthePOSTtokenwiththe

如何將兩個PHP陣列組合獨特的值? 如何將兩個PHP陣列組合獨特的值? Jul 02, 2025 pm 05:18 PM

要合并兩個PHP數(shù)組并保留唯一值,有兩種主要方法。1.對于索引數(shù)組或僅需值去重的情況,使用array_merge和array_unique組合:先用array_merge($array1,$array2)合并數(shù)組,再用array_unique()去重,最終得到包含所有唯一值的新數(shù)組;2.對于關聯(lián)數(shù)組且希望保留第一個數(shù)組中的鍵值對時,使用 運算符:$result=$array1 $array2,這將確保第一個數(shù)組中的鍵不會被第二個數(shù)組覆蓋。這兩種方法分別適用于不同場景,根據(jù)是否需要保留鍵名或只關注

如何使用PHP退出功能? 如何使用PHP退出功能? Jul 03, 2025 am 02:15 AM

exit()是PHP中用于立即終止腳本執(zhí)行的函數(shù),常見用途包括:1.在檢測到異常情況時提前終止腳本,如文件不存在或驗證失?。?.調(diào)試時輸出中間結果并停止執(zhí)行;3.結合header()重定向后調(diào)用exit()防止后續(xù)代碼執(zhí)行;此外,exit()可接受字符串參數(shù)作為輸出內(nèi)容或整數(shù)作為狀態(tài)碼,其別名為die()。

將語義結構應用于html的文章,部分和旁邊 將語義結構應用于html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語義化標簽能提升頁面結構清晰度、可訪問性和SEO效果。1.用于獨立內(nèi)容區(qū)塊,如博客文章或評論,需保持自包含性;2.用于歸類相關內(nèi)容,通常包含標題,適用于頁面不同模塊;3.用于與主內(nèi)容相關但非核心的輔助信息,如側邊欄推薦或作者簡介。實際開發(fā)中應結合、等標簽,避免過度嵌套,保持結構簡潔,并通過開發(fā)者工具驗證結構合理性。

如何訪問PHP中的會話數(shù)據(jù)? 如何訪問PHP中的會話數(shù)據(jù)? Jun 30, 2025 am 01:33 AM

在PHP中訪問會話數(shù)據(jù)需先啟動會話,再通過$_SESSION超全局數(shù)組進行操作。1.啟動會話必須使用session_start(),且該函數(shù)需在任何輸出前調(diào)用;2.訪問會話數(shù)據(jù)時應檢查鍵是否存在,可使用isset($_SESSION['key'])或array_key_exists('key',$_SESSION);3.設置或更新會話變量只需對$_SESSION數(shù)組賦值,無需手動保存;4.清除特定數(shù)據(jù)可用unset($_SESSION['key']),清空所有數(shù)據(jù)可設$_SESSION為空數(shù)組,

PHP中的遞歸功能是什么? PHP中的遞歸功能是什么? Jun 29, 2025 am 02:02 AM

遞歸函數(shù)在PHP中指自我調(diào)用的函數(shù),其核心要素是1.定義終止條件(基例),2.分解問題并遞歸調(diào)用自身(遞歸例)。它適用于處理分層結構、拆解重復子問題或提升代碼可讀性,如計算階乘、遍歷目錄等。但需注意內(nèi)存消耗及棧溢出風險。編寫時應明確退出條件、確保逐步逼近基例、避免冗余參數(shù)、優(yōu)先測試小輸入。例如掃描目錄時,函數(shù)遇子目錄即遞歸調(diào)用自身,直到所有層級遍歷完畢。

如何在PHP中創(chuàng)建數(shù)組? 如何在PHP中創(chuàng)建數(shù)組? Jul 02, 2025 pm 05:01 PM

在PHP中創(chuàng)建數(shù)組的方法有兩種:使用array()函數(shù)或使用中括號[]。1.使用array()函數(shù)是傳統(tǒng)方式,兼容性好,定義索引數(shù)組如$fruits=array("apple","banana","orange"),關聯(lián)數(shù)組如$user=array("name"=>"John","age"=>25);2.使用[]是從PHP5.4開始支持的更簡潔的方式,如$color

請求的操作需要高程窗戶 請求的操作需要高程窗戶 Jul 04, 2025 am 02:58 AM

遇到“此操作需要提升權限”提示時,說明你需要管理員權限才能繼續(xù)。解決方法包括:1.右鍵選擇“以管理員身份運行”程序或設置快捷方式始終以管理員身份運行;2.檢查當前賬戶是否為管理員賬戶,若不是則切換或請求管理員協(xié)助;3.用管理員權限打開命令提示符或PowerShell執(zhí)行相關命令;4.在必要時通過獲取文件所有權或修改注冊表等手段繞過限制,但此類操作需謹慎并充分了解風險。確認權限身份并嘗試上述方法通常可解決問題。

See all articles