2019-09-24 16:08:22 +07:00
< p align = "center" >
< a href = "https://github.com/marketplace/actions/setup-php-action" target = "_blank" >
< img src = "https://repository-images.githubusercontent.com/206578964/e0a18480-dc65-11e9-8dd3-b9ffbf5575fe" alt = "Setup PHP in GitHub Actions" width = "400" >
< / a >
< / p >
2019-10-13 06:57:58 +07:00
< h1 align = "center" > Setup PHP in GitHub Actions< / h1 >
2019-09-06 07:18:51 +07:00
2019-10-13 06:57:58 +07:00
< p align = "center" >
2019-10-10 19:17:17 +07:00
< a href = "https://github.com/shivammathur/setup-php" title = "GitHub action to setup PHP" > < img alt = "GitHub Actions status" src = "https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg" > < / a >
2020-10-05 14:29:36 +07:00
< a href = "https://codecov.io/gh/shivammathur/setup-php" title = "Code coverage" > < img alt = "Codecov Code Coverage" src = "https://img.shields.io/codecov/c/github/shivammathur/setup-php?logo=codecov" > < / a >
2019-10-10 19:17:17 +07:00
< a href = "https://github.com/shivammathur/setup-php/blob/master/LICENSE" title = "license" > < img alt = "LICENSE" src = "https://img.shields.io/badge/license-MIT-428f7e.svg" > < / a >
2019-12-31 14:55:59 +07:00
< a href = "#tada-php-support" title = "PHP Versions Supported" > < img alt = "PHP Versions Supported" src = "https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg" > < / a >
2019-09-06 07:18:51 +07:00
< / p >
2020-01-17 14:28:28 +07:00
Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in [GitHub Actions ](https://github.com/features/actions "GitHub Actions" ). This action gives you a cross platform interface to setup the PHP environment you need to test your application. Refer to [Usage ](#memo-usage "How to use this" ) section and [examples ](#examples "Examples of use" ) to see how to use this.
2019-09-24 16:08:22 +07:00
2019-11-03 11:41:44 +07:00
## Contents
- [PHP Support ](#tada-php-support )
2020-06-08 08:39:31 +07:00
- [GitHub-Hosted Runner Support ](#cloud-github-hosted-runner-support )
2019-12-27 08:26:49 +07:00
- [PHP Extension Support ](#heavy_plus_sign-php-extension-support )
- [Tools Support ](#wrench-tools-support )
2020-06-08 08:39:31 +07:00
- [Coverage Support ](#signal_strength-coverage-support )
2019-11-03 11:41:44 +07:00
- [Xdebug ](#xdebug )
- [PCOV ](#pcov )
- [Disable coverage ](#disable-coverage )
- [Usage ](#memo-usage )
2019-12-18 23:14:02 +07:00
- [Basic Setup ](#basic-setup )
- [Matrix Setup ](#matrix-setup )
2020-06-08 08:39:31 +07:00
- [Nightly Build Setup ](#nightly-build-setup )
2020-01-21 09:31:10 +07:00
- [Thread Safe Setup ](#thread-safe-setup )
2020-06-08 08:39:31 +07:00
- [Cache Dependencies ](#cache-dependencies )
2020-05-13 23:21:52 +07:00
- [Composer GitHub OAuth ](#composer-github-oauth )
2019-12-19 04:08:12 +07:00
- [Problem Matchers ](#problem-matchers )
2019-11-03 11:41:44 +07:00
- [Examples ](#examples )
- [License ](#scroll-license )
- [Contributions ](#1-contributions )
2020-06-08 08:39:31 +07:00
- [Support This project ](#sparkling_heart-support-this-project )
- [Dependencies ](#bookmark-dependencies )
2019-11-03 11:41:44 +07:00
- [Further Reading ](#bookmark_tabs-further-reading )
2019-09-24 17:08:21 +07:00
## :tada: PHP Support
2019-09-06 07:18:51 +07:00
2019-09-24 16:08:22 +07:00
|PHP Version|Stability|Release Support|
|--- |--- |--- |
|5.6|`Stable`|`End of life`|
|7.0|`Stable`|`End of life`|
2019-12-05 03:37:21 +07:00
|7.1|`Stable`|`End of life`|
2019-12-06 10:40:20 +07:00
|7.2|`Stable`|`Security fixes only`|
2019-09-24 16:08:22 +07:00
|7.3|`Stable`|`Active`|
2019-11-28 17:28:33 +07:00
|7.4|`Stable`|`Active`|
2020-06-08 08:39:31 +07:00
|8.0|`Nightly`|`In development`|
2019-12-09 09:39:03 +07:00
2020-06-08 08:39:31 +07:00
**Note:** Specifying `8.0` in `php-version` input installs a nightly build of `PHP 8.0.0-dev` with `PHP JIT` , `Union Types v2` and other [new features ](https://wiki.php.net/rfc#php_80 "New features implemented in PHP 8" ). See [nightly build setup ](#nightly-build-setup ) for more information.
2019-09-06 07:40:52 +07:00
2020-06-08 08:39:31 +07:00
## :cloud: GitHub-Hosted Runner Support
2019-09-09 02:28:00 +07:00
2020-06-08 08:39:31 +07:00
|Virtual environment|YAML workflow label|Pre-installed PHP|
|--- |--- |--- |
|Ubuntu 16.04|`ubuntu-16.04`|`PHP 5.6` to `PHP 7.4` |
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04` |`PHP 7.1` to `PHP 7.4` |
|Ubuntu 20.04|`ubuntu-20.04`|`PHP 7.4`|
|Windows Server 2019|`windows-latest` or `windows-2019` |`PHP 7.4`|
|macOS 10.15 Catalina|`macos-latest` or `macos-10.15` |`PHP 7.4`|
2020-11-16 04:34:59 +07:00
|macOS 11.0 Big Sur|`macos-11.0`|`PHP 7.4`|
2019-09-09 02:28:00 +07:00
2019-12-27 08:26:49 +07:00
## :heavy_plus_sign: PHP Extension Support
2019-12-31 14:55:59 +07:00
- On `ubuntu` by default extensions which are available as a package can be installed. If the extension is not available as a package but it is on `PECL` , it can be installed by specifying `pecl` in the tools input.
2019-11-07 12:41:35 +07:00
- On `windows` extensions which have `windows` binary on `PECL` can be installed.
- On `macOS` extensions which are on `PECL` can be installed.
2019-09-07 19:31:50 +07:00
- Extensions which are installed along with PHP if specified are enabled.
2020-01-26 16:42:52 +07:00
- Extensions on `PECL` which do not have a latest stable version, their pre-release versions can be installed by suffixing the extension with its state i.e `alpha` , `beta` , `devel` or `snapshot` separated by a `-` like `msgpack-beta` .
2019-10-04 21:04:05 +07:00
- Extensions which cannot be installed gracefully leave an error message in the logs, the action is not interrupted.
2019-09-07 19:31:50 +07:00
2019-12-27 08:26:49 +07:00
## :wrench: Tools Support
2020-01-07 09:36:14 +07:00
These tools can be setup globally using the `tools` input.
2019-12-27 08:26:49 +07:00
2020-02-03 04:56:06 +07:00
`codeception` , `composer` , `composer-prefetcher` , `cs2pr` , `deployer` , `pecl` , `phinx` , `phive` , `phpcbf` , `phpcpd` , `php-config` , `php-cs-fixer` , `phpcs` , `phpize` , `phpmd` , `phpstan` , `phpunit` , `prestissimo` , `psalm` , `symfony`
2019-12-27 08:26:49 +07:00
2019-12-31 14:55:59 +07:00
```yaml
2019-12-27 08:26:49 +07:00
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
tools: php-cs-fixer, phpunit
```
2020-10-30 19:59:39 +07:00
To set up a particular version of a tool, specify it in the form `tool:version` .
The latest stable version of `composer` is set up by default. You can set up the required `composer` version by specifying `v1` , `v2` , `snapshot` or `preview` as versions or the exact version in semver format.
2020-01-07 09:36:14 +07:00
```yaml
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
2020-06-08 08:39:31 +07:00
tools: composer:v2
```
2020-10-30 19:59:39 +07:00
If you have specified composer plugins `prestissimo` or `composer-prefetcher` in tools, the latest stable version of `composer v1` will be setup. Unless some of your packages require `composer v1` , it is recommended to drop `prestissimo` and use `composer v2` .
2020-06-08 08:39:31 +07:00
Version for other tools should be in `semver` format and a valid release of the tool.
```yaml
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
tools: php-cs-fixer:2.16.2, phpunit:8.5.1
```
2020-01-07 09:36:14 +07:00
2020-06-08 08:39:31 +07:00
Tools which cannot be installed gracefully leave an error message in the logs, the action is not interrupted.
2019-12-28 01:53:51 +07:00
2020-06-08 08:39:31 +07:00
## :signal_strength: Coverage Support
2019-10-05 16:30:00 +07:00
### Xdebug
2019-10-10 19:17:17 +07:00
Specify `coverage: xdebug` to use `Xdebug` .
2020-06-19 05:39:13 +07:00
Runs on all [PHP versions supported ](#tada-php-support "List of PHP versions supported on this GitHub Action" ).
2019-10-08 19:42:54 +07:00
```yaml
2019-11-28 06:47:56 +07:00
uses: shivammathur/setup-php@v1
2019-09-26 04:03:39 +07:00
with:
2019-12-31 14:55:59 +07:00
php-version: '7.4'
2019-09-26 04:03:39 +07:00
coverage: xdebug
```
2019-10-05 16:30:00 +07:00
### PCOV
2020-02-03 04:56:06 +07:00
Specify `coverage: pcov` to use `PCOV` and disable `Xdebug` .
2019-10-10 19:17:17 +07:00
It is much faster than `Xdebug` .
2019-11-03 11:41:44 +07:00
`PCOV` needs `PHP >= 7.1` .
2019-12-09 12:22:43 +07:00
If your source code directory is other than `src` , `lib` or, `app` , specify `pcov.directory` using the `ini-values` input.
2019-10-13 11:18:29 +07:00
2019-10-08 19:42:54 +07:00
```yaml
2019-11-28 06:47:56 +07:00
uses: shivammathur/setup-php@v1
2019-09-26 04:03:39 +07:00
with:
2019-11-30 06:53:14 +07:00
php-version: '7.4'
2019-12-09 12:22:43 +07:00
ini-values: pcov.directory=api #optional , see above for usage.
2019-09-26 04:03:39 +07:00
coverage: pcov
```
2020-06-08 08:39:31 +07:00
### Disable Coverage
2019-10-10 19:17:17 +07:00
2019-12-31 14:55:59 +07:00
Specify `coverage: none` to disable both `Xdebug` and `PCOV` .
2019-10-10 19:17:17 +07:00
Consider disabling the coverage using this PHP action for these reasons.
2019-11-03 11:41:44 +07:00
2019-10-10 19:17:17 +07:00
- You are not generating coverage reports while testing.
2019-12-28 01:53:51 +07:00
- It will remove `Xdebug` , which will have a positive impact on PHP performance.
2019-11-03 11:41:44 +07:00
- You are using `phpdbg` for running your tests.
2019-10-08 19:42:54 +07:00
```yaml
2019-11-28 06:47:56 +07:00
uses: shivammathur/setup-php@v1
2019-10-05 16:30:00 +07:00
with:
2019-11-30 06:53:14 +07:00
php-version: '7.4'
2019-10-05 16:30:00 +07:00
coverage: none
```
2019-09-24 16:08:22 +07:00
## :memo: Usage
2019-09-06 07:18:51 +07:00
2019-09-18 09:10:09 +07:00
Inputs supported by this GitHub Action.
2019-09-06 07:18:51 +07:00
2019-10-04 21:04:05 +07:00
- php-version `required`
2019-12-14 20:53:04 +07:00
- extensions `optional`
2019-12-09 12:22:43 +07:00
- ini-values `optional`
2019-10-04 21:04:05 +07:00
- coverage `optional`
2019-12-27 08:26:49 +07:00
- tools `optional`
2019-09-18 09:10:09 +07:00
2019-10-10 19:17:17 +07:00
See [action.yml ](action.yml "Metadata for this GitHub Action" ) and usage below for more info.
2019-09-18 09:10:09 +07:00
2019-12-31 14:55:59 +07:00
### Basic Setup
2019-12-09 14:10:12 +07:00
2019-12-18 23:14:02 +07:00
> Setup a particular PHP version.
2019-09-08 14:23:33 +07:00
2019-09-06 07:18:51 +07:00
```yaml
steps:
- name: Checkout
2020-01-02 00:06:25 +07:00
uses: actions/checkout@v2
2019-11-22 02:36:58 +07:00
2019-10-19 21:29:48 +07:00
- name: Setup PHP
2019-11-28 06:47:56 +07:00
uses: shivammathur/setup-php@v1
2019-09-06 07:18:51 +07:00
with:
2019-11-30 06:53:14 +07:00
php-version: '7.4'
2019-12-09 12:22:43 +07:00
extensions: mbstring, intl #optional , setup extensions
ini-values: post_max_size=256M, short_open_tag=On #optional , setup php.ini configuration
2019-11-07 12:41:35 +07:00
coverage: xdebug #optional , setup coverage driver
2019-12-27 08:26:49 +07:00
tools: php-cs-fixer, phpunit #optional , setup tools globally
2019-09-06 07:18:51 +07:00
```
2019-12-18 23:14:02 +07:00
### Matrix Setup
2019-12-09 14:10:12 +07:00
2019-12-18 23:14:02 +07:00
> Setup multiple PHP versions on multiple operating systems.
2019-09-08 14:23:33 +07:00
2019-09-06 07:18:51 +07:00
```yaml
jobs:
2019-12-31 14:55:59 +07:00
run:
2019-09-06 07:18:51 +07:00
runs-on: ${{ matrix.operating-system }}
2019-12-31 14:55:59 +07:00
strategy:
2019-09-06 07:18:51 +07:00
matrix:
2020-01-21 09:55:14 +07:00
operating-system: [ubuntu-latest, windows-latest, macos-latest]
2019-11-30 06:53:14 +07:00
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
2019-09-06 08:52:50 +07:00
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
2019-09-06 07:18:51 +07:00
steps:
- name: Checkout
2020-01-02 00:06:25 +07:00
uses: actions/checkout@v2
2019-11-22 02:36:58 +07:00
2019-10-19 21:29:48 +07:00
- name: Setup PHP
2019-11-28 06:47:56 +07:00
uses: shivammathur/setup-php@v1
2019-09-06 07:18:51 +07:00
with:
2019-11-07 16:32:05 +07:00
php-version: ${{ matrix.php-versions }}
2019-12-09 12:22:43 +07:00
extensions: mbstring, intl #optional , setup extensions
ini-values: post_max_size=256M, short_open_tag=On #optional , setup php.ini configuration
2019-11-07 12:41:35 +07:00
coverage: xdebug #optional , setup coverage driver
2019-12-27 08:26:49 +07:00
tools: php-cs-fixer, phpunit #optional , setup tools globally
2019-09-06 07:18:51 +07:00
```
2020-06-08 08:39:31 +07:00
### Nightly Build Setup
2019-12-18 23:14:02 +07:00
> Setup a nightly build of `PHP 8.0.0-dev` from the [master branch](https://github.com/php/php-src/tree/master "Master branch on PHP source repository") of PHP.
2020-06-08 08:39:31 +07:00
- `PECL` is installed by default with this version on `Ubuntu` and `macOS` .
2019-12-18 23:14:02 +07:00
- Some extensions might not support this version currently.
- Refer to this [RFC ](https://wiki.php.net/rfc/jit "PHP JIT RFC configuration" ) for configuring `PHP JIT` on this version.
2019-12-28 01:53:51 +07:00
- Refer to this [list of RFCs ](https://wiki.php.net/rfc#php_80 "List of RFCs implemented in PHP8" ) implemented in this version.
2019-12-18 23:14:02 +07:00
```yaml
steps:
- name: Checkout
2020-01-02 00:06:25 +07:00
uses: actions/checkout@v2
2019-12-18 23:14:02 +07:00
- name: Setup PHP
uses: shivammathur/setup-php@v1
with:
php-version: '8.0'
extensions: mbstring #optional , setup extensions
ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1 #optional , setup php.ini configuration
2019-12-27 08:26:49 +07:00
coverage: pcov #optional , setup PCOV, Xdebug does not support this version yet.
tools: php-cs-fixer, phpunit #optional , setup tools globally
2019-12-18 23:14:02 +07:00
```
2020-01-21 09:31:10 +07:00
### Thread Safe Setup
- `NTS` versions are setup by default.
- On `ubuntu` and `macOS` only NTS versions are supported.
- On `windows` both `TS` and `NTS` versions are supported.
```yaml
jobs:
run:
runs-on: windows-latest
name: Setup PHP TS on Windows
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
env:
2020-06-08 08:39:31 +07:00
phpts: ts # specify ts or nts
2020-01-21 09:31:10 +07:00
```
2020-06-08 08:39:31 +07:00
### Cache Dependencies
2019-11-03 11:41:44 +07:00
2019-11-22 02:36:58 +07:00
You can persist composer's internal cache directory using the [`action/cache` ](https://github.com/actions/cache "GitHub Action to cache files" ) GitHub Action. Dependencies cached are loaded directly instead of downloading them while installation. The files cached are available across check-runs and will reduce the workflow execution time.
2019-11-05 06:28:15 +07:00
**Note:** Please do not cache `vendor` directory using `action/cache` as that will have side-effects.
2019-11-03 11:41:44 +07:00
```yaml
2020-11-16 03:25:15 +07:00
- name: Get Composer Cache Directory
id: composer-cache
2019-11-05 06:28:15 +07:00
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
2019-11-08 17:26:57 +07:00
2019-12-31 14:55:59 +07:00
- name: Cache dependencies
2020-06-08 08:39:31 +07:00
uses: actions/cache@v2
2019-11-05 06:28:15 +07:00
with:
2020-11-16 03:25:15 +07:00
path: ${{ steps.composer-cache.outputs.dir }}
2019-11-05 06:28:15 +07:00
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
2019-11-08 17:26:57 +07:00
2019-11-05 06:28:15 +07:00
- name: Install Dependencies
run: composer install --prefer-dist
2019-11-03 11:41:44 +07:00
```
2020-11-16 04:34:59 +07:00
- If you do not commit `composer.lock` , you can use the hash of `composer.json` as the key for your cache.
```yaml
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
```
2019-12-28 01:53:51 +07:00
2020-11-16 04:34:59 +07:00
- If you support a range of `composer` dependencies and use `prefer-lowest` and `prefer-stable` options, you can store them in your matrix add them to the keys.
2019-12-31 14:55:59 +07:00
```yaml
2020-11-16 04:34:59 +07:00
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}-${{ matrix.prefer }}-
restore-keys: ${{ runner.os }}-composer-${{ matrix.prefer }}-
2020-05-13 23:21:52 +07:00
```
### Composer GitHub OAuth
If you have a number of workflows which setup multiple tools or have many composer dependencies, you might hit the GitHub's rate limit for composer. To avoid that you can add a `OAuth` token to the composer's config by setting `COMPOSER_TOKEN` environment variable. You can use [`GITHUB_TOKEN` ](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token "GITHUB_TOKEN documentation" ) secret for this purpose.
```yaml
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
2019-12-28 01:53:51 +07:00
2019-12-19 04:08:12 +07:00
### Problem Matchers
2020-10-05 14:22:57 +07:00
Problem matchers are `json` configurations which identify errors and warnings in your logs and surface that information prominently in the GitHub Actions UI by highlighting them and creating code annotations.
#### PHP
Setup problem matchers for your `PHP` output by adding this step after the `setup-php` step.
```yaml
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
```
2020-02-03 04:56:06 +07:00
#### PHPUnit
2020-10-05 14:22:57 +07:00
Setup problem matchers for your `PHPUnit` output by adding this step after the `setup-php` step.
2019-12-19 04:08:12 +07:00
```yaml
2020-10-05 14:22:57 +07:00
- name: Setup problem matchers for PHPUnit
2019-12-19 04:08:12 +07:00
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
```
2020-10-05 14:22:57 +07:00
#### PHPStan
PHPStan supports error reporting in GitHub Actions, so no problem matchers are required.
```yaml
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
tools: phpstan
- name: Run PHPStan
run: phpstan analyse src
```
#### Psalm
Psalm supports error reporting in GitHub Actions with an output format `github` .
```yaml
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
tools: psalm
- name: Run Psalm
run: psalm --output-format=github
```
#### Tools with checkstyle support
2020-02-03 04:56:06 +07:00
For tools that support `checkstyle` reporting like `phpstan` , `psalm` , `php-cs-fixer` and `phpcs` you can use `cs2pr` to annotate your code.
2020-10-05 14:22:57 +07:00
For examples refer to [cs2pr documentation ](https://github.com/staabm/annotate-pull-request-from-checkstyle ).
2020-02-03 04:56:06 +07:00
2020-10-05 14:22:57 +07:00
> Here is an example with `phpcs`.
2020-02-03 04:56:06 +07:00
```yaml
- name: Setup PHP
2020-10-05 14:22:57 +07:00
uses: shivammathur/setup-php@v2
2020-02-03 04:56:06 +07:00
with:
php-version: '7.4'
2020-10-05 14:22:57 +07:00
tools: cs2pr, phpcs
2020-02-03 04:56:06 +07:00
2020-10-05 14:22:57 +07:00
- name: Run phpcs
run: phpcs -q --report=checkstyle src | cs2pr
2020-02-03 04:56:06 +07:00
```
2019-10-03 17:43:34 +07:00
### Examples
2019-10-04 21:04:05 +07:00
Examples for setting up this GitHub Action with different PHP Frameworks/Packages.
2019-10-03 17:43:34 +07:00
2019-10-10 19:17:17 +07:00
|Framework/Package|Runs on|Workflow|
|--- |--- |--- |
2020-01-08 14:24:37 +07:00
|CakePHP with `MySQL` and `Redis` |`ubuntu`|[cakephp-mysql.yml](./examples/cakephp-mysql.yml "GitHub Action for CakePHP with MySQL and Redis")|
|CakePHP with `PostgreSQL` and `Redis` |`ubuntu`|[cakephp-postgres.yml](./examples/cakephp-postgres.yml "GitHub Action for CakePHP with Postgres and Redis")|
|CakePHP without services|`macOS`, `ubuntu` and `windows` |[cakephp.yml](./examples/cakephp.yml "GitHub Action for CakePHP without services")|
2019-10-10 19:17:17 +07:00
|CodeIgniter|`macOS`, `ubuntu` and `windows` |[codeigniter.yml](./examples/codeigniter.yml "GitHub Action for CodeIgniter")|
|Laravel with `MySQL` and `Redis` |`ubuntu`|[laravel-mysql.yml](./examples/laravel-mysql.yml "GitHub Action for Laravel with MySQL and Redis")|
|Laravel with `PostgreSQL` and `Redis` |`ubuntu`|[laravel-postgres.yml](./examples/laravel-postgres.yml "GitHub Action for Laravel with PostgreSQL and Redis")|
|Laravel without services|`macOS`, `ubuntu` and `windows` |[laravel.yml](./examples/laravel.yml "GitHub Action for Laravel without services")|
2019-10-13 06:57:58 +07:00
|Lumen with `MySQL` and `Redis` |`ubuntu`|[lumen-mysql.yml](./examples/lumen-mysql.yml "GitHub Action for Lumen with MySQL and Redis")|
|Lumen with `PostgreSQL` and `Redis` |`ubuntu`|[lumen-postgres.yml](./examples/lumen-postgres.yml "GitHub Action for Lumen with PostgreSQL and Redis")|
|Lumen without services|`macOS`, `ubuntu` and `windows` |[lumen.yml](./examples/lumen.yml "GitHub Action for Lumen without services")|
2019-10-13 11:18:29 +07:00
|Phalcon with `MySQL` |`ubuntu`|[phalcon-mysql.yml](./examples/phalcon-mysql.yml "GitHub Action for Phalcon with MySQL")|
|Phalcon with `PostgreSQL` |`ubuntu`|[phalcon-postgres.yml](./examples/phalcon-postgres.yml "GitHub Action for Phalcon with PostgreSQL")|
2019-11-27 07:30:34 +07:00
|Roots/bedrock|`ubuntu`|[bedrock.yml](./examples/bedrock.yml "GitHub Action for Wordpress Development using @roots/bedrock ")|
|Roots/sage|`ubuntu`|[sage.yml](./examples/sage.yml "GitHub Action for Wordpress Development using @roots/sage ")|
2019-10-10 19:17:17 +07:00
|Slim Framework|`macOS`, `ubuntu` and `windows` |[slim-framework.yml](./examples/slim-framework.yml "GitHub Action for Slim Framework")|
|Symfony with `MySQL` |`ubuntu`|[symfony-mysql.yml](./examples/symfony-mysql.yml "GitHub Action for Symfony with MySQL")|
|Symfony with `PostgreSQL` |`ubuntu`|[symfony-postgres.yml](./examples/symfony-postgres.yml "GitHub Action for Symfony with PostgreSQL")|
2019-11-27 07:30:34 +07:00
|Symfony without services|`macOS`, `ubuntu` and `windows` |[symfony.yml](./examples/symfony.yml "GitHub Action for Symfony without services")|
2019-10-10 19:17:17 +07:00
|Yii2 Starter Kit with `MySQL` |`ubuntu`|[yii2-mysql.yml](./examples/yii2-mysql.yml "GitHub Action for Yii2 Starter Kit with MySQL")|
|Yii2 Starter Kit with `PostgreSQL` |`ubuntu`|[yii2-postgres.yml](./examples/yii2-postgres.yml "GitHub Action for Yii2 Starter Kit with PostgreSQL")|
|Zend Framework|`macOS`, `ubuntu` and `windows` |[zend-framework.yml](./examples/zend-framework.yml "GitHub Action for Zend Framework")|
2019-10-03 17:43:34 +07:00
2019-09-24 16:08:22 +07:00
## :scroll: License
2020-07-20 19:17:35 +07:00
- The scripts and documentation in this project are released under the [MIT License ](LICENSE "License for shivammathur/setup-php" ).
- This project has multiple [dependencies ](#bookmark-dependencies "Dependencies for this PHP Action" ). Their licenses can be found in their respective repositories.
- The logo for `setup-php` is a derivative work of [php.net logo ](https://www.php.net/download-logos.php ) and is licensed under the [CC BY-SA 4.0 License ](https://creativecommons.org/licenses/by-sa/4.0/ "Creative Commons License" ).
2019-09-24 16:08:22 +07:00
## :+1: Contributions
2019-09-06 07:18:51 +07:00
2019-11-03 11:41:44 +07:00
Contributions are welcome! See [Contributor's Guide ](.github/CONTRIBUTING.md "shivammathur/setup-php contribution guide" ). If you face any issues while using this or want to suggest a feature/improvement, create an issue [here ](https://github.com/shivammathur/setup-php/issues "Issues reported" ).
2019-09-06 07:18:51 +07:00
2020-06-08 08:39:31 +07:00
## :sparkling_heart: Support This Project
2019-09-08 14:23:33 +07:00
2019-11-03 11:41:44 +07:00
If this action helped you.
2020-07-20 19:17:35 +07:00
- Sponsor the project by subscribing on [Patreon ](https://www.patreon.com/shivammathur "Shivam Mathur Patreon" ) or by contributing using [Paypal ](https://www.paypal.me/shivammathur "Shivam Mathur PayPal" ). This project is also available as part of the [Tidelift Subscription ](https://tidelift.com/subscription/pkg/npm-setup-php?utm_source=npm-setup-php&utm_medium=referral&utm_campaign=enterprise&utm_term=repo "Tidelift Subscription for setup-php" ) to support delivering enterprise-level maintenance.
- Please star the project and dependencies. If you blog, please share your experience of using this action with the community.
2019-09-08 14:23:33 +07:00
2020-06-08 08:39:31 +07:00
## :bookmark: Dependencies
2019-09-08 14:23:33 +07:00
2020-06-08 08:39:31 +07:00
- [Node.js dependencies ](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies" )
2020-11-16 03:58:18 +07:00
- [aaronparker/VcRedist ](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package" )
2019-12-09 09:39:03 +07:00
- [mlocati/powershell-phpmanager ](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows" )
2020-06-08 08:39:31 +07:00
- [ppa:ondrej/php ](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages" )
2019-12-09 09:39:03 +07:00
- [shivammathur/homebrew-php ](https://github.com/shivammathur/homebrew-php "Tap for PHP builds for MacOS" )
2020-07-03 19:16:15 +07:00
- [shivammathur/homebrew-extensions ](https://github.com/shivammathur/homebrew-extensions "Tap for PHP extensions for MacOS" )
2020-06-08 08:39:31 +07:00
- [shivammathur/php-builder ](https://github.com/shivammathur/php-builder "Nightly PHP package" )
2019-09-08 14:23:33 +07:00
2019-09-24 16:08:22 +07:00
## :bookmark_tabs: Further Reading
2019-09-06 07:18:51 +07:00
2019-10-10 19:17:17 +07:00
- [About GitHub Actions ](https://github.com/features/actions "GitHub Actions" )
- [GitHub Actions Syntax ](https://help.github.com/en/articles/workflow-syntax-for-github-actions "GitHub Actions Syntax" )
2020-06-08 08:39:31 +07:00
- [Other Awesome Actions ](https://github.com/sdras/awesome-actions "List of Awesome GitHub Actions" )