


PHP extension development: writing the first extension hello world
The content of this article is to share with you the writing of the first extension hello world in PHP extension development. It has a certain reference value. Friends in need can refer to it
PHP extension is for advanced PHP programmers One of the skills that must be understood. For a beginning PHP extension developer, how can he develop a mature extension and enter the advanced field of PHP development? This series of development tutorials will take you step by step from entry to advanced stages.
This tutorial series is developed under Linux (centos is recommended), the PHP version is 5.6, and it is assumed that you have certain experience in Linux, git operation and c/c foundation.
If you have any questions and need to communicate, please join the QQ technical exchange group 32550793 to communicate with me.
We use the easy-to-use PHP-CPP framework to develop PHP extensions. If you have certain Linux operating experience and C foundation, follow the steps below, I believe you can make your own in less than 10 minutes The first one expands out.
The following demonstration operations are all completed on the Linux centos system, and the php5.6 series has been installed in advance.
1. Download and install PHP-CPP
If you want to use PHP-CPP to compile your own php extension, you need to first download the source code of PHP-CPP and compile and install it.
PHP-CPP has two framework source codes, called PHP-CPP (new version) and PHP-CPP-LEGACY.
PHP-CPP (new version) is suitable for developing PHP-7 extensions, and PHP-CPP-LEGACY is suitable for developing 5. Extensions for each version of PHP are available.
Our operations below take PHP-CPP-LEGACY as an example.
If you know the git command, you can type the following git command directly on the terminal command line.
# git clone https://github.com/CopernicaMarketingSoftware/PHP-CPP-LEGACY.git
If you don’t know git, it doesn’t matter. You can directly open the github warehouse URL of the source code with a browser, download the source code compressed package and decompress it. The warehouse URL is
https://github.com/ CopernicaM….
After the download is completed, enter the source code directory of PHP-CPP-LEGACY and type the make command to compile the source code. After the compilation is completed, the relevant class libraries required for development extensions will be generated.
# make
Then run the make install command to install the generated class library and related development header files into the Linux system. When the extension is compiled, it can be automatically connected without configuring the header files and class library directories. On.
# sudo make install
2. Download the first extension helloworld
The source code of the first extension helloworld has been prepared on github. You can clone it directly with git command or download it manually.
# git clone https://github.com/elvisszhang/phpcpp_helloworld.git
Enter the helloworld source code directory and open main.cpp. You can see the following code structure, which has been added with Chinese comments.
The most important one is the get_module function, which is the entry function of the extension.
#include <phpcpp.h> #include <iostream> //这是PHP里面可以调用的接口函数 void say_hello() { //输出一段欢迎 Php::out << "hello world from my first extension" << std::endl; } /** * 告诉编译器get_module是个纯C函数 */ extern "C" { /** * 本函数在PHP进程一打开就会被访问,并返回一个描述扩展信息的PHP结构指针 */ PHPCPP_EXPORT void *get_module() { // 必须是static类型,因为扩展对象需要在PHP进程内常驻内存 static Php::Extension extension("helloworld", "1.0.0"); //这里可以添加你要暴露给PHP调用的函数 extension.add<say_hello>("say_hello"); // 返回扩展对象指针 return extension; } }
test.php is a piece of php code used for extended testing.
<?php say_hello();
3. Compile the first extension helloworld
Compiling this extension is very simple, just enter the make command at the terminal command line.
# make g++ -Wall -c -O2 -std=c++11 -fpic -o main.o main.cpp g++ -shared -o helloworld.so main.o -lphpcpp
As expected, you will see the helloworld.so extension file in the source directory. You can find that this file is very small, only 14K.
But now if you type the command php -m, you will find that the helloworld extension is not included in the PHP module, because we have not installed it into the PHP operating environment.
4. Install the first extension helloworld
Here we will temporarily introduce the method of manually installing the extension.
Step one: First use the php-config command to determine where the extension is stored
# php-config --extension-dir /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226
The above shows the extension installation on my server Location, everyone's server may have different configurations.
Step 2: Then copy helloworld.so to the extension storage directory.
# cp helloworld.so /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/
Step 3: Modify the php.ini file and enable the helloworld extension
Open the php.ini file, Add the following configuration items and add a new line anywhere in php.ini.
extension = helloworld.so
Step 4: Confirm that the helloworld extension has been installed successfully
Use the php -m command to view all extensions currently installed in PHP.
# php -m | grep helloworld helloworld
Judging from the response from the command line above, the helloworld extension has been installed successfully.
Step 5: Run test.php to confirm that the registered function can be used
or is in the extended source directory, run the following command
# php test.php hello world from my first extension
Judging from the response of the command line above, the say_hello function we registered with PHP through the extension has been successfully run. It seems very simple, but the current extension can only say hello and cannot do anything serious. We will improve it later so that he can do more things.
References
PHP-CPP installation and hello world
PHP-CPP official website tutorial
Related recommendations:
PHP extension development Comparison and introduction of related development technologies
The above is the detailed content of PHP extension development: writing the first extension hello world. For more information, please follow other related articles on the PHP Chinese website!

TomodifydatainaPHPsession,startthesessionwithsession_start(),thenuse$_SESSIONtoset,modify,orremovevariables.1)Startthesession.2)Setormodifysessionvariablesusing$_SESSION.3)Removevariableswithunset().4)Clearallvariableswithsession_unset().5)Destroythe

Arrays can be stored in PHP sessions. 1. Start the session and use session_start(). 2. Create an array and store it in $_SESSION. 3. Retrieve the array through $_SESSION. 4. Optimize session data to improve performance.

PHP session garbage collection is triggered through a probability mechanism to clean up expired session data. 1) Set the trigger probability and session life cycle in the configuration file; 2) You can use cron tasks to optimize high-load applications; 3) You need to balance the garbage collection frequency and performance to avoid data loss.

Tracking user session activities in PHP is implemented through session management. 1) Use session_start() to start the session. 2) Store and access data through the $_SESSION array. 3) Call session_destroy() to end the session. Session tracking is used for user behavior analysis, security monitoring, and performance optimization.

Using databases to store PHP session data can improve performance and scalability. 1) Configure MySQL to store session data: Set up the session processor in php.ini or PHP code. 2) Implement custom session processor: define open, close, read, write and other functions to interact with the database. 3) Optimization and best practices: Use indexing, caching, data compression and distributed storage to improve performance.

PHPsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIDstoredinacookie.Here'showtomanagethemeffectively:1)Startasessionwithsession_start()andstoredatain$_SESSION.2)RegeneratethesessionIDafterloginwithsession_regenerate_id(true)topreventsessi

In PHP, iterating through session data can be achieved through the following steps: 1. Start the session using session_start(). 2. Iterate through foreach loop through all key-value pairs in the $_SESSION array. 3. When processing complex data structures, use is_array() or is_object() functions and use print_r() to output detailed information. 4. When optimizing traversal, paging can be used to avoid processing large amounts of data at one time. This will help you manage and use PHP session data more efficiently in your actual project.

The session realizes user authentication through the server-side state management mechanism. 1) Session creation and generation of unique IDs, 2) IDs are passed through cookies, 3) Server stores and accesses session data through IDs, 4) User authentication and status management are realized, improving application security and user experience.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Chinese version
Chinese version, very easy to use
