システム開発

【Laravel入門者向け】Laravel6系+PHP7.4でMVCの流れをサクッと試す (Mac編)

PHPのフレームワークで最近人気のLaravel

多くの人が利用しているフレームワークのため勉強しやすく扱いやすいのが特徴ですが、Laravel入門者はその扱いに戸惑うこともあるでしょう。

この記事では、そんなLaravel入門者向けにMVCをスピード重視で試す手順を解説していきます。

・Laravel入門者でそのポイントについて知りたい方
・Laravelでアプリケーション設定をしたい方

これらに当てはまる方におすすめの記事です。これを読めば入門者の方でもLaravelでの開発が行えますよ!

Laravelの開発環境の構築方法

Laravelの開発環境の構築方法は大きく以下の4つがあります。

  • PHPのビルトインサーバーを使う (ローカルPC上に構築)
  • Laravel Homesteadを使う (Vagrant上に構築)
  • Laradockを使う (Docker上に構築)
  • Docker環境を自作する (Docker上に構築)

おすすめ!PHPのビルトインサーバーを使う(ローカルPC上に構築)

結論から言うと、入門者はこのビルトインサーバーを使う方法が一番オススメです。

PHP5.4から内蔵されているWebサーバーを使ってLaravelを動かす方法で、
Laravelでひとまず開発を進めたい場合には十分です。(本番環境では必ずNginx等のWebサーバーを用意しましょう)

Laravel Homesteadを使う(Vagrant上に構築)

Laravel Homesteadは公式サイトで推奨されているものの、手間がかかる手法です。

仮想環境といえば最近はDockerを使うプロジェクトが多いので、HomesteadのためだけにVirtualBoxを入れたりVagrantを学習をするのは大変です。

またHomestead自体にも少なからず学習コストがかかってしまいます。

Laradockを使う(Docker上に構築)

Laradockはインフラに詳しくない人でも、Docker上にLaravelを構築することができるツールです。

Laravel以外のフレームワークにも幅広く対応したおかげで、コード量が膨大で解読が難しく、ハマった時に時間がかなり取られるためオススメしません。

Docker環境を自作する (Docker上に構築)

仮想環境を構築するのであればDockerの扱いに慣れておいた方が他のプロジェクトでも便利です。

しかし仮想環境を一から構築するのは手間と時間がかかるため、ビルトインサーバーで早く開発を進めてしまい、
Laravelに慣れてきてからDocker環境を自作するのが良いかと思います。

バージョンはLaravel6系がオススメ

Laravelの最新バージョンは7系ですが 2020年3月3日にリリースされたばかりであり、執筆時点(2020年4月3日)では長期サポートの対象となっているのは6系です。

今から本番運用も考えて始めるならば、6系をオススメします。

PHPのバージョン管理ツール

PHPのバージョン管理ツールはphpenvphpbrewが有名ですが、これが意外と落とし穴です。

どちらのツールを使った場合でも、PHP7.4をインストールする際に依存ライブラリでハマる場合が多く非常に面倒です。

特にphpenvの場合はrbenvと競合してしまう問題もあります。結論として、PHP7.4はHomebrewでインストールしましょう。

HomebrewはPHPの依存ライブラリも自動で解決してくれますし、複数のバージョンの切り替えも可能です。

Laravel入門者向けにMVCをスピード重視で試す手順

ここからいよいよLaravel6系+PHP7.4でMVCを試していきましょう。

1.PHP7.4をHomebrewでインストール

まずは下記コマンドでインストール可能なPHPのバージョンを確認します。

brew search php@7

以下のような画面が表示されるかと思います。

次に下記コマンドでPHP7.4をインストールします。

brew install php@7.4

依存ライブラリが多く、数分はかかるので気長に待ちましょう。

2.PHP7.4を有効化

次に下記コマンドでPHPのパスを通します。
zsh以外を利用している場合は適時書き換えてください。

echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc 
echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc 
source ~/.zshrc 

有効化が完了したら、下記コマンドでPHPのバージョンを確認します。

php -v

以下のように7.4系がインストールされていればOKです。

3.Laravelプロジェクトを作成

まず次のコマンドでcomposerをインストールします。

brew install composer

次に下記コマンドでlaravel6系のプロジェクトを作成します。

composer create-project --prefer-dist laravel/laravel laravel_sample "6.*"

create-projectはgit clonecomposer installを同時に行ってくれるコマンドです。
また--prefer-distをオプションで指定するとzip形式でダウンロードできるので通常より高速になります。

4.ビルトインサーバーを起動

プロジェクトの作成が完了したら、下記コマンドでサーバーを起動します。

cd laravel_sample 
php artisan serve

起動が完了したら、
http:localhost:8000にアクセスします。

以下のような画面が表示されればOKです。


5.Laravel用のデータベースを作成

次にモデルからのデータベース接続を試したいので、 下記コマンドでLaravel用のデータベースを作成します。

mysql -u root -p 
mysql> create database laravel; 

config/database.phpを確認すれば分かりますが、
環境変数のDB_DATABASEにデフォルトでlaravelが指定されています。

6.トップ画面用のコントローラーを追加

トップ画面の表示をカスタマイズするため、下記コマンドでコントローラーを追加します。

php artisan make:controller HomeController

これでapp/Http/Controllers以下にHomeController.phpが作成されます。

7.トップ画面のルーティング先をコントローラーアクションに変更

次にroutes/web.phpを以下のように編集します。

Route::get('/', 'HomeController@index');

これでトップ画面にアクセスした時に、
HomeControllerのindexアクションが呼ばれるようになります。

8.コントローラーアクションからビューを返すように修正

次にapp/Http/Controllers/HomeController.phpを以下のように編集します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index ()
    {
        $message = 'Hello World';
        return view('hoge.index', ['message' => $message]);
    }
}

Laravelの特徴として、第一引数に渡すビューは何でも良いという点があります。

HomeControllerのindexアクションですが、ビューはhome/index という階層で無ければならないという規約の縛りはありません。

分かりやすさを優先して、今回はコントローラーのアクション名とビューの階層を合わせています。

9.トップ画面のビューを追加

次に以下の内容のresources/views/home/index.blade.phpを追加します。
コントローラーから受け取ったmessage変数を表示します。

<html>
    <body>
        <h1>{{ $message }}</h1>
    </body>
</html>

追加できたら、http://localhost:8000にアクセスします。以下のような画面が表示されればOKです。

10.モデル追加

次に以下コマンドでPostモデルを追加します。

php artisan make:model Post --migration

database/migrationsに以下のようなマイグレーションファイルが作成されます。

また最初から認証機能用にusersテーブル等のマイグレーションが用意されていますが、
これらは不要であれば反映する前に削除しておきます。

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

主キーのIDとタイムスタンプが自動で作成されているので、
titlebodyカラムを以下のように追加します。

$table->bigIncrements('id');
$table->string('title');
$table->text('body');
$table->timestamps();

次に以下コマンドで実行してマイグレーションを反映します。

php artisan migrate

これでpostsテーブルが新しく作成されました。

11.Postモデルに複数カラムを一括保存できるように修正

Laravelでは以下のように書くと複数のカラムをまとめて保存できます。

Post::create(['title' => 'title', 'body' => 'body']);

しかし不正なパラメータが渡ってきても大丈夫なように、
事前に許可したカラム以外は一括保存出来ないようになっています。

そこでapp/Post.phpを以下のように編集します。

class Post extends Model
{
    protected $fillable = ['title', 'body'];
}

これで一括保存が可能になります。

12.テストデータをtinkerから追加

次に表示用にテストデータを追加するため、以下のコマンドを実行してtinkerを起動します。

php artisan tinker

tinkerはLaravelや独自クラスの機能を、
試しにコマンドライン上で動作させることのできるツールです。

tinkerを起動したら、以下コマンドを実行して、 postsテーブルにレコードを1件追加します。

Post::create(['title' => 'title', 'body' => 'DB Hello World']);

以下のように表示されればOKです。

13.モデルの値を返すようにコントローラーを編集

次にapp/Http/Controllers/HomeController.phpを以下のように編集します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;

class HomeController extends Controller
{
    public function index ()
    {
        $message = Post::where('title', 'title')->first()->body;
        return view('hoge.index', ['message' => $message]);
    }
}

Postモデルからレコードを取得するように変更しました。

変更できたら、http://localhost:8000にアクセスします。 以下のような画面が表示されればOKです。

終わりに

これでLaravelでMVCモデルを実装する際の基本は試すことが出来ました!Laravelの環境構築には様々な方法があり、動かすまで時間がかかったので、今回の記事が同じような方の役に立てば幸いです。

DEHAソリューションズではPHPに強いエンジニアが多数在籍しています。エンジニアを1から採用するよりも、効率的で低コストで、エンジニアのスポット派遣や開発サポートもおこなっています。

自分だけでLaravelの環境構築を行うのは難しそうという方やPHPエンジニアの採用をしたい方はぜひお問い合わせください。

PHPエンジニアについてのお問い合わせはこちらから

Mai Tran

Recent Posts

IFSクラウドへ移行すべき4つの理由

製造業や建設業、航空・防衛、エネルギー、サービス業など、複雑な業務を抱える企業にとって、ERPシステムは単なる基幹システムではなく、経営そのものを支えるインフラとなっています。 しかし近年、多くの企業で従来型ERPの限界が顕在化しています。そのような中で注目されているのが、クラウド型ERPへの移行です。 この記事では、「IFSクラウドへ移行すべき4つの理由」というテーマで、IFS Cloudがなぜ多くの企業に選ばれているのかを詳しく解説します。 IFSクラウドに興味がある方 製造業や建設業の方 従来型ERPをお使いの方 これらに当てはまる方におすすめの記事となっています。これを読めばIFSクラウドへ移行すべき理由がわかるだけでなく、経営改革の視点からIFS Cloudの価値を整理することができますよ。 従来型ERPの限界とIFS Cloud 製造業や建設業、航空・防衛、エネルギー、サービス業など、複雑な業務を抱える企業にとって、ERPシステムは単なる基幹システムではなく、経営そのものを支えるインフラとなっています。 しかし近年、多くの企業で従来型ERPの限界が顕在化しています。 オンプレミス環境の維持コスト増大、システム老朽化、カスタマイズ肥大化による運用負荷、グローバル対応の難しさ、そしてDX推進への対応不足など、企業を取り巻く課題は年々深刻化しています。 そのような中で注目されているのが、クラウド型ERPへの移行です。そして、その中でも特に製造業やプロジェクト型ビジネスを展開する企業から高い評価を受けているのがIFS…

23 hours ago

【2026年最新】IFS CloudとSAPを徹底比較|製造業に強いのはどっち?選定のポイントを解説

製造業を取り巻く環境は、ここ数年で大きく変化しています。原材料価格の高騰、サプライチェーンの不安定化、人手不足の深刻化、さらにはDXの加速など、企業にはこれまで以上に迅速かつ柔軟な意思決定が求められています。 こうした中で注目されているのが、企業の基幹業務を統合・最適化するERP(基幹業務システム)の再構築です。 その中で、多くの製造業が比較検討しているのが「IFS Cloud」と「SAP」です。いずれもグローバルで高い評価を受けているERPでありながら、その強みや設計思想は大きく異なります。 そのため、「どちらを選ぶべきか分からない」「自社に合うのはどちらなのか判断できない」といった悩みを抱える企業も少なくありません。 この記事では、そんなIFS CloudとSAPを「製造業」という視点から徹底比較し、それぞれの特徴や強み、導入時のポイントを分かりやすく解説します。 製造業の方 IFS CloudとSAPに興味がある方 グローバルERPの導入を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS CloudとSAPの違いがわかるだけでなく、「どのような企業にどちらが適しているのか」がわかりますよ。 (more…)

2 weeks ago

【2026年最新】IFS CloudとDynamics 365の違いとは?機能・強みを比較解説

企業の基幹システムとして導入が進むクラウドERPの中でも、IFS CloudとMicrosoft Dynamics 365は世界的に高い評価を受けている代表的なソリューションです。 しかし、両者は同じERPでありながら設計思想や強みが大きく異なります。 この記事では、2026年時点の最新情報をもとに、IFS CloudとDynamics 365の違いを「機能」「強み」「向いている企業」という観点から徹底的に比較解説します。 IFS CloudやDynamics 365の導入を検討している方 社内のIT人材が不足している方 クラウドERPに興味がある方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS CloudとMicrosoft…

2 weeks ago

【2026年版】製造業向けAI搭載グローバルERP:注目の次世代ソリューション6選

製造業におけるERPは、単なる基幹システムから「意思決定の中枢」へと進化しています。 特に2026年現在、AIの統合はもはやオプションではなく、競争力を左右する重要な要素となっています。 AIを搭載したERPは、従来の「可視化」から一歩進み、「予測」「最適化」「自動化」を実現し、企業の意思決定スピードと精度を飛躍的に向上させています。 この記事では、製造業向けに特化したAI搭載グローバルERPの中から、特に注目すべき6つのソリューションを徹底解説します。 AI搭載グローバルERPに興味がある方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば最新版のAI搭載グローバルERPがわかるのはもちろん、製造業におけるERPの選び方まで丸わかりですよ。 (more…)

2 weeks ago

【2026年最新】製造業向けグローバルERPシステムおすすめ10選

製造業を取り巻く環境は、グローバル競争の激化、サプライチェーンの複雑化、そしてデジタル化の加速により大きく変化しています。 その中でERP(統合基幹業務システム)は、単なる業務管理ツールではなく、経営の意思決定を支える中核システムへと進化しています。 特に2026年においては、「クラウド化」「AI活用」「グローバル対応」「生産現場との連携」が重要な選定ポイントとなっています。 ERPは企業の成長戦略そのものに直結するため、自社の規模・業種・将来展望に適したシステム選びが不可欠です。 この記事では、製造業向けの代表的なグローバルERPを10製品厳選し、それぞれの特徴を解説します。 グローバルERPシステムが気になる方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば主要なグローバルERPシステムが丸わかりですよ。 IFS ERP(IFS Cloud) IFS Cloudは、製造業に加えて設備管理やサービス業務まで一体的に管理できる統合ERPです。 特に「アセット集約型製造業」や「プロジェクト型製造」に強みを持っています。…

3 weeks ago

SQA(ソフトウェア品質保証)とは? 顧客満足度を高める品質維持の役割と重要性

ソフトウェア開発において品質の確保は単なる技術的課題ではなく、企業の信頼性や顧客満足度に直結する重要な要素です。 その中核を担うのがSQA(Software Quality Assurance:ソフトウェア品質保証)です。 SQAとは、開発プロセス全体を通じて品質を計画的に作り込み、維持・向上させるための活動を指します。 この記事ではそんなSQA(ソフトウェア品質保証)について、その概要や役割などを紹介していきます。 SQA(ソフトウェア品質保証)が気になる方 品質管理に興味がある方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばSQA(ソフトウェア品質保証)の特徴がわかるだけでなく、その重要性が丸わかりですよ。 SQA(ソフトウェア品質保証)とは SQA(ソフトウェア品質保証)とは、ソフトウェア開発において品質を計画的かつ継続的に確保するための活動全般を指します。 単に完成した製品の不具合を検出するテスト工程だけでなく、開発プロセス全体に関与し、品質を作り込む仕組みを整えることが重要な役割です。 具体的には、開発標準の策定や遵守状況の確認、レビューや監査の実施、品質指標の設定と分析、リスクの早期発見と対策などが含まれます。 これにより、開発の初期段階から問題の発生を未然に防ぎ、手戻りやコスト増大を抑えることが可能になります。…

3 weeks ago