Laravelでブログっぽい何かを作る : 1
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