😥

Laravelでブログっぽい何かを作る : 1

2021/05/15に公開

intro

三十路の未経験からRoRでポートフォリオ作って無事就職できたものの、携わることになったプロジェクトがLaravelとVueというスキルスタックのため、まずはphpやLaraveの勉強がてら認証機能やCRUDの機能があるブログっぽい何かを作っていこうと思います。
ちなみに、phpの構文も結構微妙なので、その勉強も兼ねてます。

プロジェクトを作る

とりあえずドキュメントを読んでそのとおりにやってみる。

laravel new project_name

プロジェクトができました。

ローカルサーバーを立ち上げる

作成したプロジェクトに移動して、

php artisan serve

とすると、うまくいったっぽい。

とりあえずルーティング見てみる

ルーティングの設定は/routes/web.phpにかかれているらしいので中身を確認。

<?php
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Railsに似てるっぽい。welcomeってビューファイルを返しているということはわかった。
頭のuse で Route をインポートしている。

ビューファイルを見てみる

welcome.blade.phpの中身を見てみる。
ちなみにLaravelのビューファイルはbladeというテンプレートエンジンを使っており、拡張子は.phpではなく.blade.phpとなっていた。

とりあえず気になったところを見てみる

<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

最初に目についたのは、{{}}の部分。XSS攻撃を防ぐための書き方らしい。

お次はこれ。@...みたいな書き方が見慣れないが、なんとなく認証して出し分けしてるのかなーと思ったり。

@if (Route::has('login'))
  <div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
    @auth
      <a href="{{ url('/home') }}" class="text-sm text-gray-700 underline">Home</a>
    @else
      <a href="{{ route('login') }}" class="text-sm text-gray-700 underline">Log in</a>
      @if (Route::has('register'))
        <a href="{{ route('register') }}" class="ml-4 text-sm text-gray-700 underline">Register</a>
      @endif
    @endauth
  </div>
@endif

@のやつはディレクティブと呼ばれているもので、blade独自の構文らしい。
@if、@elseif、@else、@endifはphpのif文と同じ意味らしい(見たまんま)

@authは認証ディレクティブで、認証をしているかどうか判別するためのもの(やっぱり見たまんま)

そしてclassを見て、bootstrap使ってることに気づく。

つづく

とりあえずここをいじってトップページを作っていこうと思います。
そして認証機能を作ってみようと思います。

Discussion