GitHub - arshidkv12/zig-php: PHP extension written in Zig

PHP Zig Extension Skeleton

This project provides a skeleton for building a PHP extension written in Zig. The goal of this project is to leverage Zig's performance and safety features within the PHP ecosystem. This guide will walk you through how to build and test the extension.

Requirements

  • PHP: You need a PHP installation with the ability to compile extensions (e.g., phpize).
  • Zig: Install the Zig programming language from Zig's official site.
  • GNU Make: Required to build the extension.
  • Autotools: Required for phpize and ./configure.

Zig version: 0.15.1+

System Dependencies (Linux/macOS)

sudo apt-get install php-dev make autoconf
# Or for macOS using Homebrew
brew install autoconf make php

Watch the video

Installation Instructions

  1. Clone the repository:
git clone https://github.com/arshidkv12/zig-php.git
cd zig-php
  1. Install PHP development headers and dependencies, such as phpize.
  2. Run the build process.

Building the Extension

Edit build.zig file. Add correct cwd_relative php path.

To build it:

  1. zig build
  2. phpize
  3. ./configure
  4. make

To test it:

php -d extension=./modules/my_php_extension.so -r "echo hello_world();"

Should output:

Hello from ZIG!