フロントエンドの人でも楽して、PHPが使える環境をサクッと用意したいのだ!

フロントエンドの人でも楽して、PHPが使える環境をサクッと用意したいのだ!

こんにちは、ダイエット生活1ヶ月経過のishidaです。
この1ヶ月、以下のルールを守って生活したら1ヶ月で4kg体重が減りました。

・1日1回スムージー
・揚げ物は食べない

この調子のままいくと桜の季節には体重が50kgになるぜよ。

さてさて、PHPを使うにはこれまでMAMP・XAMPPやVagrantなどの仮想環境をそれぞれ用意していました。 データベースを使用しない場合は、簡単にPHPを使う方法が他にあるんですね。

もっと早く知りたかった―。会いたかった―。会いたかった―。会いたかった―。イェス!!

PHPのビルトインサーバ

PHP 5.4.0 からウェブサーバの機能が組み込まれています。
この機能を使うことでサクッとPHPが使えるようになります。

※なおウェブサーバの機能はアプリケーションの開発支援用に設計されているので、公開サーバでは使用しないように。

PHPのインストール

まずはPHPをインストールします。
macについては、PHPがプリインストールされているのでバージョンだけ確認することにします。

$ php -v

PHP 5.5.31 (cli) (built: Feb 20 2016 20:33:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

自分のマシンは、PHPのバージョンは5.5.31でした。

WindowsにPHPをインストール

Windowsの場合には別途PHPのインストールが必要となります。

Windows10へのPHPインストールは以下の記事が参考になりました。
Windows 10にPHP5.6 VC11をインストール | Webデザインラボ

ウェブサーバの起動

コマンドラインから簡易ウェブサーバを起動します。
対象となるディレクトリに移動して、phpコマンドの-Sオプションを指定することでビルトインウェブサーバを開始させます。

$ cd htdocs
$ php -S localhost:8000

PHP 5.5.31 Development Server started at Wed Oct 12 17:36:25 2016
Listening on http://localhost:8000
Document root is /Users/hogehoge/Desktop/gulp-php/htdocs
Press Ctrl-C to quit.

これで、PHPが使えるようになりました。

でもフロントエンドがメインの場合には、gulpを使うことが多いですよね。
できることならば、gulpも連動させたい!

gulpとPHPを連動させる

PHPビルトインサーバをgulp上で使うには、gulp-connect-phpプラグインが便利です。

gulp-connect-php

起動したPHPビルトインサーバをbrowserSyncのproxyオプションに指定します。

以下は、
・ PHPビルトインサーバ起動
・ browserSyncによるライブリロード
を設定した gulpfile.coffee です。

gulp = require 'gulp'
browserSync = require 'browser-sync'
php = require 'gulp-connect-php'

# PHPビルトインサーバ
gulp.task 'php', ->
    php.server
        base: 'htdocs/'
        port: 8000

# BrowserSyncの設定
gulp.task 'server',['php'], ->
    browserSync
        proxy: 'localhost:8000'
        port: 8000
        open: 'external'

# リロード
gulp.task 'reload', ->
    browserSync.reload();

# デフォルトタスク
gulp.task 'default', ['server'], ->
    gulp.watch 'htdocs/**/*.php', ['reload']

この gulpfile.coffee で gulp を実行すると PHPファイルに変更が入るたびに、リロードされるようになります。

phpファイルをテンプレートエンジンで出力する場合には、 元のソースをhtml拡張子にして
出力時に php拡張子にリネームしてもちゃんと動作しますね。

まとめ

  • PHP 5.4.0 からウェブサーバの機能が組み込まれている
  • php -S でビルトインサーバを起動できる
  • gulp と連携するなら gulp-connect-php プラグインが便利

    PHPがあるから環境を用意しなきゃというのは、もう古いんですね。。。。

これまで、ちょっとしたPHPがからむプロジェクトでも環境構築に時間がかかっていましたが 今後はPHPビルトインサーバを利用することで作業効率がグーンとアップしそうです。
目先見えている、あの案件でも利用してみます。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ