yii2.0 组件是什么

发布时间 - 2019-12-04 00:00:00    点击率:

组件是 Yii 应用的主要基石。是 yii\base\Component 类或其子类的实例。 三个用以区分它和其它类的主要功能有:

属性(Property)              (推荐学习:yii框架)

事件(Event)

行为(Behavior)

或单独使用,或彼此配合,这些功能的应用让 Yii 的类变得更加灵活和易用。 以小部件 yii\jui\DatePicker 来举例, 这是个方便你在 视图 中生成一个交互式日期选择器的 UI 组件:

use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

这个小部件继承自 yii\base\Component,它的各项属性改写起来会很容易。

正是因为组件功能的强大,他们比常规的对象(Object)稍微重量级一点,因为他们要使用额外的内存和 CPU 时间来处理 事件 和 行为 。 

如果你不需要这两项功能,可以继承 yii\base\Object 而不是 yii\base\Component。这样组件可以像普通 PHP 对象一样高效, 同时还支持属性(Property)功能。

当继承 yii\base\Component 或 yii\base\Object 时, 推荐你使用如下的编码风格:

若你需要重写构造方法(Constructor),传入 $config 作为构造器方法最后一个参数, 然后把它传递给父类的构造方法。

永远在你重写的构造方法结尾处调用一下父类的构造方法。

如果你重写了 yii\base\BaseObject::init() 方法,请确保你在 init 方法的开头处调用了父类的 init 方法。

另外,为了让组件可以在创建实例时能被正确配置,请遵照以下操作流程:

$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]);
// 方法二:
$component = \Yii::createObject([
    'class' => MyClass::className(),
    'prop1' => 3,
    'prop2' => 4,
], [1, 2])


# 你在  # 重写  # 如果你  # 子类  # 把它  # 写了  # 因为他们  # 会很  # 这是个  # 易用 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建二级域名独立网站?  如何在腾讯云服务器上快速搭建个人网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  图册素材网站设计制作软件,图册的导出方式有几种?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  js实现点击每个li节点,都弹出其文本值及修改  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  JS碰撞运动实现方法详解  Java类加载基本过程详细介绍  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  魔毅自助建站系统:模板定制与SEO优化一键生成指南  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  网站制作大概多少钱一个,做一个平台网站大概多少钱?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  java中使用zxing批量生成二维码立牌  如何快速查询网址的建站时间与历史轨迹?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何破解联通资金短缺导致的基站建设难题?  高性价比服务器租赁——企业级配置与24小时运维服务  企业网站制作这些问题要关注  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  大连 网站制作,大连天途有线官网?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何在IIS服务器上快速部署高效网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何在服务器上配置二级域名建站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  JavaScript模板引擎Template.js使用详解  简单实现Android验证码  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  iOS中将个别页面强制横屏其他页面竖屏