欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-04-01 20:35:34
本文实例讲述了zend framework使用zend_loader组件动态加载文件和类的方法。分享给大家供大家参考,具体如下: 加载文件 zend_loader组件可...

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《zend framework框架入门教程》、《php优秀开发框架总结》、《yii框架入门及常用技巧总结》、《thinkphp入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于zend framework框架的php程序设计有所帮助。