読者です 読者をやめる 読者になる 読者になる

shucreamTech

web系エンジニアが意識低く書くブログ

PHP7でFuelPHPを使うぞ!!

PHP Fuel

これは何

PHP7(7.0.x)でFuelPHP を使うためのメモです。

今回使用したOS・ミドルウェア等は以下の通りです。

  • CentOS 7.1
  • PHP 7.0.x
    • Fuel 1.8/develop
  • Apache 2.4.x

Fuel 1.8/develop はご覧の通り開発中のバージョンですが、PHP7への対応は1.8.x以降のようですので積極的に人柱になっていこうという構えです。

今回は導入編として、

  • Fuelのcoreのテストが通ること
  • welcome画面が正常に表示されること

を確認します。

まずPHP7をインストールする

色々なインストール方法があるかと思いますが、ここではremiリポジトリを使います。 こちら を参考に、

# EPELリポジトリを追加
$ yum install epel-release
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum --enablerepo=remi update remi-release

# PHP7をインストール
$ yum --enablerepo=remi-php70 update php\*
$ yum --enablerepo=remi-php70,epel install php php-cli php-common php-mbstring php-fpm php-gd $ $ php-gmp php-mbstring php-mcrypt php-opcache php-pdo php-xml

# 確認
$ php -v # PHP 7.0.1

ということで PHP 7.0.1 が入りましたね。

Fuelプロジェクトを作成する

(ここに記述するバージョンのstableやdevelop等の情報は2015年12月20日現在のものであることにご注意下さい) 今回はFuel1.8/develop をインストールしたいわけですが、普通にインストールをするとstableの1.7が入ってしまうため、以下のようにして1.8をインストールします。

$ mkdir project_dir
$ cd project_dir
$ git clone git://github.com/fuel/fuel.git -b 1.8/develop .
$ php composer.phar composer require phpunit/phpunit:5.1.* --dev # phpunitを追加(バージョンは適宜)
$ ./composer.phar self-update
$ ./composer.phar update

phpunitを使うために

実はこのままだと php oil test としたときにphpunitにパスが通っていないためエラーになります。 fuel/app/config/oil.php を作成し、binary_path を指定してやります。

<?php

return [
    'phpunit' => [
        'binary_path' => APPPATH . '../vendor/bin/phpunit'
    ]
];

これで、oilコマンド経由でtestを実行出来るようになりました。 $ php oil test でテストが実行されればOKです。 (1.8/develop では、全てテストが通りました。)

Apacheの設定をする

/etc/httpd/conf/httpd.conf を直接編集しても良いのですが、個人的には /etc/httpd/cond.d/ 以下にプロジェクトごとにconfファイルを作成するのが好みです。

先ほど作成した、 プロジェクトのルートを /home/vagrant/project_dir とすると、 /home/vagrant/project_dir/public がドキュメントルートになるように設定をします。

個々人の開発環境に依存する部分ですが、私の環境では

ln -s /home/vagrant/project_dir/public /var/www/project_name として、

<VirtualHost *:80>
    DocumentRoot "/var/www/project_name"
</VirtualHost>

という感じにしています。

conf上で指定しているDocumentRootはシンボリックリンクになりますので、/home/vagrant ディレクトリのパーミッションやFollowSymlinks の設定にご注意下さい。

以上の設定をした後httpdを再起動し、意図したURLでブラウザにWelcome画面が表示されればOKです。

さいごに

わざわざ記事にするほどの内容ではなかった感... まぁとりあえずPHP7+Fuel動いたよーってことで(・o・)

追記

PHP5.6とPHP7でoil testの実行速度比較してみました

# fuel1.7 with PHP5.6
$ php oil test —group=Core
# -> Time: 1.99 seconds, Memory: 24.00Mb
# -> Tests: 389, Assertions: 481

# fuel1.8 with PHP7
$ php oil test —group=Core
# -> Time: 656 ms, Memory: 10.00Mb
# -> 390 tests, 485 assertions)

ふーん( ・◡・)