2013-02-22 59 views
1

声明全局的功能我想知道如何在Yii中声明常用的功能,让我们可以从任何控制器,视图或模型文件调用它。例如,我想在全球范围内声明日期函数。如何在Yii中

回答

4

您可以创建一个组件,只需在组件类,然后创建静态方法。这种方法类似于了CHtml,所以我认为是符合该框架的风格。

+0

感谢ANKIT .... – 2013-02-22 07:44:17

1

某处(不记得了)我看到常用的功能都在文件config/目录(但真的任何你想要的)下。 如果您的文件命名common-func.php路径将是{webroot}/protected/config/common-func.php 为了让你需要包括这个文件中{webroot}/index.php这些全球性的功能。

//user defined functions accessible over all pages 
require_once dirname(__FILE__).'/protected/config/common-func.php'; 
+0

YiiBoilerplate做它 – acorncom 2013-02-23 04:01:27

0

做这样的 -

在你的组件

你需要做一个文件一样 - MyClass.php并把它里面的组件文件夹。在MyClass.php里面,你可以编写你的函数。像 -

class MyClass extends CApplicationComponent { 

public function get_my_info() { 

    //your code here 
    //your code here 

    return value; 
} 
} 

在你main.php(config文件夹) -

'components' => array(
     'myClass' => array(
      'class' => 'ext.components.MyClass', 
     ), 

现在,这个功能是在整个应用程序(控制器,视图等)访问,直接调用函数get_my_info( )任何地方,它会返回你的价值。像 -

$myInfo = Yii::app()->myClass->get_my_info(); 

来源 - How to create & call custom global function in whole application