https://github.com/php-pm/php-pm-drupal
Drupal adapter for use of Drupal 8 with PHP-PM
https://github.com/php-pm/php-pm-drupal
Last synced: 10 months ago
JSON representation
Drupal adapter for use of Drupal 8 with PHP-PM
- Host: GitHub
- URL: https://github.com/php-pm/php-pm-drupal
- Owner: php-pm
- Created: 2015-10-27T22:45:37.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-03-10T20:04:31.000Z (almost 9 years ago)
- Last Synced: 2025-04-09T12:21:53.848Z (11 months ago)
- Language: PHP
- Homepage:
- Size: 46.9 KB
- Stars: 43
- Watchers: 9
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PHP-PM DrupalKernel Adapter
## Overview
This is a fork of PHP-PM's HttpKernel adapter for integrating Drupal with PHP-PM (therefore, also with ReactPHP).
The primary components are a bootstrap and bridge.
See:
* https://github.com/php-pm/php-pm
* https://github.com/php-pm/php-pm-httpkernel
* http://marcjschmidt.de/blog/2014/02/08/php-high-performance.html
The code is in alpha -- very experimental. Last tested against `drupal-8.0.2`.
View / report issues at https://github.com/php-pm/php-pm-drupal/issues.
### Setup / Usage
1. Install Drupal.
2. From the Drupal web root, install this project with composer: `composer require php-pm/drupal-adapter`.
This will also install PHP-PM and the default React <-> Symfony bridge (php-pm/httpkernel-adapter).
3. Apply these patches to Drupal core:
* `vendor/kentr/php-pm-drupal-adapter/patches/kentr-allow-repeated-setSitePath-in-DrupalKernel.patch`
* `vendor/kentr/php-pm-drupal-adapter/patches/stop_using-2505339-24.patch`
4. Start php-pm with
```bash
/vendor/bin/ppm \
start \
\
--bridge=httpKernel \
--bootstrap=PHPPM\\Bootstraps\\Drupal
```
Example:
```bash
/var/www/html/vendor/bin/ppm \
start \
/var/www/html/ \
--bridge=httpKernel \
--bootstrap=PHPPM\\Bootstraps\\Drupal
```
## DrupalKernel bridge
By default, PHP-PM uses the `\PHPPM\Bridges\HttpKernel` bridge to convert a ReactPHP request into a Symfony request and the Symfony response into a ReactPHP response.
The included `\PHPPM\Bridges\DrupalKernel` bridge extends `\PHPPM\Bridges\HttpKernel` to populate various request meta-variables specified by [CGI/1.1 (RFC 3875)](http://www.faqs.org/rfcs/rfc3875.html).
### Setup / Usage
1. Install as described above.
2. Include the environment variables and the `--bridge` option in the php-pm start command.
Supported environment variables:
* **SCRIPT_NAME:** '/index.php' to emulate a standard setup where web requests execute Drupal's `index.php` script.
* **SERVER_NAME:** Your site's server / domain name. If you're using trusted host settings (`$settings['trusted_host_patterns']` in `settings.php`), this must match one of the trusted hosts.
* **SERVER_ADDRESS:** IP address of the server.
* **DOCUMENT_ROOT:** Absolute filepath of the web root directory.
Example:
```bash
SCRIPT_NAME=/index.php \
SERVER_NAME=localhost \
SERVER_ADDRESS=127.0.0.1 \
DOCUMENT_ROOT=/var/www/html \
/var/www/html/vendor/bin/ppm start /var/www/html \
--bridge=PHPPM\\Bridges\\DrupalKernel \
--bootstrap=PHPPM\\Bootstraps\\Drupal
```