首先要了解Root Alias
为方便起见,Yii 预定义了以下几个根别名:
system: 表示 Yii 框架目录;
zii: 表示 Zii 库 目录;
application: 表示应用的 基础目录;
webroot: 表示 入口脚本 文件所在的目录。此别名从版本 1.0.3 开始有效。
ext: 表示包含了所有第三方 扩展 的目录。此别名从版本 1.0.8 开始有效。
* 导入Class
使用别名可以很方便的导入类的定义。例如,如果我们想包含 protect/mylib/MyClass.php 类的定义,我们可以调用如下代码
Yii::import('application.mylib.MyClass');
import 方法跟 include 和 require 不同,它更加高效。导入(import)的类定义并不会真正被包含进来,直到它第一次被引用。多次导入同样的名字空间也会比 include_once 和 require_once 快得多。
提示: 当引用 Yii 框架定义的类时,我们不需要导入或包含它。所有的核心 Yii 类都已被提前导入了。
* 引用第三库
第一,比如说,我们要使用 Zend framework的东西。我们把zend framework解压到 prtected/vendors里面,现在的文件夹为 protected/vendors/Zend/Search/Lucene.php
第二,在controller文件的头部,插入下面代码。
Yii::import('application.vendors.*'); // 可以配置在config/main.php中
require once('Zend/Search/Lucene.php');
上面代码包含了Lucene.php这个类文件。因为我们用到的是相对路径,所以我们需要改变PHP加载文件的路径,Yii::import 一定要在require_once 之前。
综述,引入第三方的php有如下方法:
一、设置环境变量(在PHP)
echo get_include_path(); //获取当前所有环境变量。即该项目中那些代码已被引用。
set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . get_include_path()); //新增一个环境变量,写在最前面。
echo get_include_path();
通过两次差别,可以看出,使用set_include_path()函数,设置新的环境变量成功。
二、在YII中引用
1,Yii::import("application.lib.PHPExcel.*");
解释:
application相当于protected文件夹。
2,在yii的../config/main.php中,引入基路径
- return array(
- 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
- ......
-
- 'import'=>array(
- 'application.models.*',
- 'application.components.*',
- 'application.helpers.*',
- 'ext.mail.Message',
- 'application.lib.*',
- ),
- )
在代码中可以使用下面方式引用 Yii::app()->basePath 3,在controller使用
-
- require_once 'PHPExcel.php';
- require_once 'PHPExcel/IOFactory.php';
- require_once 'PHPExcel/Writer/Excel2007.php';
- require_once 'PHPExcel/Writer/Excel5.php';
三、在Yii中引用插件 注:插件和扩展不一样 1,源码放在project/ckeditor/* 2,在代码create,update中引用
- <?php
- include_once "/ckeditor/ckeditor.php";
-
- $CKEditor = new CKEditor();
-
-
- $CKEditor->basePath = Yii::app()->baseUrl.'/ckeditor/';
-
-
- $CKEditor->replace("News_content");
- ?>
引入插件方法二: 第一,比如说,我们要使用 Zend framework的东西。我们把zend framework解压到 prtected/vendors里面,现在的文件夹为 protected/vendors/Zend/Search/Lucene.php 第二,在controller文件的头部,插入下面代码。 Yii::import(’application.vendors.*’); require once(’Zend/Search/Lucene.php’); 上面代码包含了Lucene.php这个类文件。因为我们用到的是相对路径,所以我们需要改变PHP加载文件的路径,Yii::import 一定要在require_once 之前。 第三,一旦我们设置好了,我们就可以在controller里面使用了。比如说 $lucene=new Zend Search Lucene($pathOfIndex); $hits=$lucene->find(strtolower($keyword)); 四、在一个页面中引入任意其他文件 比如,想在../controllers/OutsourceController.php直接使用../components/RMSClient.php,可用如下方法
- require_once(dirname(__FILE__)."/../components/RMSClient.php");
-
-
- require_once(Yii::app()->baseUrl . "/protected/components/RMSClient.php");
-
-
-
分享到:
相关推荐
本文将通过实例详细讲解如何在YII框架中实现自定义第三方扩展操作,并分享实现步骤和相关技巧。 首先,要创建自定义扩展,需了解YII框架的命名空间和组件化特性。YII框架的类库和组件都按照命名空间进行组织,以...
**扩展Yii**:介绍了如何使用现有的扩展、创建自己的扩展以及如何使用第三方库。 **测试**:包括定义fixture、单元测试、功能测试等内容。测试是保证软件质量的重要手段之一,在Yii框架中有很好的支持。 #### 五、...
Composer是PHP的依赖管理工具,它使得在Yii项目中引入和管理第三方库变得更加便捷。Yii 2.0.9 advanced模板提供了预配置的前端和后端应用结构,每个应用都有自己的独立入口文件、模型、视图和控制器,这有助于开发者...
在 yii2-v2.0.6 中,"vendor" 文件夹包含了 Yii 2 框架本身以及所有其他第三方扩展,比如数据库驱动、模板引擎、安全工具等。这些组件通过 Composer 安装,并且按照命名空间组织,方便代码的导入和使用。通过这个...
- **更多的社区扩展**:新版本可能增加了对更多流行第三方服务和库的支持,扩展了框架的功能。 - **更好的错误处理和日志系统**:可能改进了错误报告和调试工具,使得问题定位更加容易。 总之,Yii PHP框架的最新...
`ext` 目录用于存放第三方扩展,通过 `Yii::setPathOfAlias('ext', ...)` 设置别名,方便引入。而 `attachBehaviors` 方法允许应用或组件添加行为(Behavior),行为提供了对象间的功能扩展和混入机制。 9. **事件...
它可以安装和更新项目所需的第三方库,如 Yii2 自身和其他扩展。 **扩展和社区支持**:Yii2 社区活跃,有大量的第三方扩展,例如:Yii2 Gridview、Yii2 Widgets、Yii2 User 等,丰富了框架的功能。 综上所述,Yii2...
- **依赖管理**:Yii 2.0全面支持Composer作为依赖管理工具,无论是核心框架还是第三方扩展均可通过Composer进行安装与管理。 - **安装文档**:具体安装步骤请参考官方文档中的“安装Yii”章节。 - **扩展开发**:...
- **基于Composer**:Yii 2.0依赖管理通过Composer实现,便于安装和管理第三方库。 - **ActiveRecord**:Yii的ORM(对象关系映射)层,提供了简单易用的数据操作接口。 - **Gii工具**:自动生成代码的工具,可以...
此外,Yii还支持使用第三方库来进一步增强应用的功能。 ### 测试 为了确保应用的健壮性和稳定性,Yii提供了单元测试和功能测试的机制。开发者可以编写测试用例来验证应用的功能。 ### 专题 Yii框架还包括一些高级...
5. **vendor**:Composer管理的第三方库和Yii框架本身。 6. **web**:公共可访问的目录,通常包含入口脚本index.php和静态资源(CSS、JS)。 7. **bootstrap.php**:应用启动文件,加载配置和组件。 8. **index.php*...
2. `protected/extensions`: 可能包含自定义或第三方的扩展,这些扩展可能为CMS系统提供额外的功能。 3. `protected/modules`: 模块化设计让CMS系统更易于扩展和定制,每个模块都有自己的控制器、模型、视图和配置。...
这些扩展可以是第三方库,也可以是Yii社区提供的组件。例如,ZTree是一个常用的JavaScript树形插件,它可能被用作Yii视图中的一个扩展,用于显示层级结构的数据。 1. **ZTree**:ZTree是一个强大的jQuery插件,它...
7. 扩展和模块:Yii拥有强大的扩展机制,允许开发者创建自己的模块以及轻松地使用第三方模块和类库。开发者可以利用这些扩展来添加新的功能或优化现有的功能。 8. 测试:Yii提供了一个完整的测试框架,包括单元测试...
Yii允许开发者使用Composer进行依赖管理,方便地引入第三方库。此外,Yii社区提供了大量的扩展,涵盖各种功能,如支付网关、图表库、邮件服务等。 总的来说,“yii说明文档”是开发者学习和掌握Yii框架的重要资源。...
Yii Composer是Yii2引入的一个特性,它利用了PHP的Composer依赖管理工具,使得安装和管理第三方库变得更加方便。同时,Yii的缓存系统支持多种缓存策略,如文件缓存、数据库缓存、APC缓存等,帮助提升应用程序的响应...
- **使用第三方类库**:整合第三方 PHP 库以增强功能。 #### 五、测试 - **概述**:阐述 Yii 中的测试框架。 - **定义 Fixtures**:创建测试数据集。 - **单元测试**:编写和运行单元测试。 - **功能测试**:通过...
3. **自动加载**:通过Composer包管理器,Yii2 提供了自动加载类的功能,使得引入第三方库变得简单。 4. **查询构建器和ActiveRecord**:提供方便的数据操作方式,如查询构建器用于SQL操作,ActiveRecord模式用于...
在实际开发过程中,你还可以利用 Yii 的扩展性,安装和使用第三方库,如 yii2-debug 和 yii2-gii 来进行调试和代码生成,或者使用 yii2-widget-select2 等组件增强界面交互。 总之,Yii 2.0.9 提供了一个强大且可靠...