【PHP入門】超人気フレームワークLaravelの良さとは?




こんにちは、siroです。

皆さんは今、何か熱心に取り組んでいることってありますか?

私は今、WEB開発に全力投球しています。

そこで今回から、私が今とても熱心に恋しているPHPフレームワークLaravelについて学んだことを記事にしていこうと思います。

第一弾は、「で、具体的にLaravelって何がいいのさ?」という素朴な疑問に答えるために、良さについて解説していきます!

え、ちょっと待って、フレームワークってそもそも何?と思っている方は、こちらも見てみてくださいね。

【PHP入門】フレームワークとは?

2018.04.02

Laravelの良さとは?

フレームワークを使うと、良くも悪くもフレームワーク独自の書き方で開発していく必要があります。

そのため、時間をかけて覚えていく価値があるかどうかはある程度見定める必要があります。

Siro
めちゃくちゃ勉強して使えるようになったけど、使ってみたらもっと他に良いフレームワークあったわー

とかだともったいないので、参考までにLaravelの良さについてまとめてみました!

導入がとっても簡単

なんといってもまずはこれですね。

フレームワークは環境構築までにやたらと時間がかかるものも多いです。

そんな中で、Laravelを動かすまでに必要な作業はコチラです。

サンプルが動くまでに必要な流れ
0. XammpやMampなどでPHPが画面で動く環境を整えておく
1. ComposerというPHPのパッケージ管理システムをインストールする
2. コマンドプロンプトでComposerを使ったLaravelインストールコマンドを打つ

これだけです。

0についてはPHP開発をしている人にはおなじみなので、実際は1と2だけです。

とにかく導入がとっても簡単なわけですね。

bootstrap標準装備

自分の書いたコードだけで1から画面のデザインを作るのは、、、結構大変ですよね。

要素の位置を整えるためのデザイン、ヘッダメニュー、入力フォーム、ボタン、エラーメッセージ、ボックスなどなど、色々悩みが尽きないです。

おまけに最近だと、レスポンシブ対応が必須だったりして1から作っていくと結構大変です。

そんな悩みを解決するためのCSSフレームワークとして、Bootstrapがあります。

例えば、次のようにコードをコピペで使うことでお手軽にデザインを取り入れることができます。


URL:https://getbootstrap.com/docs/4.0/components/dropdowns/

このBootstrapLaravelには最初から入っています。

Laravelをインストールして、上記サンプルコードをコピペすればすぐにデザインされたリストが使えます。

開発する上でデザインは大事ですが、最初っからがっつりデザインを固める必要はないと思っています。

むしろ、Bootstrapでちゃちゃっと作った画面で機能開発を先に進めて、出来上がってからデザインを差し替えた方が開発速度としては速いんじゃないかと。

画面を高速開発するBladeの存在

ヘッダメニューってご存知ですか?

僕のブログにも、次のようなヘッダメニューがあると思います。

このヘッダメニューは、どの記事に行っても必ず表示されていますよね。

このように、どの画面でも必ず表示されるメニュー的な要素を全ての画面でベタ打ちしていると、変更があった場合にすべて直す必要があります。

そんな手間を省くための仕組みとして、Bladeがあります。

共通的に使う親ファイル、各ページごとの子ファイルを用意して、子ファイルで親ファイルを読み込むことで画面を作る仕組みです。

なんのこっちゃとよくわからないと思うので、サンプルご紹介!

親ファイル:master.blade.php

<html>
<head>
</head>
<body>
  <!-- ヘッダメニュー -->
 <nav class="navbar navbar-expand-lg navbar-light" style="background-color: #e3f2fd;">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor03" aria-controls="navbarColor03" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarColor03">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
      </ul>
      <form class="form-inline">
        <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button>
      </form>
    </div>
  </nav>

  <!-- メインコンテンツ -->
  @yield('content')

</body>
</html>

メインコンテンツにある、「@yield(‘content’)」の部分に子ファイルの画面を入れますよ。

という意味の親ファイルです。

子ファイルは次のように書きます。

子ファイル:top.blade.php

@extends('layouts.master')
@section('content')

	<!-- Content Header (Page header) -->
	<div class="row">
		<div class="col-md-10 col-md-offset-1">
			<h2>目標登録</h2>
		</div>
	</div>


	<!-- Content Header (Page header) -->
	<div class="row">
		<div class="col-md-10 col-md-offset-1">
			サンプルです。
		</div>
	</div>


@stop

@extends(‘layouts.master’)」でlayoutsフォルダのmaster.blade.phpファイルを読み込み、親ファイルの「@yield(‘content’)」に「@section(‘content’) ~ @stop」で書いた内容が表示されるわけですね。

他にも画面に表示する/しないを制御するためのIF文や、ループ表示するためのFor文もBladeでかけるので便利ですね。

ちょっと長くなってきたので、今回はここまでにしますー!

次回以降では、Laravelのフォルダ構成、MVCの関係性、データベース管理、データベース操作、バリデーション等について触れたいなと思います。

ではでは。

The following two tabs change content below.

Siro

ネコ好きフリーランスエンジニア。
開発、技術、働き方、ツールなどについて発信しています。
楽しく、開発しようぜ!