PHP5.6→7系、Laravel5.4→5.5への移行アップデートでざっくりやったこと
なぜバージョンアップするのか
PHP7の高速化の恩恵にも預かりたいですが、PHP5.6のサポートが2018年いっぱいで切れるということが一番大きいです。
Laravelへの移行はPHPのバージョンアップに伴ってというところですが、5.5がLTSなので早いとこそれに変えておきたいという面もあります。
大まかに下記のような手順でバージョンアップを進めていきたいと思います。
- 現在のコードをPHP7にしても文法的にエラーがないか確認
- 実際に開発環境をPHP7にして確認
- Laravel5.5用にプロジェクトをアップデート
1. 現在のコードをPHP7にしても文法的にエラーがないか確認
文法チェックツールでコマンドラインからサクッと確認
sstalle/php7cc: PHP 7 Compatibility Checker
php7ccはphp5系(5.3〜5.6)からphp7への移行をサポートしてくれるコマンドラインツールで、移行プロジェクトの文法的なエラーやWarningを教えてくれる。
ただし、現在すでにphp7ccは開発サポートされていないので、phanやphpstanなどの別の代替サポートツールを使うのもいいかも。
使い方
# インストール
$ composer global require sstalle/php7cc
# パスを通す
$ export PATH="$PATH:$HOME/.composer/vendor/bin"
# カレントディレクトリ配下をvendor配下を除いて全て文法チェック。結果はjson形式で表示
$ php7cc --except=vendor -o json ./ > result.json
ここで文法的エラーが出るようであれば修正の必要あり。
php7の変更点のマニュアルなどを参考に修正します。
PHP: 下位互換性のない変更点 - Manual
2. 実際に開発環境をPHP7にして確認
php7.xのバージョン選定
実際php7系をインストールする段階なので、7系のどのマイナーバージョンを使用するか決める必要があります。
2018/4/30現在の最新版は7.2で、速度も7.1から改善しているらしいです。
ある程度世間で使われたバージョンの方が好ましい場合もあったりいろいろですが、下記記事などによると7.1の恩恵は大きそうなので、少なくとも7.0よりは7.1を検討した方が良さそうです。今回は7.1をインストールしてみたいと思います。
それでもphp 7.1以降を使うべき7つの理由 - Qiita
php7.1のインストール方法
CentOS7系の標準リポジトリのPHPバージョンは5.4で、標準リポジトリに7系は入っていないので、epel、remiを追加する必要があります。
最初からepel、remiといったリポジトリが入ってる場合もあるので、yum repolist
で確認します。
参考:CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール - Qiita
# epelを追加
$ yum install -y epel-release
# remiを追加
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# php7.1、その他Laravel5.5の要件となるモジュールをインストール
$ yum install -y --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-xml
# php7.1のインストールを確認
$ php -v
PHP 7.1.17 (cli) (built: Apr 25 2018 08:30:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
# Laravel5.5の要件のphpモジュールの確認
$ php -m
mbstring
openssl
PDO
tokenizer
xml
(他略)
実際にPHP7.1がインストールできたので、この段階で一度Laravelアプリケーションでのテストやブラウザ確認を行ってもいいかもしれません。
3. Laravel5.5用にプロジェクトをアップデート
アップグレードガイドを読む
PHP7.1では最新版のLaravel5.6にアップグレードすることができますが、今回はLTSの5.5にアップグレードしていきます。
丁寧にアップグレードガイドが用意されているので読んでおきます。5.4からの変更点は大したものはなく、工数1時間程度らしいです。(これが5.1からのアップグレードとかだと大変なので、Laravelは細かくマイナーバージョンアップした方がいいかもしれないです)
アップグレードガイド 5.5 Laravel
composer.jsonをアップデート
5.4からは大きな変更点はそんなにないので、composer.jsonの変更点だけですむ場合も多いのではないでしょうか。composer.jsonは基本的にはlaravelのgithubの5.5ブランチの通りに書いていけばいいのではないかと思いますが、自分で変更を加えた点についてはその限りではないので注意。
laravel/composer.json at 5.5 · laravel/laravel
追加で入れているライブラリがあればPacakgistも確認して、使用するPHPバージョンに適した記述でcomposer.jsonを修正します。
laravel/laravel - Packagist
バージョニングの指定の仕方をよく忘れるので引用。
指定 | 対象となるバージョン |
---|---|
1.* | 1.x.x |
1.2.* | 1.2.x |
~1.1 | 1.1以上、2未満 |
~1.1.5 | 1.1.5以上、1.2未満 |
^1.1 | 1.1以上、2未満 |
^1.1.5 | 1.1.5以上、2未満 |
>=1.2 | 1.2以上 |
~2.0,>=2.6 | 2.0以上3未満 かつ 2.6以上 |
>=2.0|3.0-beta | 2.0以上 または 3.0beta版 |
[初心者向け] composerのバージョン指定方法 | QUARTETCOM TECH BLOG
以上!
Author And Source
この問題について(PHP5.6→7系、Laravel5.4→5.5への移行アップデートでざっくりやったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/katsunory/items/fb5d01bb406b15ddcb8f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .