Help us understand the problem. What is going on with this article?

PHP5.6→7系、Laravel5.4→5.5への移行アップデートでざっくりやったこと

More than 1 year has passed since last update.

なぜバージョンアップするのか

PHP7の高速化の恩恵にも預かりたいですが、PHP5.6のサポートが2018年いっぱいで切れるということが一番大きいです。
Laravelへの移行はPHPのバージョンアップに伴ってというところですが、5.5がLTSなので早いとこそれに変えておきたいという面もあります。

大まかに下記のような手順でバージョンアップを進めていきたいと思います。

  1. 現在のコードをPHP7にしても文法的にエラーがないか確認
  2. 実際に開発環境をPHP7にして確認
  3. Laravel5.5用にプロジェクトをアップデート

1. 現在のコードをPHP7にしても文法的にエラーがないか確認

文法チェックツールでコマンドラインからサクッと確認

sstalle/php7cc: PHP 7 Compatibility Checker

php7ccはphp5系(5.3〜5.6)からphp7への移行をサポートしてくれるコマンドラインツールで、移行プロジェクトの文法的なエラーやWarningを教えてくれる。
ただし、現在すでにphp7ccは開発サポートされていないので、phanphpstanなどの別の代替サポートツールを使うのもいいかも。

使い方

# インストール
$ 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

以上!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした