Yii2 Day 6: 创建Widget

Yii1的项目中,积累了大量小部件,为了在Yii2中使用,需要做一些必要的修改。

Assets管理

在Yii1的时候,Assets的管理是通过文件方式,通常的做法是在Wiget文件夹中建立一个assets的文件夹,把js,css, 图像,字体等放到这个文件夹下,然后通过下面的代码发布到web目录下:

$assets = dirname(__FILE__) . ‘/assets‘;
 $baseUrl = Yii::app()->assetManager->publish($assets);
 Yii::app()->clientScript->registerScriptFile($baseUrl . ‘/simple.js‘, CClientScript::POS_END);
 Yii::app()->clientScript->registerCssFile($baseUrl . ‘/simple.css‘);

到了Yii2后,发现没有clientScript组件了,取而代之的是Assetbundle,即资源包的概念。要实现上面几行同样的功能,需要建立资源包类,然后类定义如下:

public $sourcePath = ‘@app/modules/attach/widgets/singleUploader/assets‘;
public $js = [
    ‘simple.js‘,
];
public $css = [
    ‘simple.css‘,
];
public $depends = [
     ‘yii\web\JqueryAsset‘,
];

资源包依赖

把js文件,css文件,以数组的方式赋值给这个Bundle类。简而言之,就是以OO的方式解决资源包的管理问题。$depends成员变量特别值得注意,它定义了这个资源包的依赖关系。比如上面这个定义,依赖于Jquery库,直接引入一个JqueryAsset资源包依赖就可以了,这样就避免了在多个Widget里存放多份Jquery文件的尴尬。

注册资源包

定义资源包后,在小部件的run方法里调用注册,如下:

$view = $this->getView();
 UploaderAsset::register($view);

这样就完成了资源文件的拷贝过程,比1.x相比,管理上更方便了。

调用小部件

调用过程和1.x一样,只是现在流行用静态调用,方便IDE代码自动提示,效率进一步得到提升:

use app\modules\attach\widgets\singleUploader\SingleUploadWidget;
echo SingleUploadWidget::widget([‘ctrlName‘=>‘user_file‘]);
时间: 2024-10-20 00:08:42

Yii2 Day 6: 创建Widget的相关文章

创建 widget 窗口小组件

随着android的手机屏幕越来越大,为了丰富屏幕内容 app widget(窗口小组件)被越来越多的应用所使用.app widget 有什么好处呢?它可以在不启动应用程序的情况下,让用户在屏幕上有一块交互窗口和程序入口点. 这是我手机自带的天气预报app widget效果. 为了创建一个应用程序的widget我们需要创建三个组件: (1)给widget创建一个布局资源. res/layout/nview.xml <?xml version="1.0" encoding=&quo

yii2 模块的创建及使用

yii2 模型创建可以通过gii工具创建,方便快速yii2 可以在项目的根目录创建一个modules文件夹存放各个模块,当然,每个模块里还可以再创建模块 一.直接在项目根目录创建一个模块 看截图-->然后点击 Preview(预览)-->generate(生成) 即可生成payment模块 此时别忘了一个操作!!!!!!!!!!!!!!上面提示把模型的命名空间添加入配置文件:对于basic版本来说,打开web.php,把下面的映射关系添加入$config 数组里 'modules' =>

YII2框架动态创建表模型

在YII2中,每个表对应一个model类 在开发过程中,我们在填写一个大型表单的时候,表单里有N个select下拉列表,每个下拉select来自于不同的表: 如果要在程序里用实例化引入这些model类,估计又是N个use引用,而且还需要写查询方法. 所以铁牛在使用过程中,就思考能否创建动态表模型来应用到我们的开发中. 代码见下: namespace backend\classes; //创建动态表模型 //在使用调用某些表数据的时候,勿需创建模型既可调用表数据,生成select //$selec

yii2.0 如何创建from表单

好久没有回顾yii2了,现在回想,已经不记得原来是怎么做的了,现在写在这里,也不怕忘了 首先,我们得创建一个模型,根据官网 先将通读一下,不然很多都不知道为什么 ,简单完整的模型 namespace app\models;use yii\base\Model;class EntryForm extends Model{ public $name; public $email; public function rules(){ return[ [['name','email'],'required

Magento 2 创建 Widget

Widget是一个更好的工具,可以将内容插入或编辑到CMS页面块或页面中. 什么是小部件? 小部件是Magento 2配置中的强大功能.作为商店管理员,您可以利用小部件来改善生动界面下的店面.小部件允许显示静态信息或动态内容营销.我想说明一些Magento小部件的实现,例如: 动态产品数据 最近查看的产品的动态列表 促销横幅 交互式导航元素和动作块 插入内容页面的动态Flash元素 如何在Magento 2中创建小部件? 在Magento 2中创建小部件的概述 第1步:声明小部件 第2步:创建窗

yii2.0安装创建应用shiyong 归档文件安装

环境是wamp在本机开发 http://www.yiiframework.com/download/ Install from an Archive File Download one of the following archive files, and then extract it to a Web-accessible folder: Yii 2 with basic application template Yii 2 with advanced application templat

Android开发之创建App Wiget和更新Widget内容

App WidgetsApp Widgets are miniature application views that can be embedded in other applications (such as the Home screen) and receive periodic updates. These views are referred to as Widgets in the user interface, and you can publish one with an Ap

Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》

打开谷歌api,对widget小部件做如下说明: App Widgets are miniature application views that can be embedded in otherapplications(such as the Home screen) and receive periodic updates. These views arereferred to as Widgets in the user interface,and you can publish one

Yii2系列教程三:Database And Gii

上一篇文章我们理了一下Yii2的MVC,Forms和Layouts,这篇文章就直接按照约定来说说Yii2与数据库相关的一些事情,如果你觉得不够的话,不急,更具体的用法我会在后续的教程给出,并且这里也会介绍Yii2的代码生成工具:强大的Gii. 你可以直接到Github下载项目源码:https://github.com/JellyBool/helloYii,这样你就可以直接跟上我的进度了,每一次我写完一个教程,我都会将代码push到Github,所以,你想偷懒的话,这是一个不错的方法. 接着上一篇