iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP扩展入门 我的第一个扩展
  • 537
分享到

PHP扩展入门 我的第一个扩展

2024-02-27 20:02:29 537人浏览 独家记忆
摘要

虽说现在的PHP功能已经非常完善,一般情况下不需要我们自己手动扩展就已经可以完全支持我们的使用。但是,我觉得掌握扩展php这门技术对于我们以后的发展应该是很有帮助的。 下面我就带大家开始扩展PHP。

虽说现在的PHP功能已经非常完善,一般情况下不需要我们自己手动扩展就已经可以完全支持我们的使用。但是,我觉得掌握扩展php这门技术对于我们以后的发展应该是很有帮助的。

下面我就带大家开始扩展PHP。

首先我们需要下载PHP源码。下载完成以后,我们第一步要做的就是安装PHP。准备工作完成以后,下面开始我们正式的PHP扩展。

我们的源码根目录以/software/php5为例。

生成骨架

在源码根目录下有ext文件夹,我们进入该文件夹

# cd /software/php5/ext

然后使用其扩展工具ext_skel来生成相应的骨架。

# ./ext_skel –extname=onmpw   //--extname选项的作用就是指定扩展的名称。

该命令执行完成以后,输出如下的内容

Creating directory onmpw
Creating basic files: config.m4 config.w32 .svnignore onmpw.c php_onmpw.h CREDITS EXPERIMENTAL tests/001.phpt onmpw.php [done].
 
To use your new extension, you will have to execute the following steps:
 
1.  $ cd ..
2.  $ vi ext/onmpw/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-onmpw
5.  $ make
6.  $ ./sapi/cli/php -f ext/onmpw/onmpw.php
7.  $ vi ext/onmpw/onmpw.c
8.  $ make
 
Repeat steps 3-6 until you are satisfied with ext/onmpw/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.

这说明我们的命令已经成功执行。我们发现在ext目录下会产生一个onmpw文件夹。查看该文件夹中的内容,会有下面的几个文件。

config.m4  config.w32  CREDITS  EXPERIMENTAL  onmpw.c  onmpw.php  php_onmpw.h  tests

编辑文件

接着我们编辑config.m4文件,找到如下的内容

dnl PHP_ARG_ENABLE(onmpw, whether to enable onmpw support,
dnl Make sure that the comment is aligned:
dnl [  --enable-onmpw           Enable onmpw support])

然后将注释去掉,也就是删掉每行开头的dnl。

打开onmpw.c文件,在文件的最后添加如下代码

PHP_FUNCTION(onmpw_hello_world)
{
        php_printf("Hello World!!\r\n");
}

这里面就是我们的方法体。onmpw_hello_world是方法名称,也就是我们在php代码中调用的方法名。

const zend_function_entry zts_research_functions[] = {
        PHP_FE(onmpw_hello_world,        NULL)
        PHP_FE_END     
};

然后我们找到上面的代码,按照上面的形式添加PHP_FE(onmpw_hello_world, NULL)。修改完成以后保存退出。

然后再编辑php_onmpw.h文件。在大概45行的位置添加如下代码

PHP_FUNCTION(onmpw_hello_world);

然后保存退出。

编译扩展

我们PHP安装目录以/usr/local/php5为例。

这里编译分两种情况,一种是动态编译,一种是静态编译。下面我们先来看如何进行动态编译。

动态编译

动态编译需要用到一个工具phpize。该工具在/usr/local/php5/bin 目录下。动态编译步骤如下:

# cd ext/onmpw   //进入扩展目录
# /usr/local/php5/bin/phpize  //生成配置文件等
# ./configure –php-config=/usr/local/php5/bin/php-config
# make && make install

成功以后会在/usr/local/php5//lib/php/extensions/no-debug-non-zts-20121212/目录下产生onmpw.so类库。然后我们在php.ini中引入该类库就可以使用了。

静态编译

静态编译相当于重新编译安装php,但是静态编译成功后不需要我们再在php.ini文件中进行配置就可以使用我们的扩展。

进行静态编译需要用到buildconf这个工具,该工具在源码根目录下。静态编译的步骤如下

# cd /software/php5
# ./buildconf –force
# ./configure –enable-onmpw
# make && make install

这样就可以在php代码中直接使用hello_world函数了。

通过以上的步骤我们就可以实现自己的php扩展了。这里需要说明一下,在开头部分,我们讲到将扩展放到源码根目录下的ext目录下。其实这并不是必须的,只是为了便于管理,我们可以将其放在任何的位置。比如/extensions目录下。但是,在使用ext_skel生成骨架的时候要使用—skel选项来指定目录这个目录就是源码中的ext/skeleton。

# cd /extensions
# /software/php5/ext/ext_skel –extname=onmpw –skel=/software/php5/ext/skeleton

到这,基本上一个完整的简单的扩展就可以实现了。希望本文对大家有所帮助。

--结束END--

本文标题: PHP扩展入门 我的第一个扩展

本文链接: https://www.lsjlt.com/news/568922.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP扩展入门 我的第一个扩展
    虽说现在的PHP功能已经非常完善,一般情况下不需要我们自己手动扩展就已经可以完全支持我们的使用。但是,我觉得掌握扩展PHP这门技术对于我们以后的发展应该是很有帮助的。 下面我就带大家开始扩展PHP。...
    99+
    2024-02-27
  • PHP扩展开发入门指南:一步步构建你的第一个PHP扩展
    了解PHP扩展的基础知识 在开始构建PHP扩展之前,你应该首先了解PHP扩展的基础知识。PHP扩展是一种动态加载的代码库,它可以扩展PHP的内置功能,为PHP提供新的功能和特性。PHP扩展可以使用C语言、C++语言或汇编语言编写,并通过...
    99+
    2024-02-11
    PHP扩展开发 PHP扩展构建 PHP扩展入门 PHP扩展教程 PHP扩展指南
  • PHP扩展开发--入门
    环境介绍:         centos7、php7.4 实现功能:写个简单类,包含name属性和一个say方法; 打开PHP安装的源码包,进入/usr/local/resource/php-7.4.24/ext         执行命令:...
    99+
    2023-10-11
    php 服务器
  • PHP入门指南:CURL扩展
    PHP是一门广泛应用于Web开发的语言,而CURL是PHP中被广泛使用的扩展之一。本文将为大家介绍CURL的基本用法和应用,帮助初学者快速入门。一、CURL介绍CURL是一种使用URL语法传输数据的命令行工具,也是一种支持多种协议的库,可以...
    99+
    2023-05-21
    PHP 入门指南 CURL扩展
  • PHP入门指南:JSON扩展
    PHP是一门广泛使用的编程语言,尤其在Web开发中,PHP占据着重要的地位。其中,JSON是一种常见的数据格式,它可以用于存储和传输数据。PHP中提供了JSON扩展,方便开发人员对JSON数据进行操作和处理。本文将介绍JSON扩展的基本用法...
    99+
    2023-05-20
    指南 PHP入门 JSON扩展
  • PHP入门指南:DOM扩展
    PHP是最常用的网络编程语言之一,其使用广泛,而且应用领域非常广泛。其中,DOM扩展是PHP中用来处理XML文档的一种常用方法。本文将介绍初学者如何使用PHP的DOM扩展来操作XML文档。什么是DOM扩展?DOM(Document Obje...
    99+
    2023-05-25
    PHP 入门指南 DOM扩展
  • PHP入门指南:CURL扩展
    CURL是一个用于与网络资源交互的工具库,可以通过PHP的CURL扩展来使用。这个扩展提供了各种函数和选项,用于发送和接收HTTP请...
    99+
    2023-09-05
    php
  • PHP入门指南:SOAP扩展
    PHP作为一种流行的服务器端编程语言,提供了丰富的扩展来满足不同的需求。其中,SOAP扩展是一种用于创建和使用web服务的工具,可以让开发人员在PHP中实现跨平台的数据传输。如果你想了解如何使用SOAP扩展,那么这篇入门指南就是为你准备的。...
    99+
    2023-05-20
    PHP 入门指南 SOAP扩展
  • PHP入门指南:PHP扩展安装
    在使用PHP进行开发时,我们可能需要使用一些PHP扩展。这些扩展可以为我们提供更多的功能和工具,使我们的开发工作更加高效和便捷。但在使用这些扩展之前,我们需要先进行安装。本篇文章将为您介绍PHP扩展的安装方法。一、什么是PHP扩展?PHP扩...
    99+
    2023-05-20
    安装 PHP扩展 PHP入门指南
  • 面向初学者的PHP扩展教程:用PHP扩展扩展PHP功能
    PHP扩展是指通过自定义PHP扩展库来扩展PHP的功能,主要目的是满足程序在不同场景下的需求。本文将通过一系列编码案例,对PHP扩展的编写进行讲解,实现定制化功能的需求。 扩展的类型 PHP扩展库有多种类型,其中最常见的是: 函数扩展库...
    99+
    2024-02-11
    PHP 扩展库 扩展功能
  • python扩展库numpy入门教程
    目录一、numpy是什么?二、numpy数组2.1 数组使用2.2 创建数组1. 使用empty创建空数组2. 使用arange函数创建3. 使用zeros函数生成数组4. ones...
    99+
    2024-04-02
  • 如何编写一个独立的PHP扩展
    本篇文章给大家分享的是有关如何编写一个独立的PHP扩展,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。独立的 PHP 扩展可以独立于 PHP 源码之外进行分发。要创建一个这样的扩...
    99+
    2023-06-17
  • PHP扩展开发指南:深入研究PHP扩展开发的方方面面
    PHP扩展开发指南 1. 概述 PHP扩展是用于增强PHP功能的二进制模块。它们可以用于实现各种目的,例如添加对新数据类型或函数的支持,或者提高PHP性能。开发PHP扩展需要具备一定的C语言编程知识,熟悉PHP的扩展开发API。 2. 开...
    99+
    2024-02-11
    PHP扩展 扩展开发 环境搭建 编写 编译 安装 故障排除 扩展维护
  • PHP 函数的扩展和第三方模块
    要扩展 php 函数功能,可以使用扩展和第三方模块。扩展提供附加函数和类,可通过 pecl 包管理器安装和启用。第三方模块提供特定功能,可通过 composer 包管理器安装。实践案例包...
    99+
    2024-04-13
    php 扩展 composer
  • PHP Redis扩展实战指南:从入门到精通
    1、安装与配置 首先,您需要安装PHP Redis扩展。您可以使用PECL命令来安装它: pecl install redis 安装完成后,您需要在php.ini文件中启用Redis扩展。在php.ini文件中找到extension=r...
    99+
    2024-02-06
    PHP Redis 数据库 操作 示例
  • PHP Phar 扩展入门:构建自包含式应用
    PHP Phar 扩展允许开发者构建自包含式 PHP 应用,其中所有必需的文件和资源都打包在一个档案中。这简化了分布和部署,确保应用可以在任何具有 PHP 运行时环境的系统上运行。 创建 Phar 档案 要创建 Phar 档案,可以使用 ...
    99+
    2024-04-02
  • #000 Python 入门第一题通过扩
    我觉得这样学习或许能够在学习的过程中事半功倍   第一道简单的python编写代码输出10行带标号的“Hello,world.”,具体效果参阅输入输出示例   1:Hello,world. 2:Hello,world. 3:He...
    99+
    2023-01-30
    入门 Python
  • PHP中的水平扩展
    PHP是一种广泛应用于Web开发的脚本语言,它的流行度和应用范围都在不断扩大。但在PHP的应用中,我们有时候会遇到一些性能问题,比如PHP编写的应用程序在高并发下响应速度缓慢,甚至会出现崩溃的情况。为了解决这些问题,我们需要考虑PHP的水平...
    99+
    2023-05-25
    水平扩展 PHP 扩展
  • 为 Python 写一个 C++ 扩展模块
    使用 C 扩展为 Python 提供特定功能。在前一篇文章中,我介绍了 ​​六个 Python 解释器​​。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 A...
    99+
    2023-05-14
    Python 模块 C++
  • 我所使用的Python扩展程序 for
    ActivePython-3.1.3.5-win32-x86.msi bzr-2.3.1.win32-py2.6.exe CherryPy-3.2.0-py2.win32.exe dreampie-1.1.1-...
    99+
    2023-01-31
    我所 程序 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作