首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP展开发初探

    什么是 PHP 扩展 通俗说,PHP 扩展是增强 PHP 语言功能的插件。PHP 提供了编程语言的语法,比如分支、循环、函数、类等,这些是 PHP 本身所提供的。...在某些情况下需要在 PHP 语言的基础上进行扩展,那么就需要通过 PHP 底层提供的数据结构和接口来开发 PHP 扩展,从而来补充或扩展 PHP 语言,使之更加的强大。...当然了,PHP 本身就已经集成了一些基本的、强大的、优秀的 PHP 扩展。 PHP 扩展的好处 从上面的了解得知,PHP 扩展可以在 PHP 原有的基础上来扩展 PHP 的功能,使之更为的强大。...什么时候使用 PHP 扩展 单独的使用 PHP 语言并不能满足所有的开发,比如在项目中使用 Redis 或 MongoDB 时,就需要相应的 PHP 扩展,来增强 PHP 语言,让 PHP 可以来操作...PHP 的应该都会添加 PHP 扩展。

    91940

    PHP展开发详解

    学习背景 PHP extension提供了与C交互的接口,从个人的理解上,很好的提供了一种将固化、重复、性能要求高的行为下沉的机制,处于php内核与php应用空间之间,为程序员提供了一种利用php的前提下高性能...参考资料 《TIPI》 《PHP手册》 《php源码下载》 《PHP展开发及内核应用》—— 寸谋 《linux下编译安装lnmp环境》 《mac环境编译-找不到头文件-单独下载编译,修改Configure...是目前比较火的PHP包管理方式。 PHP源码编译(MacOS 版本) 在开发PHP扩展前,首先要搞定环境。.../php /usr/local/bin/php7 ln -s /usr/local/php7/bin/php-config /usr/local/bin/php7-config ln -s /.../usr/local/php7/etc/php-fpm.conf cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7

    1.5K00

    PHP展开发检测清单(扩展开发必读)

    想要做出一个成功的 PHP 扩展包,不仅仅是简单的将代码放进文件夹中就可以了,除此之外,还有非常多的因素来决定你的扩展是否优秀。...以下清单的内容将有助于完善你的扩展,并且在 PHP 社区中得到更多的重视。 1. 为你的扩展选择一个正确合适的名字 确保你的命名没有被其他项目使用。 扩展的名字需要和你的 PHP 命名空间保持一致。...将你的扩展开源 GitHub 可以免费管理这一类公共的项目。 GitHub 非常有助于你来管理这个开源项目,并且方便他人获取你的扩展。 如果你不想使用,可以尝试替代品: Bitbucket. 3....使用代码自动格式化工具,比如 PHP Coding Standards Fixer 。 使用代码风格检测工具,比如 PHP Code Sniffer 。 7. 编写单元测试 覆盖大部分的代码。...大部分PHP 开源项目使用 MIT 协议。 至少要在代码库中包含 LICENSE 文件。 还可以考虑在 Docblocks 中加入你的授权协议。 14.

    1.1K10

    PHP展开发(六)PHP扩展生命周期

    ZEND_DECLARE_MODULE_GLOBALS(sample4); 这里需要注意的是,在单线程和多线程环境中,该宏展开后的内容是不一样的: // 在单线程环境中,展开为定义了一个sample4_...CG() 核心全局变量,该宏主要是Zend引擎在脚本编译以及内核部分执行使用,在扩展开发中很少会用到。 PG() PHP全局变量,可用于访问php.ini中大部分核心指令。...注册常量 在PHP中,我们通常会使用define()定义一些常量,但是在扩展中,我们如何定义常量,让PHP能够访问呢?...在扩展开发中,通常使用REGISTER_*_CONSTANT()系列宏定义常量。 在PHP扩展中定义常量的时候,一般会在MINIT和RINIT函数中注册常量。...PHP_MINFO_FUNCTION(sample4) { php_info_print_table_start(); php_info_print_table_row(2, "Sample4

    1.3K40

    Php展开发(三)面向对象

    本节将会通过实现一个简单的PHP扩展类,介绍在PHP展开发过程中如何实现面向对象。...下面将对这三个步骤进行展开描述,我们将会继续在[PHP展开发 – 构建第一个PHP扩展]一节中创建的 ext_demo_1扩展的基础之上进行开发,这里我们所写的所有代码都在ext_demo_1.c文件中...类似于PHP_FUNCTION宏,这里的PHP_METHOD宏展开后如下所示: /* PHP_METHOD(ClassName, methodName) { } */ void zim_ClassName_methodName...接口和继承 与在PHP中使用类和接口类似,在扩展开发中,扩展内部的类也可以继承其它类或者实现接口。...对象创建 前面我们讲解了如何在PHP展开发中创建一个类,这里我们再说一说如何在扩展中实例化一个类,创建对象。

    1.2K20

    php展开发】扩展生成器

    什么是扩展生成器 每个php扩展都包含一些非常公共的并且非常单调的结构和文件,这些文件对所有扩展来说都是通用的。...当开始一个新扩展开发的时候,如果这些公共的结构已经存在,而不需要费力去复制每个文件的内容, 我们只需考虑填充功能代码那心情一定会愉快很多。 扩展生成器就是实现这些功能的脚本,帮助我们完成初始化工作。...PHP 源码中提供一个自带的生成器 ext_skel。他在 ext 目录下。 ext_skel ./ext_skel --help 它提示了我们脚本的命令行格式和支持的参数 ....源码 ext 目录下的文件夹名唯一 --proto=file 允许开发人员指定一个头文件,由此创建一系列 PHP 函数,表面上看就是要开发基于一个函数库的扩展,很少用 --stubs...-7.2.15/ext/ext_skel --extname=twinkle_log --skel=/usr/local/src/php-7.2.15/ext/skeleton/

    73610

    PHP展开发之执行run-tests.php脚本报错

    虽然PHP7.4带来了一个新扩展:PHP FFI,FFI提供了高级语言直接的互相调用,而对于PHP来说,FFI让我们可以方便的调用C语言写的各种库。...文件夹中以phpt结尾的文件 我们可以通过自带的run-test.php脚本来执行phpt文件,并且和脚本中的断言做比对 使用方式如下 php run-tests.php tests/001.phpt...遇到事情不要慌,打开谷歌翻译一下 就知道是必须设置环境变量TEST_PHP_EXECUTABLE来指定PHP可执行文件 那么我们可以临时修改一下环境变量,执行 export TEST_PHP_EXECUTABLE...=/usr/local/bin/php 替换对应的PHP可执行文件路径即可 也可以修改对应的配置文件,让它永久可以有效,这里就不说了,自行百度吧 phpt文件完整格式参考PHP: Quality Assurance...任何个人或团体,未经允许禁止转载本文:《PHP展开发之执行 run-tests.php 脚本报错》,谢谢合作!

    1.2K30

    php学习之html属性-表格(六)

    1.表格标记 表格的语法: 编号           //标题单元格(表头) 姓名 年龄 table标记的属性: border:表格边框                        值:数字 align:表格在网页中的水平方向    值:left、center、right...bordercolor:边框颜色                值:颜色 width:表格宽度                          值:数字 height:表格高度                          ...值:数字 bgcolor:表格背景色                   值:颜色 background:表格背景图             值:图片地址 cellpadding:内填充(边框到内容的距离...2.表格边框变细思路 原理是把边框改为0,间距改为1,通过背景颜色和前景色对比出来,就相当于边框变成了1 ? ? 案例一: ? ? 案例二: ? ? 您暂时无权访问此隐藏内容!

    2.5K31

    Php展开发(二)创建第一个Php扩展函数

    在讲解如何创建一个扩展函数之前,我们需要创建一个扩展的基本骨架,创建扩展的基本骨架请参考 [PHP展开发 – 构建第一个PHP扩展]。...在[PHP展开发 – 构建第一个PHP扩展]中,我们创建了一个名为ext_demo_1的扩展程序,进入扩展目录, 我们将看到如下文件: /vagrant/ext/ext_demo_1$ ls config.m4...这里的PHP_FUNCTION实际上是Zend定义的一个宏,展开后如下: #define PHP_FUNCTION(name) \ void zif_##name(INTERNAL_FUNCTION_PARAMETERS...,可读性考虑 */ return; } 这里的return_value为PHP_FUNCTION宏展开后,zif_sample_long函数的参数。...– 构建第一个PHP扩展]: {% post_url 2014-10-31-PHP展开发(一)构建第一个扩展 %}

    1.3K20
    领券