Skip to content

PHP PIE integration (step 1)#601

Open
abenevaut wants to merge 11 commits into
laruence:masterfrom
abenevaut:feat/pie
Open

PHP PIE integration (step 1)#601
abenevaut wants to merge 11 commits into
laruence:masterfrom
abenevaut:feat/pie

Conversation

@abenevaut

@abenevaut abenevaut commented Feb 9, 2026

Copy link
Copy Markdown

Goal to archive: register YAF C extension to packagist.org like ext-redis https://packagist.org/?query=ext-redis that refer https://packagist.org/packages/phpredis/phpredis

This PR:

  • add composer.json to register and identify extension on packagist.org
    - if you accept the PR, package registration need a account and a package submission on packagist.org
  • update workflow to build YAF in linux & windows and test the build on linux (available on windows but some fails)

Pipeline execution example https://github.com/abenevaut/php-yaf/actions/runs/21839319291

Next Step:

  • add release pipeline to build extension as dynamic library and host it in the github release (example https://github.com/asgrim/example-pie-extension/releases/tag/2.0.9 - https://github.com/asgrim/example-pie-extension/blob/main/.github/workflows/draft-release-with-binaries-on-tag.yml)

resources:


How to test

Following, a Dockerfile to host PHP, build-essentials and PIE.

FROM debian:trixie

USER root
WORKDIR /

RUN apt-get -y update
RUN apt-get -y install gcc make autoconf libtool bison re2c pkg-config php-dev

RUN php -r "copy('https://github.com/php/pie/releases/download/1.3.8/pie.phar', 'pie.phar');"

ENTRYPOINT ["php", "/pie.phar"]
CMD ["--help"]

Build the image

docker build . -f Dockerfile -t pie:test

Run the container in YAF project directory and install laruence/yaf from sources inside the container with PIE 🫶

docker run --rm -v .:/src -w /src -it pie:test install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant