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 ... 
随机推荐
- Todd's Matlab讲义第4讲:控制误差和条件语句
			误差和残量 数值求解方程\(f(x)=0\)的根,有多种方法测算结果的近似程度.最直接的方法是计算误差.第\(n\)步迭代结果与真值\(x^\*\)的差即为第\(n\)步迭代的误差: \begin{e ... 
- 2013成都Regional:一块木板,几个气球
			先来看木板: 再来看气球: 最后看木板+气球: google送的纪念品.... 到现在还没敢打乱: 赛场外面.... 赛场里面: 和比赛时出了问题,并现场换了一台的电脑(对面长安大学1队)... 最 ... 
- protect和private 的区别
			protect和private 的区别 public 表示全局,类内部外部子类都可以访问: private表示私有的,只有本类内部可以使用: protected表示受保护的,只有本类或子类或父类中可以 ... 
- PHP多态的理解
			多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果.也即不同类的对象收到相同的消息时,将得到不同的结果.在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作 ... 
- JS获取/设置iframe内对象元素、文档的几种方法
			1.IE专用(通过frames索引形象定位): document.frames[i].document.getElementById('元素的ID'); 2.IE专用(通过iframe名称形象定位): ... 
- webApp前端开发技巧总结
			自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备.我相信各位童鞋应该和我一个样子, ... 
- thusc滚粗记
			day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今 ... 
- 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解
			面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END 
- Unity调用Android方法
			步骤 废话不多说,直接来步骤吧1.创建工程,弄大概像这样一个界面2.在unity中写好代码,像这样,记得给界面绑定好事件啥的 using UnityEngine; using UnityEngine. ... 
- cvLoadImage
			编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 函数原型:IplImage* cvLoadImage( const char* filename, int flags= ... 
