├── .editorconfig ├── .env.example ├── .gitattributes ├── .github └── workflows │ ├── build.yml │ ├── mkrepo.yml │ ├── pr.yml │ └── sync.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── Procfile ├── README.md ├── SECURITY.md ├── TROUBLESHOOTING.md ├── composer.json ├── composer.lock ├── docker ├── build │ └── .gitkeep ├── heroku-20.Dockerfile └── heroku-22.Dockerfile ├── extensions ├── no-debug-non-zts-20131226 │ ├── igbinary │ ├── msgpack │ ├── openswoole │ ├── redis │ ├── relay │ └── swoole ├── no-debug-non-zts-20180731 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-4.12.1 │ ├── redis-6.0.2 │ └── swoole-4.8.13 ├── no-debug-non-zts-20190902 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-4.12.1 │ ├── redis-6.0.2 │ ├── relay-0.6.8 │ └── swoole-4.8.13 ├── no-debug-non-zts-20200930 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-4.12.1 │ ├── redis-6.0.2 │ ├── relay-0.6.8 │ └── swoole-4.8.13 ├── no-debug-non-zts-20210902 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-4.12.1 │ ├── redis-6.0.2 │ ├── relay-0.6.8 │ └── swoole-4.8.13 ├── no-debug-non-zts-20220829 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-4.12.1 │ ├── redis-6.0.2 │ ├── relay-0.6.8 │ └── swoole-4.8.13 └── no-debug-non-zts-20230831 │ ├── igbinary-3.2.15 │ ├── msgpack-2.2.0 │ ├── openswoole-22.1.0 │ ├── redis-6.0.2 │ ├── relay-0.6.8 │ └── swoole-5.1.1 ├── libraries ├── liblzf ├── liblzf-3.6 ├── lz4 ├── lz4-1.9.3 ├── zstd └── zstd-1.4.9 └── web ├── .htaccess ├── card-general.phtml ├── card-igbinary.phtml ├── card-msgpack.phtml ├── card-openswoole.phtml ├── card-redis.phtml ├── card-relay.phtml ├── card-swoole.phtml ├── footer.phtml ├── header.phtml ├── index.html └── index.php /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml,phtml}] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | S3_BUCKET= 2 | S3_PREFIX= 3 | S3_REGION=s3 4 | 5 | UPSTREAM_S3_BUCKET=lang-php 6 | UPSTREAM_S3_PREFIX=dist-heroku-22-stable/ 7 | 8 | AWS_ACCESS_KEY_ID= 9 | AWS_SECRET_ACCESS_KEY= -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | web/* linguist-documentation 2 | web/index.html linguist-vendored 3 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Build extensions 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | 11 | build: 12 | name: Build and deploy 13 | runs-on: ubuntu-latest 14 | timeout-minutes: 20 15 | 16 | env: 17 | S3_BUCKET: heroku-php-extensions 18 | BUILDPACK: ./vendor/heroku/heroku-buildpack-php 19 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 20 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 21 | 22 | strategy: 23 | matrix: 24 | stack: 25 | - heroku-20 26 | - heroku-22 27 | series: 28 | - 20210902 # PHP 8.1 29 | - 20220829 # PHP 8.2 30 | - 20230831 # PHP 8.3 31 | 32 | steps: 33 | - name: Checkout 34 | uses: actions/checkout@v3 35 | 36 | - name: Composer Install 37 | run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs 38 | 39 | - name: Copy requirements 40 | run: cp ${BUILDPACK}/requirements.txt . 41 | 42 | - name: Build Dockerfile 43 | run: | 44 | cat ${BUILDPACK}/support/build/_docker/${{ matrix.stack }}.Dockerfile > docker/build/${{ matrix.stack }}.Dockerfile 45 | cat docker/${{ matrix.stack }}.Dockerfile >> docker/build/${{ matrix.stack }}.Dockerfile 46 | 47 | - name: Docker build 48 | run: docker build --pull --tag ${{ matrix.stack }} --file docker/build/${{ matrix.stack }}.Dockerfile . 49 | 50 | - name: Build liblzf library 51 | shell: 'script -q -e -c "bash {0}"' 52 | run: | 53 | docker run --rm -ti \ 54 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 55 | ${{ matrix.stack }} deploy.sh --overwrite libraries/liblzf-3.6 56 | 57 | - name: Build lz4 library 58 | shell: 'script -q -e -c "bash {0}"' 59 | run: | 60 | docker run --rm -ti \ 61 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 62 | ${{ matrix.stack }} deploy.sh --overwrite libraries/lz4-1.9.3 63 | 64 | - name: Build zstd library 65 | shell: 'script -q -e -c "bash {0}"' 66 | run: | 67 | docker run --rm -ti \ 68 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 69 | ${{ matrix.stack }} deploy.sh --overwrite libraries/zstd-1.4.9 70 | 71 | - name: Build igbinary extension 72 | shell: 'script -q -e -c "bash {0}"' 73 | run: | 74 | docker run --rm -ti \ 75 | --env UPSTREAM_S3_BUCKET=lang-php \ 76 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 77 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 78 | ${{ matrix.stack }} deploy.sh --overwrite \ 79 | extensions/no-debug-non-zts-${{ matrix.series }}/igbinary-3.2.15 80 | 81 | - name: Build msgpack extension 82 | shell: 'script -q -e -c "bash {0}"' 83 | run: | 84 | docker run --rm -ti \ 85 | --env UPSTREAM_S3_BUCKET=lang-php \ 86 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 87 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 88 | ${{ matrix.stack }} deploy.sh --overwrite \ 89 | extensions/no-debug-non-zts-${{ matrix.series }}/msgpack-2.2.0 90 | 91 | - name: Build redis extension 92 | shell: 'script -q -e -c "bash {0}"' 93 | run: | 94 | docker run --rm -ti \ 95 | --env UPSTREAM_S3_BUCKET=lang-php \ 96 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 97 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 98 | ${{ matrix.stack }} deploy.sh --overwrite \ 99 | extensions/no-debug-non-zts-${{ matrix.series }}/redis-6.0.2 100 | 101 | - name: Build relay extension 102 | shell: 'script -q -e -c "bash {0}"' 103 | run: | 104 | docker run --rm -ti \ 105 | --env UPSTREAM_S3_BUCKET=lang-php \ 106 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 107 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 108 | ${{ matrix.stack }} deploy.sh --overwrite \ 109 | extensions/no-debug-non-zts-${{ matrix.series }}/relay-0.6.8 110 | 111 | - name: Build swoole 4.x extension 112 | if: matrix.series <= 20220829 113 | shell: 'script -q -e -c "bash {0}"' 114 | run: | 115 | docker run --rm -ti \ 116 | --env UPSTREAM_S3_BUCKET=lang-php \ 117 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 118 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 119 | ${{ matrix.stack }} deploy.sh --overwrite \ 120 | extensions/no-debug-non-zts-${{ matrix.series }}/swoole-4.8.13 121 | 122 | - name: Build swoole 5.x extension 123 | if: matrix.series >= 20230831 124 | shell: 'script -q -e -c "bash {0}"' 125 | run: | 126 | docker run --rm -ti \ 127 | --env UPSTREAM_S3_BUCKET=lang-php \ 128 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 129 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 130 | ${{ matrix.stack }} deploy.sh --overwrite \ 131 | extensions/no-debug-non-zts-${{ matrix.series }}/swoole-5.1.1 132 | 133 | - name: Build openswoole 4.x extension 134 | if: matrix.series <= 20220829 135 | shell: 'script -q -e -c "bash {0}"' 136 | run: | 137 | docker run --rm -ti \ 138 | --env UPSTREAM_S3_BUCKET=lang-php \ 139 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 140 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 141 | ${{ matrix.stack }} deploy.sh --overwrite \ 142 | extensions/no-debug-non-zts-${{ matrix.series }}/openswoole-4.12.1 143 | 144 | - name: Build openswoole 22.x extension 145 | if: matrix.series >= 20230831 146 | shell: 'script -q -e -c "bash {0}"' 147 | run: | 148 | docker run --rm -ti \ 149 | --env UPSTREAM_S3_BUCKET=lang-php \ 150 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 151 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 152 | ${{ matrix.stack }} deploy.sh --overwrite \ 153 | extensions/no-debug-non-zts-${{ matrix.series }}/openswoole-22.1.0 154 | -------------------------------------------------------------------------------- /.github/workflows/mkrepo.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Make repositories 3 | 4 | on: 5 | workflow_dispatch: 6 | workflow_run: 7 | workflows: ["Build extensions"] 8 | branches: 9 | - main 10 | types: 11 | - completed 12 | 13 | jobs: 14 | 15 | mkrepo: 16 | name: Make repository 17 | runs-on: ubuntu-latest 18 | timeout-minutes: 20 19 | 20 | if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} 21 | 22 | strategy: 23 | matrix: 24 | stack: 25 | - heroku-20 26 | - heroku-22 27 | 28 | env: 29 | S3_BUCKET: heroku-php-extensions 30 | BUILDPACK: ./vendor/heroku/heroku-buildpack-php 31 | 32 | steps: 33 | - name: Checkout 34 | uses: actions/checkout@v3 35 | 36 | - name: Composer Install 37 | run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs 38 | 39 | - name: Copy requirements 40 | run: cp ${BUILDPACK}/requirements.txt . 41 | 42 | - name: Build Dockerfile 43 | run: | 44 | cat ${BUILDPACK}/support/build/_docker/${{ matrix.stack }}.Dockerfile > docker/build/${{ matrix.stack }}.Dockerfile 45 | cat docker/${{ matrix.stack }}.Dockerfile >> docker/build/${{ matrix.stack }}.Dockerfile 46 | 47 | - name: Docker build 48 | run: docker build --pull --tag ${{ matrix.stack }} --file docker/build/${{ matrix.stack }}.Dockerfile . 49 | 50 | - name: Make and upload repository 51 | shell: 'script -q -e -c "bash {0}"' 52 | env: 53 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 54 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 55 | run: | 56 | docker run --rm -ti \ 57 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 58 | ${{ matrix.stack }} mkrepo.sh --upload 59 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Test PR builds 3 | 4 | on: pull_request 5 | 6 | env: 7 | S3_BUCKET: heroku-php-extensions 8 | S3_PREFIX: pull-requests/${{ github.event.number }}/ 9 | BUILDPACK: ./vendor/heroku/heroku-buildpack-php 10 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 11 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 12 | 13 | jobs: 14 | 15 | build: 16 | name: Test building 17 | runs-on: ubuntu-latest 18 | timeout-minutes: 20 19 | 20 | strategy: 21 | matrix: 22 | stack: 23 | - heroku-20 24 | - heroku-22 25 | series: 26 | - 20210902 # PHP 8.1 27 | - 20220829 # PHP 8.2 28 | - 20230831 # PHP 8.3 29 | 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v3 33 | 34 | - name: Composer Install 35 | run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs 36 | 37 | - name: Copy requirements 38 | run: cp ${BUILDPACK}/requirements.txt . 39 | 40 | - name: Build Dockerfile 41 | run: | 42 | cat ${BUILDPACK}/support/build/_docker/${{ matrix.stack }}.Dockerfile > docker/build/${{ matrix.stack }}.Dockerfile 43 | cat docker/${{ matrix.stack }}.Dockerfile >> docker/build/${{ matrix.stack }}.Dockerfile 44 | 45 | - name: Docker build 46 | run: docker build --pull --tag ${{ matrix.stack }} --file docker/build/${{ matrix.stack }}.Dockerfile . 47 | 48 | - name: Build liblzf library 49 | shell: 'script -q -e -c "bash {0}"' 50 | run: | 51 | docker run --rm -ti \ 52 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 53 | ${{ matrix.stack }} deploy.sh --overwrite libraries/liblzf-3.6 54 | 55 | - name: Build lz4 library 56 | shell: 'script -q -e -c "bash {0}"' 57 | run: | 58 | docker run --rm -ti \ 59 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 60 | ${{ matrix.stack }} deploy.sh --overwrite libraries/lz4-1.9.3 61 | 62 | - name: Build zstd library 63 | shell: 'script -q -e -c "bash {0}"' 64 | run: | 65 | docker run --rm -ti \ 66 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 67 | ${{ matrix.stack }} deploy.sh --overwrite libraries/zstd-1.4.9 68 | 69 | - name: Build igbinary extension 70 | shell: 'script -q -e -c "bash {0}"' 71 | run: | 72 | docker run --rm -ti \ 73 | --env UPSTREAM_S3_BUCKET=lang-php \ 74 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 75 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 76 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/igbinary-3.2.15 77 | 78 | - name: Build msgpack extension 79 | shell: 'script -q -e -c "bash {0}"' 80 | run: | 81 | docker run --rm -ti \ 82 | --env UPSTREAM_S3_BUCKET=lang-php \ 83 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 84 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 85 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/msgpack-2.2.0 86 | 87 | - name: Build redis extension 88 | shell: 'script -q -e -c "bash {0}"' 89 | run: | 90 | docker run --rm -ti \ 91 | --env UPSTREAM_S3_BUCKET=lang-php \ 92 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 93 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 94 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/redis-6.0.2 95 | 96 | - name: Build relay extension 97 | shell: 'script -q -e -c "bash {0}"' 98 | run: | 99 | docker run --rm -ti \ 100 | --env UPSTREAM_S3_BUCKET=lang-php \ 101 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 102 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 103 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/relay-0.6.8 104 | 105 | - name: Build swoole 4.x extension 106 | if: matrix.series <= 20220829 107 | shell: 'script -q -e -c "bash {0}"' 108 | run: | 109 | docker run --rm -ti \ 110 | --env UPSTREAM_S3_BUCKET=lang-php \ 111 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 112 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 113 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/swoole-4.8.13 114 | 115 | - name: Build swoole 5.x extension 116 | if: matrix.series >= 20230831 117 | shell: 'script -q -e -c "bash {0}"' 118 | run: | 119 | docker run --rm -ti \ 120 | --env UPSTREAM_S3_BUCKET=lang-php \ 121 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 122 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 123 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/swoole-5.1.1 124 | 125 | - name: Build openswoole 4.x extension 126 | if: matrix.series <= 20220829 127 | shell: 'script -q -e -c "bash {0}"' 128 | run: | 129 | docker run --rm -ti \ 130 | --env UPSTREAM_S3_BUCKET=lang-php \ 131 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 132 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 133 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/openswoole-4.12.1 134 | 135 | - name: Build openswoole 22.x extension 136 | if: matrix.series >= 20230831 137 | shell: 'script -q -e -c "bash {0}"' 138 | run: | 139 | docker run --rm -ti \ 140 | --env UPSTREAM_S3_BUCKET=lang-php \ 141 | --env UPSTREAM_S3_PREFIX=dist-${{ matrix.stack }}-stable/ \ 142 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 143 | ${{ matrix.stack }} deploy.sh --overwrite extensions/no-debug-non-zts-${{ matrix.series }}/openswoole-22.1.0 144 | 145 | mkrepo: 146 | name: Make repository 147 | runs-on: ubuntu-latest 148 | timeout-minutes: 20 149 | needs: build 150 | 151 | strategy: 152 | matrix: 153 | stack: 154 | - heroku-20 155 | - heroku-22 156 | 157 | steps: 158 | - name: Checkout 159 | uses: actions/checkout@v3 160 | 161 | - name: Composer Install 162 | run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs 163 | 164 | - name: Copy requirements 165 | run: cp ${BUILDPACK}/requirements.txt . 166 | 167 | - name: Build Dockerfile 168 | run: | 169 | cat ${BUILDPACK}/support/build/_docker/${{ matrix.stack }}.Dockerfile > docker/build/${{ matrix.stack }}.Dockerfile 170 | cat docker/${{ matrix.stack }}.Dockerfile >> docker/build/${{ matrix.stack }}.Dockerfile 171 | 172 | - name: Docker build 173 | run: docker build --pull --tag ${{ matrix.stack }} --file docker/build/${{ matrix.stack }}.Dockerfile . 174 | 175 | - name: Make and upload repository 176 | shell: 'script -q -e -c "bash {0}"' 177 | run: | 178 | docker run --rm -ti \ 179 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 180 | ${{ matrix.stack }} mkrepo.sh --upload 181 | -------------------------------------------------------------------------------- /.github/workflows/sync.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Synchronize 3 | 4 | on: 5 | workflow_dispatch: 6 | release: 7 | types: [published] 8 | 9 | jobs: 10 | 11 | sync: 12 | name: Synchronize 13 | runs-on: ubuntu-latest 14 | timeout-minutes: 20 15 | 16 | strategy: 17 | matrix: 18 | stack: 19 | - heroku-20 20 | - heroku-22 21 | 22 | env: 23 | S3_BUCKET: heroku-php-extensions 24 | BUILDPACK: ./vendor/heroku/heroku-buildpack-php 25 | 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@v3 29 | 30 | - name: Composer Install 31 | run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs 32 | 33 | - name: Copy requirements 34 | run: cp ${BUILDPACK}/requirements.txt . 35 | 36 | - name: Build Dockerfile 37 | run: | 38 | cat ${BUILDPACK}/support/build/_docker/${{ matrix.stack }}.Dockerfile > docker/build/${{ matrix.stack }}.Dockerfile 39 | cat docker/${{ matrix.stack }}.Dockerfile >> docker/build/${{ matrix.stack }}.Dockerfile 40 | 41 | - name: Docker build 42 | run: docker build --pull --tag ${{ matrix.stack }} --file docker/build/${{ matrix.stack }}.Dockerfile . 43 | 44 | - name: Synchronize stable repository 45 | shell: 'script -q -e -c "bash {0}"' 46 | env: 47 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 48 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 49 | run: | 50 | echo "yes" | docker run --rm -i \ 51 | --env-file=${BUILDPACK}/support/build/_docker/env.default \ 52 | ${{ matrix.stack }} sync.sh $S3_BUCKET dist-${{ matrix.stack }}-stable/ $S3_BUCKET dist-${{ matrix.stack }}-develop/ 53 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /docker/build/*.Dockerfile 2 | /vendor 3 | .env 4 | requirements.txt 5 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [2.0.1] - 2023-12-15 9 | - Fixed Relay build for heroku-22 10 | 11 | ## [2.0.0] - 2023-12-12 12 | - Added PHP 8.2 and 8.3 support 13 | - Dropped `heroku-18` support 14 | - Dropped PHP 7.3, 7.4 and 8.0 support 15 | - Upgraded Swoole to v5.1.1 for PHP 8.3 16 | - Upgraded OpenSwoole to v22.1.0 for PHP 8.3 17 | - Updated Swoole to v4.8.13 18 | - Updated OpenSwoole to v4.12.1 19 | - Updated [Relay](https://github.com/cachewerk) to v0.6.8 20 | - Updated PhpRedis to v6.0.2 21 | - Updated igbinary to v3.2.15 22 | - Updated msgpack to v2.2.0 23 | 24 | ## [1.2.6] - 2022-10-11 25 | - Added support for `heroku-22` stack 26 | - Added [OpenSwoole](https://github.com/openswoole/swoole-src) v4.12.0 27 | - Updated [Relay](https://github.com/cachewerk) to v0.4.6 28 | - Updated PhpRedis to v5.3.7 29 | - Updated Swoole to v4.8.12 30 | 31 | ## [1.2.5] - 2022-01-14 32 | - Updated Swoole to v4.8.6 33 | - Updated PhpRedis to v5.3.5 34 | - Updated igbinary to v3.2.7 35 | 36 | ## [1.2.4] - 2021-12-10 37 | - Added [PHP 8.1](https://devcenter.heroku.com/changelog-items/2304) builds 38 | - Updated [Relay](https://relaycache.com) to v0.2.2 39 | - Updated Swoole to v4.8.3 40 | 41 | ## [1.2.3] - 2021-10-26 42 | - Updated [Relay](https://relaycache.com) to v0.2.0 43 | - Updated igbinary to v3.2.6 44 | - Updated Swoole to v4.8.0 45 | 46 | ## [1.2.2] - 2021-06-23 47 | - Updated Relay to v0.1.1 48 | - Updated igbinary to v3.2.3 49 | 50 | ## [1.2.1] - 2021-05-26 51 | - Added Relay configuration file 52 | - Enabled msgpack for PhpRedis 53 | - Fixed `require` blocks for Relay and PhpRedis 54 | 55 | ## [1.2.0] - 2021-05-26 56 | - Added [Relay](https://relaycache.com) v0.1.0 57 | - Added [MessagePack](https://github.com/msgpack/msgpack-php) v2.1.2 58 | - Updated Swoole to v4.6.7 59 | - Updated PhpRedis to v5.3.4 60 | - Updated igbinary to v3.2.2 61 | 62 | ## [1.1.1] - 2021-05-05 63 | - Updated Swoole to v4.6.4 64 | - Fixed demo app output for Swoole 65 | 66 | ## [1.1.0] - 2021-03-26 67 | - Added [Swoole](https://github.com/swoole/swoole-src) v4.6.4 68 | - Overhauled demo app 69 | - Only build on push to `main` branch 70 | - Make repos after successful build workflow 71 | - Sync repos when a release is published 72 | - Run builds for pull requests 73 | 74 | ## [1.0.0] - 2021-03-10 75 | ### Added 76 | - Initial release 77 | 78 | [Unreleased]: https://github.com/cachewerk/heroku-php-extensions/compare/v2.0.1...HEAD 79 | [2.0.1]: https://github.com/cachewerk/heroku-php-extensions/compare/v2.0.0...v2.0.1 80 | [2.0.0]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.6...v2.0.0 81 | [1.2.6]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.5...v1.2.6 82 | [1.2.5]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.4...v1.2.5 83 | [1.2.4]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.3...v1.2.4 84 | [1.2.3]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.2...v1.2.3 85 | [1.2.2]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.1...v1.2.2 86 | [1.2.1]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.2.0...v1.2.1 87 | [1.2.0]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.1.1...v1.2.0 88 | [1.1.1]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.1.0...v1.1.1 89 | [1.1.0]: https://github.com/cachewerk/heroku-php-extensions/compare/v1.0.0...v1.1.0 90 | [1.0.0]: https://github.com/cachewerk/heroku-php-extensions/releases/tag/v1.0.0 91 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021-2025 CacheWerk Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: vendor/bin/heroku-php-apache2 web/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Heroku PHP Extensions 2 | 3 | Pre-built PHP extensions for Heroku that are not included or fully supported by the official [PHP buildpack](https://github.com/heroku/heroku-buildpack-php). 4 | 5 | - [Relay](https://relaycache.com) 6 | - [PhpRedis](https://pecl.php.net/package/redis) (with _igbinary_, _lzf_, _lz4_ and _zstd_ support) 7 | - [Swoole](https://pecl.php.net/package/swoole) 8 | - [OpenSwoole](https://pecl.php.net/package/openswoole) 9 | - [MessagePack](https://pecl.php.net/package/msgpack) 10 | - [igbinary](https://pecl.php.net/package/igbinary) 11 | 12 | The supported PHP versions are `8.1` to `8.3` on the `heroku-20` and `heroku-22` stacks. 13 | 14 | Checkout the [demo app](https://php-extensions.herokuapp.com), or [browse the S3 bucket](https://s3.us-east-1.amazonaws.com/heroku-php-extensions/index.html). 15 | 16 | ## Usage 17 | 18 | Add the platform repository to your Heroku app: 19 | 20 | ```bash 21 | heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://relay.so/heroku/" 22 | ``` 23 | 24 | If you prefer using the AWS S3 repositories, add the corresponding repository to your Heroku app: 25 | 26 | ```bash 27 | # heroku-20 28 | heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://heroku-php-extensions.s3.amazonaws.com/dist-heroku-20-stable/" 29 | 30 | # heroku-22 31 | heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://heroku-php-extensions.s3.amazonaws.com/dist-heroku-22-stable/" 32 | ``` 33 | 34 | Next, add any of the extensions to `composer.json` as you usually would: 35 | 36 | ```bash 37 | composer require "ext-relay:*" 38 | composer require "ext-redis:*" 39 | composer require "ext-swoole:*" 40 | composer require "ext-openswoole:*" 41 | composer require "ext-msgpack:*" 42 | composer require "ext-igbinary:*" 43 | ``` 44 | 45 | ## Troubleshooting 46 | 47 | See [TROUBLESHOOTING.md](TROUBLESHOOTING.md). 48 | 49 | ## Contributing 50 | 51 | Pull requests for additional Heroku stacks, PHP versions, additional extension versions and new extension are welcome. 52 | 53 | ## Development 54 | 55 | Before continuing, read and understand the [official build instructions](https://github.com/heroku/heroku-buildpack-php/blob/main/support/build/README.md). 56 | 57 | ### Set up 58 | 59 | ```bash 60 | # Install Composer dependencies 61 | composer install 62 | 63 | # Copy Python requirements 64 | cp vendor/heroku/heroku-buildpack-php/requirements.txt . 65 | 66 | # Create environment file 67 | cp .env.example .env 68 | ``` 69 | 70 | Be sure to set all variables in your newly created `.env` file. 71 | 72 | ### Dockerfile 73 | 74 | Create a custom Dockerfile for `heroku-22`. 75 | 76 | ``` 77 | cat vendor/heroku/heroku-buildpack-php/support/build/_docker/heroku-22.Dockerfile > docker/build/heroku-22.Dockerfile 78 | cat docker/heroku-22.Dockerfile >> docker/build/heroku-22.Dockerfile 79 | ``` 80 | 81 | ### Build 82 | 83 | ```bash 84 | # Docker build 85 | docker build --pull --tag heroku-22 --file docker/build/heroku-22.Dockerfile . 86 | 87 | # Build libraries 88 | docker run --rm -ti --env-file=.env heroku-22 bob build --overwrite libraries/liblzf-3.6 89 | docker run --rm -ti --env-file=.env heroku-22 bob build --overwrite libraries/lz4-1.9.3 90 | docker run --rm -ti --env-file=.env heroku-22 bob build --overwrite libraries/zstd-1.4.9 91 | 92 | # Build igbinary 93 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/igbinary-3.2.15 94 | 95 | # Build msgpack 96 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/msgpack-2.2.0 97 | 98 | # Build phpredis 99 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/redis-6.0.2 100 | 101 | # Build relay 102 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/relay-0.6.8 103 | 104 | # Build swoole 105 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/swoole-4.8.13 106 | 107 | # Build openswoole 108 | docker run --rm -ti --env-file=.env heroku-22 bob build extensions/no-debug-non-zts-20230831/openswoole-4.12.1 109 | ``` 110 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | This project will mirror Heroku’s stack support, as well as PHP’s supported versions. 6 | 7 | - [Heroku stacks](https://devcenter.heroku.com/articles/stack) 8 | - [PHP versions](https://www.php.net/supported-versions.php) 9 | 10 | ## Reporting a Vulnerability 11 | 12 | If you discover a security vulnerability, please send an email to `security [at] cachewerk [dot] com`. 13 | We’ll promptly address confirmed vulnerabilities and get back to you within 48 hours. 14 | -------------------------------------------------------------------------------- /TROUBLESHOOTING.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | ## Outdated versions installed during deployment 4 | 5 | If your deploy is installing older/outdated versions, you may need to purge your Heroku repo: 6 | 7 | ```bash 8 | heroku plugins:install heroku-repo 9 | heroku repo:purge_cache -a my-app 10 | ``` 11 | 12 | ## Segmentation fault during build 13 | 14 | Should you encounter a segfault during builds: 15 | 16 | ``` 17 | bin/compile: line 603: 3547 Segmentation fault composer config --no-plugins 18 | ``` 19 | 20 | Try purging your build cache: 21 | 22 | ```bash 23 | heroku plugins:install heroku-repo 24 | heroku repo:purge_cache -a my-app 25 | ``` 26 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cachewerk/heroku-php-extensions", 3 | "description": "Pre-built PHP extensions for Heroku.", 4 | "type": "library", 5 | "license": "MIT", 6 | "require": { 7 | "php": "^8.1", 8 | "ext-igbinary": "*", 9 | "ext-msgpack": "*", 10 | "ext-redis": "*", 11 | "ext-relay": "*", 12 | "ext-swoole": "*" 13 | }, 14 | "require-dev": { 15 | "heroku/heroku-buildpack-php": "dev-main" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "97d05f432d1cb71e5c54db1f3f6e5a95", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "heroku/heroku-buildpack-php", 12 | "version": "dev-main", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/heroku/heroku-buildpack-php.git", 16 | "reference": "5c628e7e989e9d96d742bea67f3245bebe5fc7be" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/heroku/heroku-buildpack-php/zipball/5c628e7e989e9d96d742bea67f3245bebe5fc7be", 21 | "reference": "5c628e7e989e9d96d742bea67f3245bebe5fc7be", 22 | "shasum": "" 23 | }, 24 | "default-branch": true, 25 | "bin": [ 26 | "bin/heroku-php-apache2", 27 | "bin/heroku-php-nginx" 28 | ], 29 | "type": "library", 30 | "notification-url": "https://packagist.org/downloads/", 31 | "license": [ 32 | "MIT" 33 | ], 34 | "authors": [ 35 | { 36 | "name": "David Zuelke", 37 | "email": "dz@heroku.com" 38 | } 39 | ], 40 | "description": "Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku", 41 | "homepage": "https://github.com/heroku/heroku-buildpack-php", 42 | "keywords": [ 43 | "apache", 44 | "apache2", 45 | "foreman", 46 | "heroku", 47 | "nginx", 48 | "php" 49 | ], 50 | "support": { 51 | "issues": "https://github.com/heroku/heroku-buildpack-php/issues", 52 | "source": "https://github.com/heroku/heroku-buildpack-php/tree/v231" 53 | }, 54 | "time": "2023-02-14T21:03:27+00:00" 55 | } 56 | ], 57 | "aliases": [], 58 | "minimum-stability": "stable", 59 | "stability-flags": { 60 | "heroku/heroku-buildpack-php": 20 61 | }, 62 | "prefer-stable": false, 63 | "prefer-lowest": false, 64 | "platform": { 65 | "php": "^8.1", 66 | "ext-igbinary": "*", 67 | "ext-msgpack": "*", 68 | "ext-redis": "*", 69 | "ext-relay": "*", 70 | "ext-swoole": "*" 71 | }, 72 | "platform-dev": [], 73 | "plugin-api-version": "2.6.0" 74 | } 75 | -------------------------------------------------------------------------------- /docker/build/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cachewerk/heroku-php-extensions/71958ff8b0d38c0a11aa2b3e064ae764b6536c4f/docker/build/.gitkeep -------------------------------------------------------------------------------- /docker/heroku-20.Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | ENV WORKSPACE_DIR=/app 3 | ENV PATH=/app/vendor/heroku/heroku-buildpack-php/support/build/_util:$PATH 4 | -------------------------------------------------------------------------------- /docker/heroku-22.Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | ENV WORKSPACE_DIR=/app 3 | ENV PATH=/app/vendor/heroku/heroku-buildpack-php/support/build/_util:$PATH 4 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/igbinary: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dep_name=$(basename $BASH_SOURCE) 4 | 5 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/msgpack: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dep_name=$(basename $BASH_SOURCE) 4 | 5 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/openswoole: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dep_name=$(basename $BASH_SOURCE) 4 | 5 | CONFIGURE_EXTRA="--enable-swoole-json --enable-swoole-curl --enable-http2 --enable-sockets --enable-mysqlnd --enable-openssl --with-postgres" 6 | 7 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl 8 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/redis: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dep_name=$(basename $BASH_SOURCE) 4 | 5 | series=$(/app/.heroku/php/bin/php-config --version | cut -d. -f1,2) 6 | 7 | export PKG_CONFIG_PATH=/app/.heroku/php/lib/pkgconfig 8 | 9 | CONFIGURE_EXTRA="--enable-redis-igbinary --enable-redis-msgpack --enable-redis-lzf --enable-redis-zstd --enable-redis-lz4 --with-liblz4=/usr/local" 10 | 11 | MANIFEST_REQUIRE="${MANIFEST_REQUIRE:-"{\"heroku-sys/php\":\"${series}.*\",\"heroku-sys/liblzf\":\"*\",\"heroku-sys/lz4\":\"*\",\"heroku-sys/zstd\":\"*\",\"heroku-sys/ext-json\":\"*\",\"heroku-sys/ext-igbinary\":\"*\",\"heroku-sys/ext-msgpack\":\"*\"}"}" 12 | 13 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl 14 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/relay: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o pipefail 4 | set -eu 5 | 6 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/_util/include/manifest.sh 7 | 8 | OUT_PREFIX=$1 9 | 10 | export PATH=${OUT_PREFIX}/bin:${PATH} 11 | 12 | series=$(php-config --version | cut -d. -f1,2) 13 | php_ext_dir=$(php-config --extension-dir) 14 | 15 | dep_name=relay 16 | dep_formula=${0#$WORKSPACE_DIR/} 17 | dep_version=${dep_formula##*"/${dep_name}-"} 18 | dep_package=ext-${dep_name}-${dep_version} 19 | dep_variant=$(if openssl version | grep -q "OpenSSL 3"; then echo "+libssl3"; else echo ""; fi) 20 | dep_dirname=relay-v${dep_version}-php${series}-debian-x86-64${dep_variant} 21 | dep_archive_name=${dep_dirname}.tar.gz 22 | dep_url=https://builds.r2.relay.so/v${dep_version}/${dep_archive_name} 23 | dep_manifest=${dep_package}_php-${series}.composer.json 24 | 25 | echo "-----> Building ${dep_package}..." 26 | 27 | curl -L ${dep_url} | tar xz 28 | 29 | pushd ${dep_dirname} 30 | rm -rf ${OUT_PREFIX}/* 31 | 32 | mv relay-pkg.so relay.so 33 | chmod 700 relay.so 34 | 35 | uuid=$(cat /proc/sys/kernel/random/uuid) 36 | sed -i "s/00000000-0000-0000-0000-000000000000/${uuid}/" relay.so 37 | 38 | mkdir -p ${php_ext_dir} 39 | cp relay.so ${php_ext_dir} 40 | 41 | mkdir -p ${OUT_PREFIX}/etc/php/conf.d 42 | cp relay.ini ${OUT_PREFIX}/etc/php/conf.d/relay.ini-dist 43 | popd 44 | 45 | MANIFEST_REQUIRE="${MANIFEST_REQUIRE:-"{\"heroku-sys/php\":\"${series}.*\",\"heroku-sys/liblzf\":\"*\",\"heroku-sys/lz4\":\"*\",\"heroku-sys/zstd\":\"*\",\"heroku-sys/ext-json\":\"*\",\"heroku-sys/ext-igbinary\":\"*\",\"heroku-sys/ext-msgpack\":\"*\"}"}" 46 | MANIFEST_CONFLICT="${MANIFEST_CONFLICT:-"{}"}" 47 | MANIFEST_REPLACE="${MANIFEST_REPLACE:-"{}"}" 48 | MANIFEST_PROVIDE="${MANIFEST_PROVIDE:-"{}"}" 49 | MANIFEST_EXTRA="${MANIFEST_EXTRA:-"{\"config\":\"etc/php/conf.d/relay.ini-dist\"}"}" 50 | 51 | python $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/_util/include/manifest.py "heroku-sys-php-extension" "heroku-sys/ext-${dep_name}" "$dep_version" "${dep_formula}.tar.gz" "$MANIFEST_REQUIRE" "$MANIFEST_CONFLICT" "$MANIFEST_REPLACE" "$MANIFEST_PROVIDE" "$MANIFEST_EXTRA" > $dep_manifest 52 | 53 | print_or_export_manifest_cmd "$(generate_manifest_cmd "$dep_manifest")" 54 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20131226/swoole: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dep_name=$(basename $BASH_SOURCE) 4 | 5 | CONFIGURE_EXTRA="--enable-swoole-json --enable-swoole-curl --enable-http2 --enable-sockets --enable-mysqlnd --enable-openssl" 6 | 7 | source $(dirname $BASH_SOURCE)/../../vendor/heroku/heroku-buildpack-php/support/build/extensions/pecl 8 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20180731/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20180731/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20180731/openswoole-4.12.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20180731/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.3.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20180731/igbinary-*, extensions/no-debug-non-zts-20180731/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20180731/swoole-4.8.13: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/openswoole-4.12.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20190902/igbinary-*, extensions/no-debug-non-zts-20190902/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/relay-0.6.8: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20190902/igbinary-*, extensions/no-debug-non-zts-20190902/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/relay 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20190902/swoole-4.8.13: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-7.4.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/openswoole-4.12.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20200930/igbinary-*, extensions/no-debug-non-zts-20200930/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/relay-0.6.8: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20200930/igbinary-*, extensions/no-debug-non-zts-20200930/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/relay 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20200930/swoole-4.8.13: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.0.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/openswoole-4.12.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20210902/igbinary-*, extensions/no-debug-non-zts-20210902/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/relay-0.6.8: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20210902/igbinary-*, extensions/no-debug-non-zts-20210902/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/relay 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20210902/swoole-4.8.13: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.1.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/openswoole-4.12.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20220829/igbinary-*, extensions/no-debug-non-zts-20220829/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/relay-0.6.8: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20220829/igbinary-*, extensions/no-debug-non-zts-20220829/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/relay 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20220829/swoole-4.8.13: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.2.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/igbinary-3.2.15: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/igbinary 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/msgpack-2.2.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/msgpack 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/openswoole-22.1.0: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/openswoole 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/redis-6.0.2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20220829/igbinary-*, extensions/no-debug-non-zts-20220829/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/redis 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/relay-0.6.8: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.*, libraries/liblzf-*, libraries/lz4-*, libraries/zstd-*, extensions/no-debug-non-zts-20230831/igbinary-*, extensions/no-debug-non-zts-20230831/msgpack-* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/relay 6 | -------------------------------------------------------------------------------- /extensions/no-debug-non-zts-20230831/swoole-5.1.1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Build Path: /app/.heroku/php 3 | # Build Deps: php-8.3.* 4 | 5 | source $(dirname $0)/../no-debug-non-zts-20131226/swoole 6 | -------------------------------------------------------------------------------- /libraries/liblzf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fail hard 4 | set -o pipefail 5 | 6 | # fail harder 7 | set -eu 8 | 9 | util_dir=$(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/_util 10 | 11 | source ${util_dir}/include/manifest.sh 12 | 13 | OUT_PREFIX=$1 14 | 15 | dep_formula=${0#$WORKSPACE_DIR/} 16 | dep_name=$(basename $BASH_SOURCE) 17 | dep_version=${dep_formula##*"/${dep_name}-"} 18 | dep_package=${dep_name}-${dep_version} 19 | dep_dirname=liblzf-${dep_version} 20 | dep_url=https://deb.debian.org/debian/pool/main/libl/liblzf/liblzf_${dep_version}.orig.tar.gz 21 | dep_manifest=${dep_package}.composer.json 22 | 23 | echo "-----> Building ${dep_package}..." 24 | 25 | curl -L ${dep_url} | tar xz 26 | pushd ${dep_dirname} 27 | ./configure --disable-debug --disable-dependency-tracking --disable-silent-rules --prefix=${OUT_PREFIX} 28 | make -s 29 | make install -s 30 | popd 31 | 32 | python ${util_dir}/include/manifest.py "heroku-sys-library" "heroku-sys/${dep_name}" "$dep_version" "${dep_formula}.tar.gz" > $dep_manifest 33 | 34 | print_or_export_manifest_cmd "$(generate_manifest_cmd "$dep_manifest")" 35 | -------------------------------------------------------------------------------- /libraries/liblzf-3.6: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Build Path: /app/.heroku/php/ 3 | 4 | source $(dirname $0)/liblzf -------------------------------------------------------------------------------- /libraries/lz4: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fail hard 4 | set -o pipefail 5 | 6 | # fail harder 7 | set -eu 8 | 9 | util_dir=$(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/_util 10 | 11 | source ${util_dir}/include/manifest.sh 12 | 13 | OUT_PREFIX=$1 14 | 15 | dep_formula=${0#$WORKSPACE_DIR/} 16 | dep_name=$(basename $BASH_SOURCE) 17 | dep_version=${dep_formula##*"/${dep_name}-"} 18 | dep_package=${dep_name}-${dep_version} 19 | dep_url=https://github.com/lz4/lz4/archive/v${dep_version}.tar.gz 20 | dep_manifest=${dep_package}.composer.json 21 | 22 | echo "-----> Building ${dep_package}..." 23 | 24 | curl -L ${dep_url} | tar xz 25 | pushd ${dep_package} 26 | make install -s PREFIX=${OUT_PREFIX} 27 | strip --strip-unneeded ${OUT_PREFIX}lib/liblz4*.so* 28 | popd 29 | 30 | ABI_VERSION=$(soname_version ${OUT_PREFIX}lib/liblz4.so) 31 | 32 | echo 33 | echo "ABI version is: ${ABI_VERSION}" 34 | echo 35 | 36 | python ${util_dir}/include/manifest.py "heroku-sys-library" "heroku-sys/${dep_name}" "$dep_version" "${dep_formula}.tar.gz" "{}" "{}" "{}" "{\"heroku-sys/${dep_name}-abi\":\"${ABI_VERSION}\"}" > $dep_manifest 37 | 38 | print_or_export_manifest_cmd "$(generate_manifest_cmd "$dep_manifest")" 39 | -------------------------------------------------------------------------------- /libraries/lz4-1.9.3: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Build Path: /app/.heroku/php/ 3 | 4 | source $(dirname $0)/lz4 -------------------------------------------------------------------------------- /libraries/zstd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fail hard 4 | set -o pipefail 5 | 6 | # fail harder 7 | set -eu 8 | 9 | util_dir=$(dirname $BASH_SOURCE)/../vendor/heroku/heroku-buildpack-php/support/build/_util 10 | 11 | source ${util_dir}/include/manifest.sh 12 | 13 | OUT_PREFIX=$1 14 | 15 | dep_formula=${0#$WORKSPACE_DIR/} 16 | dep_name=$(basename $BASH_SOURCE) 17 | dep_version=${dep_formula##*"/${dep_name}-"} 18 | dep_package=${dep_name}-${dep_version} 19 | dep_url=https://github.com/facebook/zstd/archive/v${dep_version}.tar.gz 20 | dep_manifest=${dep_package}.composer.json 21 | 22 | echo "-----> Building ${dep_package}..." 23 | 24 | curl -L ${dep_url} | tar xz 25 | pushd ${dep_package} 26 | make install -s PREFIX=${OUT_PREFIX} 27 | strip --strip-unneeded ${OUT_PREFIX}lib/libzstd*.so* 28 | popd 29 | 30 | ABI_VERSION=$(soname_version ${OUT_PREFIX}lib/libzstd.so) 31 | 32 | echo 33 | echo "ABI version is: ${ABI_VERSION}" 34 | echo 35 | 36 | python ${util_dir}/include/manifest.py "heroku-sys-library" "heroku-sys/${dep_name}" "$dep_version" "${dep_formula}.tar.gz" "{}" "{}" "{}" "{\"heroku-sys/${dep_name}-abi\":\"${ABI_VERSION}\"}" > $dep_manifest 37 | 38 | print_or_export_manifest_cmd "$(generate_manifest_cmd "$dep_manifest")" 39 | -------------------------------------------------------------------------------- /libraries/zstd-1.4.9: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Build Path: /app/.heroku/php/ 3 | 4 | source $(dirname $0)/zstd -------------------------------------------------------------------------------- /web/.htaccess: -------------------------------------------------------------------------------- 1 | DirectoryIndex index.php 2 | 3 | RewriteEngine On 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | RewriteRule ^ index.php [QSA,L] -------------------------------------------------------------------------------- /web/card-general.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | General 6 |

7 |

8 | Personal details and application. 9 |

10 |
11 |
12 |
13 |
14 |
15 | PHP version 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Platform repository 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /web/card-igbinary.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-igbinary 6 |

7 |

8 | Details about the igbinary extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 |
-------------------------------------------------------------------------------- /web/card-msgpack.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-msgpack 6 |

7 |

8 | Details about the MessagePack extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /web/card-openswoole.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-openswoole 6 |

7 |

8 | Details about the OpenSwoole extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 | 30 | 31 | 32 | 33 |
34 |
35 | JSON support 36 |
37 |
38 | (.+)/m", $openswoole, $json); echo $json[1]; ?> 39 |
40 |
41 |
42 |
43 | HTTP2 support 44 |
45 |
46 | (.+)/m", $openswoole, $http2); echo $http2[1]; ?> 47 |
48 |
49 |
50 |
51 | OpenSSL support 52 |
53 |
54 | (.+)/m", $openswoole, $openssl); echo $openssl[1]; ?> 55 |
56 |
57 |
58 |
59 | Native cURL support 60 |
61 |
62 | (.+)/m", $openswoole, $curl); echo $curl[1]; ?> 63 |
64 |
65 |
66 |
67 | mysqlnd support 68 |
69 |
70 | (.+)/m", $openswoole, $mysqlnd); echo $mysqlnd[1]; ?> 71 |
72 |
73 |
74 |
75 | sockets support 76 |
77 |
78 | (.+)/m", $openswoole, $sockets); echo $sockets[1]; ?> 79 |
80 |
81 |
82 |
83 | postgres support 84 |
85 |
86 | (.+)/m", $openswoole, $postgres); echo $postgres[1]; ?> 87 |
88 |
89 | 90 | 91 |
92 |
93 |
94 | -------------------------------------------------------------------------------- /web/card-redis.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-redis 6 |

7 |

8 | Details about the PhpRedis extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | igbinary support 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 | lzf support 40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 | lz4 support 48 |
49 |
50 | 51 |
52 |
53 |
54 |
55 | zstd support 56 |
57 |
58 | 59 |
60 |
61 |
62 |
63 |
64 | -------------------------------------------------------------------------------- /web/card-relay.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-relay 6 |

7 |

8 | Details about the Relay extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | igbinary support 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 | lzf support 40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 | lz4 support 48 |
49 |
50 | 51 |
52 |
53 |
54 |
55 | zstd support 56 |
57 |
58 | 59 |
60 |
61 |
62 |
63 |
64 | -------------------------------------------------------------------------------- /web/card-swoole.phtml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

5 | ext-swoole 6 |

7 |

8 | Details about the Swoole extension. 9 |

10 |
11 |
12 |
13 |
14 |
15 | Extension loaded 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | Extension version 24 |
25 |
26 | 27 |
28 |
29 | 30 | 31 | 32 | 33 |
34 |
35 | JSON support 36 |
37 |
38 | (.+)/m", $swoole, $json); echo $json[1]; ?> 39 |
40 |
41 |
42 |
43 | HTTP2 support 44 |
45 |
46 | (.+)/m", $swoole, $http2); echo $http2[1]; ?> 47 |
48 |
49 |
50 |
51 | OpenSSL support 52 |
53 |
54 | (.+)/m", $swoole, $openssl); echo $openssl[1]; ?> 55 |
56 |
57 |
58 |
59 | Native cURL support 60 |
61 |
62 | (.+)/m", $swoole, $curl); echo $curl[1]; ?> 63 |
64 |
65 |
66 |
67 | mysqlnd support 68 |
69 |
70 | (.+)/m", $swoole, $mysqlnd); echo $mysqlnd[1]; ?> 71 |
72 |
73 |
74 |
75 | sockets support 76 |
77 |
78 | (.+)/m", $swoole, $sockets); echo $sockets[1]; ?> 79 |
80 |
81 | 82 | 83 |
84 |
85 |
86 | -------------------------------------------------------------------------------- /web/footer.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /web/header.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Heroku PHP Extensions 6 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |

18 | CacheWerk 19 |

20 |

21 | Heroku PHP Extensions 22 |

23 |

24 | Pre-built PHP extensions for Heroku that are not included or fully supported by the official PHP buildpack. 25 |

26 |
27 | 32 | 37 |
38 |
39 |
40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 |
34 |
35 |
36 | 37 |
38 |
39 |

{{config.title}}

40 |

{{config.subtitle}}

41 |
42 |
43 |
44 | 45 |
46 | 47 |
48 | 49 |
50 | 59 | 60 | 61 | 62 |
63 | 64 |
66 | 73 | 74 | 81 | 82 |
83 |
84 | 85 | 86 | 90 | 97 |
98 | 103 | 104 | 110 | {{ props.row.name }} 111 | 112 |
113 | 120 | Install 121 | 122 | 123 |
127 | 133 |
{{ props.row.size | formatBytes}}
134 |
{{ props.row.dateModified | formatDateRelative }}
135 |
136 |
137 | 138 |
139 | 147 | {{ props.row.size | formatBytes}} 148 | 149 | 157 | 164 | {{ props.row.dateModified | formatDateRelative }} 165 | 166 | 167 |
168 | 169 | 170 |
171 |
173 | 180 | 181 | 188 | 189 |
190 |
191 |
192 | 193 | 194 | 195 |
196 | 197 | 198 | 199 | 200 | 201 | 202 | 440 | 441 | 496 | 497 | 498 | 499 | -------------------------------------------------------------------------------- /web/index.php: -------------------------------------------------------------------------------- 1 |