yii 自定义组件的调用
1,main.php 里面导入
'import' => array(
'application.components.*'
),
2,application/components/BaseComponent.php
<?php
/**
* 基础组件
*/
class BaseComponent extends CComponent
{
public function init()
{
}
}
3,application/components/TestComponent.php
<?php
class TestComponent extends BaseComponent {
public $title = 'aaxx';
private $_url = 'ccdd';
//这里的get方法和set方法写了之后就可以直接调用私有属性!如果不允许直接调用则去掉这两个方法
public function setUrl($value='') {
$this->_url = $value;
}
public function getUrl() {
return $this->_url ;
}
public function test()
{
return 'test';
}
}
4,application/components/Controller.php
class Controller extends CController
{
public function init()
{
header('Content-type:text/html;charset=utf-8');
}
/**
* __get()
* @see CComponent::__get()
*/
public function __get($name)
{
if(substr(strtolower($name), -4) == 'comp') {
return $this->getComponent($name);
} else if(isset($this->default_tpl_vars[$name])) {
return $this->default_tpl_vars[$name];
}
return parent::__get($name);
}
/**
* @desc 获取组件
* @author lijianwei
*/
public function getComponent($name)
{
$name = strtolower($name);
$component_id = substr($name, 0, -4);
$component_class_name = ucfirst($component_id). 'Component';
if(Yii::app()->hasComponent($component_id)) {
return Yii::app()->getComponent($component_id);
} else {
Yii::app()->setComponent($component_id, array('class' => $component_class_name));
return Yii::app()->getComponent($component_id);
}
}
}
5,控制器调用application/Controllers/HomeController.php
class HomeController extends Controller
{
public function actionIndex()
{
$b = $this->testComp->url='ddd';//因为有set方法,给组件私有变量赋值不报错
echo $b;
echo $this->testComp->test();
}
}
yii 自定义组件的调用的更多相关文章
- Android开发之自定义组件和接口回调
说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...
- 微信小程序自定义组件,提示组件
微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加“components”目录,然后像添加Page页面一样添加自定义组 ...
- yii中的自定义组件
yii中的自定义组件(组件就是一些自定义的公用类) 1.在项目目录中的protected/components/Xxxx.php 2.在Xxxx.php中定义一个类,类名必须与文件名相同 3.控制器中 ...
- Flex自定义组件、皮肤,并调用
标签:Flex 自定义组件 自定义皮肤 主应用调用模块 本程序样例学习自flex 实战教程.但因原教程代码不全,且根据个人需求有更改. 1文件列表 自定义as类Reveal.as,该类实现组件的 ...
- 微信小程序自定义组件的使用以及调用自定义组件中的方法
在写小程序的时候,有时候页面的内容过多,逻辑比较复杂,如果全部都写在一个页面的话,会比较繁杂,代码可读性比较差,也不易于后期代码维护,这时候可以把里面某部分功能抽出来,单独封装为一个组件,也就是通常说 ...
- 微信小程序页面调用自定义组件内的事件
微信小程序页面调用自定义组件内的事件 page page.json { "usingComponents": { "my-component": ". ...
- (转)Yii的组件机制之一:组件基础类CComponent分析
Yii的组件机制 组件机制,是Yii整个体系的思想精髓,在使用Yii之前,最应该先了解其组件机制,如果不了解这个机制,那么阅读Yii源代码会非常吃力.组件机制给Yii框架赋予了无穷的灵活性和可扩展性, ...
- Yii2.0 高级模版编写使用自定义组件(component)
翻译自:http://www.yiiframework.com/wiki/760/yii-2-0-write-use-a-custom-component-in-yii2-0-advanced-tem ...
- PhoneGap: Android 自定义组件
Hello Core Demo Plugin Development(组件部署): http://docs.phonegap.com/en/2.0.0/guide_plugin-development ...
随机推荐
- Apache常用2种工作模式prefork和worker比较
Apache两种常用工作模式:prefork和worker. prefork MPM prefork是一个非线程型的.预派生的MPM,使用多个进程,每个进程在某个确定的时间只单独处理一个连接,效率高, ...
- Redis的一些坑
转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团 ...
- [POJ3096]Surprising Strings
[POJ3096]Surprising Strings 试题描述 The D-pairs of a string of letters are the ordered pairs of letters ...
- yaourt: a pacman frontend(pacman前端,翻译)
yaourt: 一个pacman前端 本文翻译自:https://archlinux.fr/yaourt-en 1 juin 2007 - admin 关于 简介 获取 示例 截图 链接 关于 Yao ...
- 遍历json对象---Java
Iterator iterator = a.keys(); while(iterator.hasNext()){ String key = (String) iterator.next(); Stri ...
- centos 随意截屏
yum install kdegraphics 菜单路径: applications(应用程序)/Graphics(图形图像)/KSnapshot
- git分支管理策略
http://www.ruanyifeng.com/blog/2012/07/git.html https://www.digitalocean.com/community/tutorials/how ...
- python gui之tkinter事件处理
事件一览表 事件 代码 备注 鼠标左键单击按下 1/Button-1/ButtonPress-1 鼠标左键单击松开 ButtonRelease-1 鼠标右键单击 3 鼠标左键双击 Doub ...
- Tomcat启动服务报错:Unknown version string [3.1]. Default version will be used.
用Intellij IDEA 部署Web项目,Tomcat启动后报错Unknown version string [3.1]. Default version will be used. 作者的问题出 ...
- Tomcat 7最大并发连接数的正确修改方法
这是个很简单的问题,但是搜了一圈,发现大家都写错了.所以这里总结一下: 几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的): -------- ...