推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

小部件(Widgets) · Yii 2.0 权威指南 · 看云

   2023-07-05 网络整理佚名840
核心提示:接下来介绍小部件的基本知识,如果你想了解某个小部件请参考对应的类API文档。小部件的视图文件默认存储在`/views`目录,``代表小部件类文件所在的目录。假如上述示例小部件类文件在`@app/`下,会渲染`@app//views/hello.可以覆盖yii\base\::()方法自定义视图文件所在路径。创建小部件时仍需要遵循MVC模式,通常逻辑代码在小部件类,展示内容在[视图]()中。

# 是 [view]() 中使用的可重用单元,使用面向对象的方法来创建复杂且可配置的用户界面单元。 例如,日期选择器小部件可以生成一个精美的日期选择器,允许用户选择日期,只需要在视图中插入以下代码:~~~~~~Yii 提供了许多优秀的小部件,例如 yii\ \, [yii\\Menu|menu]],[ UI ](),[ ](). 接下来我们就来介绍一下的基础知识。 如果您想了解某个,请参阅相应的类API文档。 ## 使用 基本都是在[views]()中使用,在view中可以调用yii\base\::()方法来使用。 该方法使用 []() 数组初始化小部件并返回小部件的渲染结果。 例如,以下代码插入一个日期选择器小部件,该小部件配置为使用俄语,输入框的内容是`$model`的`属性值。 ~~~~~~ 一些小部件可以在 yii\base\::begin() 和 yii\base\::end() 调用中使用数据内容。 有些可以使用 of 的块,例如,下面的代码使用 yii\\ 小部件生成登录表单,该小部件将生成开始标签和结束标签,中间的任何代码也将被渲染。 ~~~

~~~ 注意,与调用 yii\base\::() 返回渲染结果不同,调用 yii\base\::begin() 方法返回一个可以组成 内容的 实例。 ## 创建小部件 ## 继承 yii\base\ 类并重写 yii\base\::init() 和/或 yii\base\::run() 方法来创建小部件。 通常,“init()”方法处理小部件属性,“run()”方法包含小部件生成渲染结果的代码。 渲染结果可以直接“”输出,也可以在`run()`方法中以字符串形式返回。 在下面的代码中``编码并显示分配给``'的值,如果未分配该属性,则默认显示“Hello World”。 ~~~ app\;使用 yii\base\;使用 yii\\Html;class { $; init(){::init();if ($this-> === null) {$this-> = 'Hello World';}} run(){ Html::($this->);}} ~~~ 要使用这个小部件,只需在视图中使用以下代码:~~~~~~ 这是另一个可以在`begin()`和`end()`调用中使用的``,HTML对内容进行编码然后显示它。

~~~ app\;使用 yii\base\;使用 yii\\Html;class { init(){::init();();} run(){$ = (); html::($); }}~~~如上所示,PHP 输出缓冲是在 `init()` 处启动的,所有在 `init()` 和 `run()` 方法之间的输出内容都会被捕获,并在 `run()` 中处理和处理返回。 > 补充:当调用 yii\base\::begin() 时,将创建一个新的 实例,并在构造结束时调用 `init()` 方法,并在 `end 时调用 `run()` ()``方法并输出返回结果。 下面的代码展示了如何使用这个``:~~~ 那可能是~~~ 有时小部件需要渲染很多内容,更好的方法是将内容放入 [view]() 文件中,然后调用 yii 的 \base\::() 方法渲染视图文件,例如: ~~~ run(){ $this->('hello');}~~~ 小部件的视图文件存储在默认为`/views`目录,``代表类文件所在目录。

如果上面的示例小部件类文件位于`@app/`下,则将渲染`@app//views/hello.php`视图文件。 您可以重写 yii\base\::() 方法来自定义视图文件所在的路径。 ## 最佳实践小部件是一种重用视图代码的面向对象的方法。 创建小部件时,您仍然需要遵循 MVC 模式。 通常,逻辑代码在类中,显示内容在[view]()中。 应该被设计为独立的,这意味着当一个 被使用时,它可以被丢弃而无需额外的处理。 但是当需要外部资源,如CSS、图片等时,这就很棘手了。幸运的是,Yii提供了[资源包]()来解决这个问题。 当一个小部件只包含视图代码时,它与 [view]() 非常相似,事实上,这种情况下唯一的区别是小部件是一个可重用的类,而视图只是应用程序中使用的普通 PHP 脚本。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON