位置: 编程技术 - 正文

Zend Framework教程之Loader以及PluginLoader用法详解(framework3.5怎么打开)

编辑:rootadmin

推荐整理分享Zend Framework教程之Loader以及PluginLoader用法详解(framework3.5怎么打开),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:zendframework3中文手册,framework3.5怎么打开,framework在哪里打开,framework3.5怎么打开,zendframework3,framework怎么用,zendframework3,zendframework3中文手册,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例分析了Zend Framework中Loader以及PluginLoader用法。分享给大家供大家参考,具体如下:

Zend Framework提供了Zend_Loader,用来动态加载文件。

以下是具体用法,以及具体实现:

1.加载文件

使用方法:

具体实现:

参数规则:

正如实现方法,有如下参数

$filename参数指定需要加载的文件,注意$filename不需要指定任何路径,只需要文件名即可。ZF会对文件作安全性检查。$filename 只能由字母,数字,连接符-,下划线_及英文句号.组成(半角)。$dirs参数则不限,可以使用中文等。

$dirs 参数用来指定文件所在目录,可以是一个字符串或者数组。如果为 NULL,则程序将会到系统的 include_path 下寻找文件是否存在(include_path可在php.ini中设置--Haohappy注),如果是字符串或数组,则会到指定的目录下去找,然后才是 include_path。

$once 参数为布尔类型,如果为 TRUE,Zend_Loader::loadFile() 使用 PHP 函数 » include_once() 加载文件,否则就是 PHP 函数 » include()。(本参数只能是true或false,两者区别就和include()和include_once()的区别一样。)

2.加载类

具体使用:

具体实现:

$class 类名将会根据下划线(作为目录分隔线)对应到相应目录下的PHP文件,并加上'.php',比如Container_Tree会指向Container\Tree.php。$dir 可以是数组或者字符串。目录是除去类名包含的目录的路径。

3.判断某个文件是否可读

具体使用:

具体实现:

具体参数:

$filename参数指定了要检查的文件名,包括路径信息。这个方法是将 PHP 函数» is_readable()封装而成的,is_readable() 不会自动查找 include_path 下的文件,而 Zend::isReadable() 可以。

4.Autoloader

这个类的Autoloader功能已经不推荐使用了,所以不再讲述。还有其他的Autoloader,以后具体说明。

5.插件加载器

Zend Framework教程之Loader以及PluginLoader用法详解(framework3.5怎么打开)

帮助文章给出的具体实例如下,可参考使用:

很多 Zend Framework 组件支持插件,允许通过指定类的前缀和到类的文件(不需要在 include_path或不需要遵循传统命名约定的文件)的路径动态加载函数。Zend_Loader_PluginLoader 提供了普通的函数来完成这个工作。

PluginLoader 的基本用法遵循 Zend Framework 的命名约定(一个文件一个类),解析路径时,使用下划线作为路径分隔符。当决定是否加载特别的插件类,允许传递可选的类前缀来预处理。另外,路径按 LIFO 顺序来搜索。由于 LIFO 搜索和类的前缀,允许命名空间给插件,这样可以从早期注册的路径来覆盖插件。

基本用例

首先,假定下面的目录结构和类文件,并且根(toplevel)目录和库目录在 include_path 中:

application/ modules/ foo/ views/ helpers/ FormLabel.php FormSubmit.php bar/ views/ helpers/ FormSubmit.phplibrary/ Zend/ View/ Helper/ FormLabel.php FormSubmit.php FormText.php

现在,创建一个插件加载器来使各种各样的视图助手仓库可用:

接着用类名中添加路径时定义的前缀后面的部分来加载一个给定的视图助手:

类加载后,就可以实例化了。

Note: 为一个前缀注册多个路径

有时候,多个路径使用相同的前缀,Zend_Loader_PluginLoader 实际上为每个给定的前缀注册一个路径数组;最后注册的被首先检查,当你使用孵化器里的组件时,这相当有用。

Note: 实例化时定义路径

你可以提供给构造器一个可选的“前缀/路径”对(或“前缀/多个路径”)数组参数:

Zend_Loader_PluginLoader 在不需要使用单态实例的情况下,也可选地允许共享插件,这是通过静态注册表来完成的,在实例化时需要注册表名作为构造器的第二个参数:

其它使用同名注册表来实例化 PluginLoader 的组件将可以访问已经加载的路径和插件。

处理插件路径

上节的例子示例如何给插件加载器添加路径,那么如何确定已经加载的路径或删除他们呢?

如果没有提供 $prefix,getPaths($prefix = null) 以“前缀/路径”对返回所有的路径;或者如果提供了 $prefix,getPaths($prefix = null) 返回为给定的前缀注册的路径。

clearPaths($prefix = null) 将缺省地清除所有的已注册路径,或者如果提供了 $prefix 并放在堆栈里,只清除和那些和给定前缀关联的路径。

removePrefixPath($prefix, $path = null) 允许有选择地清除和给定前缀相关的特定的路径。如果没有提供 $path ,所有的和前缀相关的路径被清除,如果提供了 $path 并且相应的前缀存在,只有这个相关的路径被清除。测试插件和获取类的名字

有时候你想确定在执行一个动作之前是否插件类已经加载,isLoaded() 返回插件名的状态。

PluginLoader 的另一个普通用例是确定已加载类的完全合格的插件类名,getClassName() 提供该功能。一般地,这个和 isLoaded() 联合使用:

具体插件加载器的实现可以参考Zend_Loader_PluginLoader和Zend_Loader。这里不在累述。

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

Zend Framework教程之配置文件application.ini解析 本文分析了ZendFramework配置文件application.ini用法。分享给大家供大家参考,具体如下:最方便,常用的配置方式使用配置文件。配置文件的具体的相关设

Zend Framework教程之Application和Bootstrap用法详解 本文实例讲述了ZendFramework教程之Application和Bootstrap用法。分享给大家供大家参考,具体如下:在一个MVC应用程序中,我们需要初始化建立数据库链接,

PHP批量去除BOM头内容信息代码 什么是bom头?在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头

标签: framework3.5怎么打开

本文链接地址:https://www.jiuchutong.com/biancheng/290944.html 转载请保留说明!

上一篇:Zend Framework教程之Autoloading用法详解(zend framework手册)

下一篇:Zend Framework教程之配置文件application.ini解析(framework4.0怎么打开)

  • 车辆报废做账务处理依据的法规是
  • 房租确认后能不退押金吗
  • 建筑工程企业人才引进可以引进医药行业吗
  • 农民工专户个税起征点2023四川省
  • 增值税进项发票认证流程
  • 为什么征收增值税体现了量益原则
  • 技术服务费3%
  • 管家婆软件记账流程
  • 工会费缴纳基数
  • 银行商业承兑汇票到期怎么兑现
  • 债权重组会计分录大全
  • 材料已入库,发票账单未到的会计分录
  • 高新企业季度企业所得税预征税率
  • 工程前期土地平整的会计分录怎么写?
  • 收到的油费预付怎么入账
  • 合并利润表抵消事项包括
  • 企业外购的房屋建筑物是否属于非房地产企业
  • 纳税人涉税信息查询
  • 营改增后增值税暂行条例实施细则
  • 卖桶装水税率
  • 外管证的开具与注销流程
  • 纳税人识别号在哪里能查到
  • 合并报表盈余公积跟母公司有什么关系
  • 开了红字发票税额已经缴纳怎么做账?
  • 用友t8怎么删除凭证
  • 行政单位以前年度会计错账调整
  • 增值税完税凭证怎么做账
  • win11字体大小怎么调
  • 扣缴义务人申报和综合所得年度自行申报
  • 邮件远程控制
  • 递延所得税当期要交吗
  • PHP:curl_multi_strerror()的用法_cURL函数
  • 既征增值税又征消费税的是
  • 金鱼花的养殖方法与注意事项
  • vue 页面生成pdf
  • php在线阅读器源代码
  • water gardens
  • top命令可以看到哪些信息
  • 动产租赁增值税税率最新
  • stable Diffusion安装教程
  • js中的截取字符串
  • vue2vue3的区别
  • thinkphp5上传文件
  • 现金流量风险怎么解决
  • 无形资产和固定资产减值准备可以转回吗
  • 金蝶软件利润表公式怎么设置
  • 劳动保护的各项支出列入工资总额的范围吗
  • 无形资产资产处置损益怎么算
  • 可供出售交易性金融资产初始计量
  • 事业单位破产清算开户流程
  • 收回股权投资
  • 收到待报解预算收入是国家退的税吗
  • 向银行按揭贷款时,收入流水不够怎么办?
  • 广告费应该计入办公费还是印刷费
  • 销售暂估业务处理
  • 汇算清缴调增的工资怎么做账
  • 公司劳务过账的法律依据
  • 主营业务成本的贷方是什么
  • MySql 5.7.17 winx64的安装配置详细教程
  • win2003和2003r2
  • groove音乐怎么添加本地音乐
  • centos安装scala
  • win10预览版和正式版
  • centos zsh
  • win7或win8、win8.1系统下安装ubuntu实现双系统图文教程
  • ssh encountered 1 errors during the transfer错误3种解决方法
  • Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)
  • 上传图片 js
  • require jquery
  • nodejs npm package.json中文文档
  • JavaScript中的case
  • 熟悉的拼音
  • NGUI学习:(1)spine导入后图层顺序的问题
  • 动态生成script
  • javascript 分号
  • 如何查询车辆购买的保险
  • 小规模纳税人租金收入增值税税率
  • 济南市中区税务局办税大厅
  • 什么是新闻主管部门负责
  • 深圳税务局完税证明
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设