Gathering detailed insights and metrics for gulp-devserver-php
Gathering detailed insights and metrics for gulp-devserver-php
Gathering detailed insights and metrics for gulp-devserver-php
Gathering detailed insights and metrics for gulp-devserver-php
This is a [gulp] plugin forked from [gulp-connect-php]. Why I developed newly for because that plugin was not maintained it for a long time, and is having serious security issues.
npm install gulp-devserver-php
Typescript
Module System
Node Version
NPM Version
JavaScript (91.53%)
Pug (3.55%)
PHP (2.6%)
Dockerfile (1.64%)
TypeScript (0.68%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
15 Commits
1 Branches
1 Contributors
Updated on Jul 03, 2025
Latest Version
1.2.4
Package Id
gulp-devserver-php@1.2.4
Unpacked Size
454.09 kB
Size
116.42 kB
File Count
28
NPM Version
10.8.2
Node Version
20.19.2
Published on
Jul 02, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
4
言語 | Language |
---|---|
![]() | ![]() |
index.d.ts
に型定義(export declare)を追加, 更新test/*
のoption指定は、型定義を参照するように直接指定へと変更このパッケージはNode.js上でPHPを扱います。
gulpでの動作を想定しており、主にbrowser-syncと連動した開発用ライブサーバーとして機能させます。
またブラウザを起動せず、直接PHPの処理を実行させることも可能です。
このパッケージはgulp-connect-phpが長くアップデートされていないために作成したもので、コードの大部分に影響を受けていますが、セキュリティに問題のある依存パッケージは積極的に別のものへと置き換えています。
元となったgulp-connect-php
はgulpを使ったPHPサイトの制作に欠かせないとても素晴らしいパッケージですが、長らくアップデートされておらず、npm i
する度にnpm audit fix
するよう警告されます。
そして実行しても警告文は解消されません!
そこでパッケージを更新しつつ、ESModule形式(import文)へ書き換えることにしたのがこのgulp-devserver-php
プラグインです。
プロジェクトフォルダを作成し、次のフォルダを作成します。
mkdir dist
mkdir src
+- projectFolder/
+- dist/
+- src/
package.json
のscriptsメソッドを更新します。
1"scripts": { 2 "clean": "gulp clean", 3 "build": "gulp", 4 "dev": "gulp dev" 5}
npm
を使えるようにします。
npm init -y
パッケージをインストールします。
npm i browser-sync fs-extra gulp gulp-if gulp-plumber gulp-pug gulp-rename gulp-devserver-php
gulpfile.mjsの作成例は、test/gulp/gulpfile.mjs
を参照してください。
src/index.pug
をdist/index.php
(またはindex.html)へとトランスパイルしています。
gulp-connect-php
では次のようにパッケージを読み込んでいました。
1import browserSync from 'browser-sync' 2import connectPHP from 'gulp-connect-php'
gulp-devserver-phpでは読み込み方法が変わっています。
1import browserSync from 'browser-sync' 2import { server as phpServer } from 'gulp-devserver-php'
関数そのものを呼び出すように変更していますが、パッケージ全体を読み込む場合は次のようにしてください。
1import browserSync from 'browser-sync' 2import * as devServerPHP from 'gulp-devserver-php'
パッケージ全体を読み込んだ場合、従来通りの書き方になります。
1devServerPHP.server( 2 { 3 base: 'dist', 4 }, 5 () => { 6 browserSync.init({ 7 proxy: 'localhost:8000', 8 }) 9 } 10)
新たに導入した関数としての読み込みを行った場合、少しだけ簡略化できます。
1phpServer( 2 { 3 base: 'dist', 4 }, 5 () => { 6 browserSync.init({ 7 proxy: 'localhost:8000', 8 }) 9 } 10)
php.exe
へのパスを環境変数に登録していない場合WAMPやXAMPP、そしてMacで利用する場合の話。
php.exe
とphp.ini
へのパスが環境変数に登録されていないため、上記の例のままでは動作しません。
ApacheやPHPのインストールが完了している場合、この章での追加設定は必要ありません。
PHPの関連ファイルがすでにパソコン内に保存されている場合は、ファイルパスを第一引数に加えます。
パスが環境変数に登録している状態でも、別バージョンのPHPで動作させたい場合にも下記の例は有効です。
1phpServer( 2 { 3 base: 'dist', 4 bin: "C:/php7.4.13/php.exe", 5 ini: "C:/php7.4.13/php.ini", 6 }, 7 // 省略 8)
WAMP・XAMPPを用いる場合も同様ですが、ファイルの保存場所は(自分でインストールする場合に比べて)固定的であるため分かりやすいでしょう。
1phpServer(
2 {
3 base: 'dist',
4 bin: 'C:/wamp64/bin/php/php8.3.14/php.exe',
5 ini: 'C:/wamp64/bin/php/php8.3.14/php.ini',
6 },
7 // 省略
8)
ターミナルから実行可能なコマンドは以下の通りです。
npm run clean
: 出力したファイルを削除するnpm run build
: 静的なファイルを出力するnpm run dev
: 開発モードを起動する (今回の主眼)開発モードを起動すると、ブラウザの新しいタブでPHPが動作するはずです。
gulpfile.mjs
の26行目にある変数を切り替えれば、出力されるファイルの拡張子は.php
と.html
とで変わります。
gulpfile.mjs単体での利用を応用して、Dockerでも動作させることが可能です。
プロジェクトフォルダを作成し、次のフォルダを作成します。
mkdir config
cd config
mkdir web
cd ../
mkdir html
cd html
mkdir app
mkdir src
cd ../
+- projectFolder/
+- config/
| +- web/
+- html/
+- app/
+- src/
package.json
のscriptsメソッドを更新します。
1"scripts": { 2 "clean": "gulp clean", 3 "build": "gulp", 4 "dev": "gulp dev" 5}
npm
を使えるようにします。
npm init -y
パッケージをインストールします。
npm i browser-sync fs-extra gulp gulp-if gulp-plumber gulp-pug gulp-rename gulp-devserver-php
gulpfile.mjsの作成例は、test/docker/gulpfile.mjs
を参照してください。
html/src/index.pug
をhtml/app/index.php
(またはindex.html)へとトランスパイルしています。
gulpfile.mjs単体利用の読み込み方法の変更を参照してください。
gulpfile.mjs単体利用のサーバーの起動方法を参照してください。
フォルダパスが変わっていますので、その点だけご注意ください。
src
フォルダ:html/src
フォルダへ変更dist
フォルダ:html/app
フォルダへ変更
gulpfile.mjs単体利用のPHP.exeへのパスを環境変数に登録していない場合を参照してください。
docker-compose.yml
と、config/web/Dockerfile
を作成します。
作成例はtest/docker/
フォルダを参照してください。
Docker Desktop
を起動した状態で、ターミナルから次のコマンドを実行します。
docker compose up -d
http://localhost:8880
をブラウザで開けば、Dockerコンテナの管理下にある開発サーバを確認できるでしょう。
Dockerコンテナの利用を終了したい場合はdocker compose down -v
コマンドから実行可能です。
ターミナルから実行可能なコマンドは以下の通りです。
npm run clean
: 出力したファイルを削除するnpm run build
: 静的なファイルを出力するnpm run dev
: 開発モードでコーディングする (今回の主眼)gulpfile.mjs
の26行目にある変数を切り替えれば、出力されるファイルの拡張子は.php
と.html
とで変わります。
開発モードを実行しても、ブラウザの新しいタブで自動的に開かれることはありません。
代わりにhttp://localhost:8880
をブラウザで開くと、Dockerを利用した出力結果が表示されます。
開発モードを起動したままhtml/src/
フォルダの中身を更新・保存するとgulp
のwatch
タスクが自動的にトランスパイル処理を実行してくれますが、ブラウザのオートリロードは働いていないので手動リロードが必要になります。
直接PHPを実行することも可能です。
プロジェクトフォルダを作成します。
package.json
のscriptsメソッドを更新します。
1"scripts": { 2 "serve": "gulp" 3}
npm
を使えるようにします。
npm init -y
パッケージをインストールします。
npm i gulp gulp-devserver-php
gulpfile.mjsの作成例は、test/singleton/gulpfile.mjs
を参照してください。
index.php
の内容を実行しています。
gulpfile.mjs単体利用の読み込み方法の変更を参照してください。
1import { server as phpServer, closeServer } from 'gulp-devserver-php'
開いたPHPのプロセスを閉じる必要がありますので、そのための関数を追加で読み込んでいる点に注意してください。
1phpServer({
2 //bin: 'C:/wamp64/bin/php/php8.3.14/php.exe',
3 //ini: 'C:/wamp64/bin/php/php8.3.14/php.ini',
4}, () => {
5 closeServer()
6})
browser-sync
パッケージと連動する必要がなくなったため、シンプルになりました。
server関数 (phpServer関数)
へphp.exe
・php.ini
のパスに関する設定を第一引数に追加する場合、PHP.exeへのパスを環境変数に登録していない場合を参照してください。
第二引数では、PHPプロセスを閉じる処理を行っています。
ターミナルから実行可能なコマンドは以下の通りです。
npm run serve
: index.phpを実行する変数の内容を確認したい場合はvar_dump()
関数などで標準出力へ持って行くのでなく、error_log($data, 4)
を用いてください。
第二引数の
4
は、ログ出力用のハンドラへ渡すための指定ですここではエラーログを使って、ターミナルに出力させています
概ねgulp-connect-php
に準拠しており、bin
・ini
を除けば特に指定をしなくても動作してくれると思います。
アクセスする時のポート番号を指定します。
初期値: 8000
(number)
アクセスする時のホスト名を指定します。
初期値: 127.0.0.1
(string)
内部的には
localhost
と同じです。
どのフォルダをサーバとしての基本ディレクトリとするかを指定します。
初期値: .
(string)
ここではgulpfile.mjs
が存在しているフォルダが対象となります。
php.exe
へのファイルパスを指定します。
初期値: php
(string)
環境変数に登録している場合、初期値のphp
がファイルパスの代わりになります。
WAMP・XAMPPを利用した環境や、MacなどPHPがインストールされているけれども利用できない状態にされている環境、あるいはインストール済みのPHPではない別バージョンのPHPを利用する場合にphp.exe
へのファイルパスを指定します。
php.iniへのファイルパスを指定します。
初期値: なし
指定しない場合、環境変数からphp.iniへのファイルパスを取得します。
bin
を指定した場合、同時にini
も指定する必要があります。
また独自のphp.iniへと切り替える場合にも指定することが可能です。
php.exe
へ渡される引数を確認するかどうかを指定します。
初期値: false
(boolean)
true
へ変更すると、php.exe
の引数とログ(エラーログやアクセスログなど)がターミナルに出力されるようになります。
gulp-connect-php
のオプションを参照してください。
PHPの処理が完了した後に実行されるコールバック関数となっています。
PHPのプロセスを閉じたり、完了メッセージを表示したりする時にご利用ください。
No vulnerabilities found.
No security vulnerabilities found.