laravel と Railsの比較-1 忘備録
どちらもMVCで構成される
routing
laravelは、routeフォルダがある。
基本web.phpでroutingをしていると考えて良い
確認コマンドは、
php artisan route:list
書き方の基本
Route::get(アドレス, 関数);
第一引数にアドレス、第二引数には関数
Route::get('/home', 'HomeController@index')->name('home');
これだと、ルート直下のhomeディレクトリと、HomeControllerのindex アクションが呼ばれている indexアクションは以下
public function index() { return view('home'); }
ここでviewの homeを返却している
ここで resources>view>home.blade.phpが呼ばれる。
このbladeというのは、テンプレートエンジン。 部分テンプレートを出力してくれる。
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Dashboard</div> <div class="panel-body"> @if (session('status')) <div class="alert alert-success"> {{ session('status') }} </div> @endif You are logged in! </div> </div> </div> </div> </div> @endsection
@section
@section()~ @endsection は継承することができる。部分テンプレートのイメージ。
@if(条件)は、コントローラーから渡した変数が利用できる
PHPのように<?php と書かなくても@ だけ書けば良い。
{{ session('status') }}
はecho session('status') と同じ意味
@extendsは継承元を記載する。また書きます。
railsのrouting
railsは config>routes にある。
コマンドはurlより
ホームのurl/rails/info/routes
で確認するほうがわかりやすい。
Controller
laravelはapp>Http>Controller
にある。
railsはapp>controller
コンストラクタの書き方
phpは
__construct()と記載する
アンダーバー2つ コンストラクタはnewするだけで自動的に実行される。
rubyは
initialize()
SASSの設定
アプリケーション直下の composer.js に記載する
"require-dev": { "filp/whoops": "~2.0", "symfony/thanks": "^1.0", "panique/laravel-sass": "dev-master" },
public>index.php に以下を記載
SassCompiler::run("scss/", "css/");