Zend Framework使用Zend_Loader组件动态加载文件和类用法详解


Posted in PHP onDecember 09, 2016

本文实例讲述了Zend Framework使用Zend_Loader组件动态加载文件和类的方法。分享给大家供大家参考,具体如下:

加载文件

Zend_Loader组件可以实现对文件的加载功能,还可以判断文件是否可读。

这两个功能分别由Zend_loader::loadFile()方法与Zend_loader::isReadable()方法来实现。

动态加载是可以将变量所指代的文件进行加载的过程。当需要加载的文件为用户输入或是某个方法的参数时,通过传统的加载方法会很难对文件进行加载。

通过动态加载则可以实现这一过程。

示例:

首先建立被加载的文档temp.php,该文档只实现一个简单的输出功能,代码如下。

<?php
echo "Hello World!";
?>

主程序:

<?php
require_once("Zend/Loader.php");
$filename = 'temp.php';
Zend_Loader::loadFile($filename);

执行结果:

Hello World!

说明文件已经被成功的加载进来了。

判断文件属性

语法格式:

Zend_Loader::isReadable($filename)

如果文件可读,程序将返回True

该方法是由PHP函数is_readable()封装而成的,但二者还是存在不同之处。is_readable()方法

不会自动查找include_path目录下的文件,而Zend::isReadable()方法则可以。

示例:

<?php
require_once("Zend/Loader.php");
$filename = 'temp.php';
if(Zend_Loader::isReadable($filename)){
  echo "文件".$filename."是可读的!";
}else{
  echo "文件".$filename."不可读!";
}
echo "<p/>";
if(is_readable('Zend/Date.php')){
  echo "include_path下文件可读";
}else{
  echo "include_path下文件不可读";
}
echo "<p/>";
if(Zend_Loader::isReadable('Zend/Date.php')){
  echo "include_path下文件可读";
}else{
  echo "include_path下文件不可读";
}

结果:

文件temp.php是可读的!
include_path下文件不可读
include_path下文件可读

这个例子说明,is_readable()方法不可以判断include_path文件是否可读,而Zend_Loader::isReadable()方法可以判断。include_path文件,指的是php.ini中配置引入的文件。

不仅如此,Zend_Loader还可以进行类的加载。这将在下面进行讲解。

动态加载类

Zend_Loader不仅可以动态加载文件,通过其loadClass()方法还可以实现。

语法:

Zend_Loader::loadClass($class,$dirs)

其中,class为指定的类名,class为指定的类名,dirs为包含类的文件所在的路径及文件名。类名将会根据下划线对应到相应目录下的

PHP文件,如Zend_Controller_Action会指向Zend/Controller/Action.php。

如果参数$dirs是一个字符串或数组,则该方法会根据顺序查找相应目录,并加装第一个匹配的文件。如果文件不存在,该方法还会到include_path指定的目录下进行查找。

示例:

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Date');
$date = new Zend_Date();
echo $date;

结果:

2013-3-18 下午05:30:16

说明,这段代码直接到include_path中加载需要的类。然后实例化,输出即可。

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
如何使用PHP获取网络上文件
Oct 09 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
php获取网页内容方法总结
Dec 04 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
一道关于php变量引用的面试题
Aug 08 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 PHP
php开发微信支付获取用户地址
Oct 04 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
PHP 根据key 给二维数组分组
Dec 09 #PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 #PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 #PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
Zend Framework实现自定义过滤器的方法
Dec 09 #PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 #PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 #PHP
You might like
php调用C代码的实现方法
2014/03/11 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
js版本A*寻路算法
2006/12/22 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
python实现在pandas.DataFrame添加一行
2018/04/04 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
django使用LDAP验证的方法示例
2018/12/10 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
四年级数学教学反思
2014/02/02 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
学校开学标语
2014/10/06 职场文书
学雷锋活动简报
2015/07/20 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
Nginx配置https的实现
2021/11/27 Servers
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
小程序自定义轮播图圆点组件
2022/06/25 Javascript