【发布时间】:2014-06-05 00:28:44
【问题描述】:
我有一个文件,其中包含我想在我的应用程序中随处使用的函数。 在原始 PHP 中,这样做的方法是通过 include 或 require 在每个文件中调用它们。 Yii 中是否有任何简单的方法可以调用该文件一次并在任何地方使用它? 第二个问题是调用同一个文件并在特定控制器中使用它。
【问题讨论】:
我有一个文件,其中包含我想在我的应用程序中随处使用的函数。 在原始 PHP 中,这样做的方法是通过 include 或 require 在每个文件中调用它们。 Yii 中是否有任何简单的方法可以调用该文件一次并在任何地方使用它? 第二个问题是调用同一个文件并在特定控制器中使用它。
【问题讨论】:
例如,您可以在应用程序的主配置中要求此文件,或者在应用程序基础控制器的 beforeAcition 方法中(如果有)。
require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'components/some_funcs.php';
【讨论】:
也许这可以帮助你THE DEFINITIVE GUIDE TO YII。
使用第三方库
Yii 经过精心设计,可以轻松集成第三方库以进一步扩展 Yii 的功能。在项目中使用第三方库时,开发人员经常会遇到关于类命名和文件包含的问题。因为所有 Yii 类都以字母 C 为前缀,所以不太可能出现类命名问题;由于 Yii 依赖于 SPL 自动加载来执行类文件包含,如果其他库使用相同的自动加载功能或 PHP 包含路径来包含类文件,它可以很好地与其他库一起使用。
下面我们通过一个例子来说明如何在 Yii 应用程序中使用 Zend 框架中的 Zend_Search_Lucene 组件。
首先,我们将 Zend 框架的发布文件解压到 protected/vendors 下的目录中,假设 protected 是应用程序基目录。验证文件 protected/vendors/Zend/Search/Lucene.php 是否存在。
其次,在控制器类文件的开头,插入以下行:
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
【讨论】: