首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Zend框架在这里添加下划线?

在这个问答内容中,Zend框架添加下划线的原因可能与PHP命名空间的规范有关。在PHP中,命名空间中的类名通常使用驼峰命名法,而在Zend框架中,可能会将这些类名转换为下划线分隔的形式。这样做的好处是,命名空间中的类名更加直观易读,同时也遵循了Zend框架的命名规范。

例如,在Zend框架中,类名Zend_Controller_Front可能会被转换为zend_controller_front,以便在代码中更容易阅读和理解。

总之,Zend框架在这里添加下划线可能是为了遵循PHP命名空间的规范,并提高代码的可读性和易用性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

(2)PHP内核 - 玩转php的编译与执行

maple"; 在这里有的同学会认为这里op_array->last_literal == 3, echo语句里面"hello","maple",还包括在编译过程中会自动添加的opline RETURN...所以在这里你可以认为在最终确定形成一条opline的时候,才会去判断操作数是不是CONST类型,并将其添加到字面量数组。在这里其实只有2条opline,并没有一条用来连接字符串的opline。...所以在这里其实是把连接之后"hellomaple"添加到了字面量数组。...聪明的你有想过为什么会这样做吗?...为什么需要根据操作数类型把一个处理函数分成一个个只能接受指定类型的操作数的handler呢?为什么不直接写一个handler然后在里面判断操作数的类型不就行了?

2.1K30

重磅资料!Github上的PHP资源汇总大全

其它依赖管理的相关工具 Satis : 静态的Composer库生成器 Composition: 一个运行时检查Composer环境的库 Version : 一个在语义上分析和比较的库 NameSpacer : 将下划线转为命名空间的库...Zend Framework 2: 同样是由独立组件构成的框架 Laravel 4: 简洁优雅的PHP Web开发框架 Aura PHP: 独立组件的框架 Yii2 : 用于开发大型Web应用的高性能...PHP框架 Nette: 同样是由独立组件构成的框架 PPI Framework 2: 一个交互性的框架 Phalcon: 一个作为C扩展的框架 框架的附加部分 ——其它关于Web开发框架的相关工具...Components: 关于Symphony2的组件 Zend Framework 2 Components: 关于ZF2的组件 Aura Components: 一个PHP5.4的组件包 Hoa...Project: 另一个PHP组件包 微型框架 ——微型框架和路由 Silex: 基于Symphony2组件的微型框架 Slim: 另一个简单的微型框架 Bullet PHP: 用于构建REST

1.7K40

PHP - Yaf的介绍

框架不在你手中, 而在PHP的"心"中. 目前PHP的框架层出不穷, 其中不乏很多优秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等....但在这繁多的框架也就造成了公司内多种框架的业务产品....这些框架之间的不同, 也就导致了多种版本的类库, 框架, 约定, 规范,,,, 那么, 为什么现在开源社区没有一个成熟的用PHP扩展开发的框架呢?...现在国内很多中小型站都是使用虚拟主机, 并不能随意的给PHP添加扩展, 所以这些大部分的中小型企业, 个人博客的用户就无法使用. 维护成本高....要维护PHP扩展, 不仅仅需要精通于C的开发和调试, 更要精通于Zend API, 并且升级维护的周期也会很长. 那既然这样, 为什么还要用PHP扩展来开发框架呢, 或者说, 这可行么?

1.3K90

PHP 源码阅读

zend_refcounted; typedef struct _zend_string zend_string; typedef struct _zend_array zend_array..._zend_ast zend_ast; // 只在当前 zend_types.h 文件使用 typedef union _zend_value { zend_long...fpm-master: master进程直接被杀死, worker进程还存活, 可提供服务 kill fpm-worker: worker进程被杀死不影响,master进程会重新调度管理 常见问题 以单下划线..._表明是标准库的变量 双下划线__开头表明是编译器的变量 typedef说明 如果要在其他文件使用, 会在头文件最开始定义 如果只在当前文件使用, 那么会在结构体声明的时候直接紧随 部分结构体(如zend_string...)中字符串为什么不是char *,而是char[1] 关键字查询C struct hack是一种把结构体所有成员分配在同一块内存的技术, 利于cpu cache,也是一种可变长数组的实现方式 网上有些例子会写成

16110

Laravel第三方包报class not found的解决方法

出现的问题 公司开发使用PHP,技术框架使用Laravel。最近线上出现一个问题,就是上线之后,每次都会出错。查看出错原因,是composer安装的第三方出现class not found。...因为这个问题,在线下使用Lumen框架的时候,遇到过,查找问题原因是因为依赖的composer包中composer.json中的”autoload”:{“psr-4”:{}}书写格式问题。...解决方法使用命令:composer dump-autoload -o; 虽然知道问题的所在,但是有一个现象比较费解:这个第三方包已经使用很久了,为什么最近才开始报错呢?...zend_loader_file_encoded()); if ($useStaticLoader) { // 程序在这里执行 // 引用ComposerStaticInit类 require_once...class map lookup // class map加载方式,我的理解:是通过将类与对应路径生成一个对应表 // 该方式优点:加载速度快,相当于查询字典; // 缺点:无法实现自动加载,添加新类后

2.4K41

是否需要使用依赖注入容器?

仅当需要管理大量依赖组件的实例时,才能真正体现「依赖注入容器」的价值(比如一个框架)。...我想明确的是,在实现「依赖注入容器」时不涉及 Symfony 相关功能,所以我将使用 Zend 框架示例来说明。 这边不涉及框架之争。...我非常感谢 Zend 框架组件,事实上,Symfony 框架使用了许多 Zend 框架中的组件。...因此,我们需要更进一步,将所需要的数据以构造函数的参数形式添加到容器内会更好: <?...这就是为什么容器能够管理任何 PHP 对象的奥秘。甚至,如果这些实例也使用依赖注入来管理自身的依赖,那就更加完美了,但这不是先决条件。 当然,人肉创建和维护容器类会很快成为一场噩梦。

2.1K20

探索嵌入式PHP与CC++结合的无限种可能

Zend Engine提供了一种嵌入式开发模式,我们利用这一特性使它可以在C/C++的环境中单独执行PHP脚本,并且支持多实例运行,可以在C/C++协程框架中运行。...我们最初的业务框架是基于TSF2.0,底层为Zend Engine和扩展,扩展最核心的部分是基于swoole。在此之上是TSF PHP层,包含协程调度器、微服务框架、监控管理进程、MVC模式。...方案:SPP+PHP 为什么选择嵌入式PHP SNG中有个非常有名的C++后台框架SPP,它是一个高性能的网络框架,起始于2008年,被广泛的应用于SNG的各个业务线。...如何将SPP和Zend结合 SPP其实是基于协程的框架,协程是一个用户态的多线程概念。在协程切换的时候会涉及内存管理的机制,而Zend没有这种切换内存资源的机制,只有全局变量和多线程资源隔离的方式。...最好的办法是借助Zend本身的机制对入口进行改造,而不侵入内核。 Zend改造 Zend有多进程和多线程两种方式,在多线程模式下有一个线程安全的机制ZTS。

2.1K20

(1)PHP内核 - 玩转php的编译与执行

动态分配的变量在zend_execute_data结构的末尾,所以你需要提前知道这个结构的大小。 如果你傻乎乎现在又+72,你发现取的是不对的,明明是在zend_data结尾取的值,为什么还是还不对?...具体的值,需要自己提供接口,yacc也一个宏YYPRINT,在这里可以不用为它这个宏提供个函数。...,把yy_symbol_value_print注释掉,这是在用bison预处理之后在zend_language_parser.c里面添加的哦。...其他进制的数字串永远置零,那在语法上为什么还要匹配呢? php内部是有一个zend_strtod,却并没有在此处使用,明显的handler没有与语法对应上。...你可以先不看下面的解答,先自己想想为什么会这样? 其实这个问题需要在语法分析这个阶段来看,可以先去yacc里面关于print的语法结构。

1.8K10

《PHP扩展及核心》

一、主要内容: 1️⃣php扩展的概念和底层实现 2️⃣编写一个php扩展的步骤 3️⃣php底层,Zend 引擎API的介绍 ,HashTable 原理 二、相关概念 1....【为什么要有扩展?】 1)【效率高】复杂的图像算法,需要写成PHP扩展 2)【操作底层,未支持的技术】1)PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。...下载地址: wget http://cn2.php.net/get/php-5.5.38.tar.gz/from/this/mirror 生成扩展组件框架 ext_skel 命令 ....Data/apps/php/lib/php.ini 加上 extension=myext.so 7、 sudo /Data/apps/php/sbin/php-fpm reload 修改php配置文件,添加扩展...引擎API 四、写在最后 php的核心是C语言,核心引擎是Zend,了解HashTable就能了解php的精髓。

1.1K80

关于 64 位 PHP 使用 PHP_INT_SIZE 输出得到 4 的问题

很尴尬,为什么phpinfo()中的 PHP 是 64 位,而获取PHP_INT_SIZE的值确是 4 就上周的文章:怎么快速判断 PHP 是 32 位还是 64位,可以查看PHP_INT_SIZE的值来判断...PHP_INT_SIZE有问题,那么用 PHP 官方的说法:输出一个超过 42 亿的整数 var_dump(12345678900); 结果居然也是float(12345678900),很明显 PHP 是 32 位的 但是为什么...github.com/php/php-src/blob/master/main/main.c#L2176) REGISTER_MAIN_LONG_CONSTANT("PHP_INT_SIZE", SIZEOF_ZEND_LONG..., CONST_PERSISTENT | CONST_CS); 而SIZEOF_ZEND_LONG的定义,在这里(https://github.com/php/php-src/blob/master/Zend.../zend_long.h) 所以,PHP7中,应该不会再出现这个问题了,其他是个别版本 沈唁志,一个PHPer的成长之路!

1.3K10

10个比较流行的PHP框架

但是您如何知道哪个PHP框架适合您呢? 为什么要使用PHP框架? 本文将列出10个比较流行的PHP框架来帮助您进行选择。 PHP框架提供了简化web应用程序开发的基本结构。...Laravel于2011年推出,现已成为世界上最流行的免费、开源PHP框架为什么?因为它可以安全地处理复杂的web应用程序,速度比其他框架快得多。...Zend Framework ? Zend Framwork是一个完整的面向对象框架,它使用接口和继承等特性使其具有可扩展性。它是基于敏捷方法构建的,敏捷方法帮助您向企业客户交付高质量的应用程序。...Zend是高度可定制的,并且遵循PHP最佳实践—对于希望添加特定于项目的功能的开发人员来说,这是一个重要的方面。 特点: Zend Framwork非常适合复杂的企业级项目。...它是大型It部门和银行的首选框架Zend Framwork关键特性包括MVC组件、简单的云API、数据加密和会话管理。 Zend Framwork可以与外部库集成,并且只能使用所需的组件。

11.7K10

PHP中 对象自动调用的方法:__set()、__get()、__tostring()

像构造方法 (__construct())一样, 类里面添加了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加: //__get()方法用来获取私有属性 public function...__tostring() TOstring(在这里故意这么写,是要说明PHP中方法不区分大小写,但实际开发中还需要注意规范)。当进行测试时,需要知道是否得出正确的数据。...为什么直接echo一个对象就会报语法错误,而如果这个对象实现toString方法后就可以直接输出呢?...从下面的PHP源代码里可以得到验证: ZEND_VM_HANDLER(40, ZEND_ECHO, CONST|TMP|VAR|CV, ANY) { zend_op *opline = EX(opline...(&z_copy); zval_dtor(&z_copy); } else { zend_print_variable(z); } FREE_OP1(); ZEND_VM_NEXT_OPCODE();

2.4K40

PHP 的前世今生

PHP 程序员们不再过度依赖那些庞大而臃肿的框架,而是更多的去使用更加轻量级的专用组件。...Composer 依赖管理工具也彻底改变了人们构建 PHP 应用的方式;它将我们从那些框架的围墙中解脱出来,让我们可以自由混搭各种可相互操作的组件,从而搭建出最能符合我们需求的 PHP 应用。...在这里我不打算再重复已经被 Rasmus Lerdorf(PHP 之父)说过的话。我想说的是 PHP 有一个混乱的过去。...Zend Engine 是由 Rasmus Lerdorf,Andi Gutmans 和 Zeev Suraski 创建的,它也是 Zend 公司对 PHP 社区的主要贡献。...PHP 的未来 Zend 引擎正在添加新特性和改进执行效率等方面快速发展,这可能是因为他们感受到了来自于 Facebook 的 HipHop Virtual Machine 引擎和 Hack 编程语言的竞争压力

1.1K60

使用ext_skel和phpize构建php5扩展

这个选项将把附加的符号信息编译进PHP的执行文件,以便如果发生段错误,你能从中得到一个内核转储文件,使用gdb追踪并发现什么地方以及为什么会发生段错误。 另一个选项依赖于你的PHP版本。...name" 是一个全为小写字母的标识符,仅包含字母和下划线,在 PHP 发行包的 ext/ 文件夹下是唯一的。...--skel 选项可用于指定用一套修改过的框架文件来工作,这是本节范围之外的话题了。...有点不象现实中的扩展,在这里的设置仅仅起说明性的作用。 代码开始用已熟知的方式来检测 PHP_EXAMPLE_EXTRA 的真实值。...函数块的声明); · 声明Zend函数块; · 声明Zend模块; · 实现get_module()函数; · 实现导出函数。

44920
领券