基本知識のノート
Laravelで作成したプロジェクトにはいくつかのフォルダがあるが主要なものは3つ。
-
app
:プリケーションのプログラム部分。 -
resouce
:テンプレートファイルなど。 -
routes
:ルート情報
app
メインに使うのはHttp
。
これがwebアプリケーションにアクセスした時の処理をまとめておく所。
基本的なプログラムはここで作成。
resouse
ここには例えばView
フォルダなどがあり、
welcome.blade.php
(後述)が保存されている。
routes
一般的なwebページはweb.php
にルーティングされている。
ここにルート情報を書き込むことで、
welcome.blade.php
などのファイルを呼び出すことができる。
ルーティングという概念
routes内ファイルを編集することでルーティングをする。
ここではroutes/web.php
を編集していく。
基本的には以下の形式で記述。
Route::get( 'URLを書く', function(){
return 処理を書く。
});
- 第1引数はアドレス
-
hello/{msg}
という形でパラメータmsg
を設定できる。 - その場合、第二引数は
function($msg){return ;}
のような形に。
-
- 第2引数は関数(ここではクロージャ)
-
function() use($html){};
として、関数の外に記述しているヒアドキュメント$html
を用いることもできる。
-
サンプルコード
ヒアドキュメントをRoute::get();
の外側にする場合
$html = <<< EOF
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
<style>
body{font-size:16pt;}
h1{color:#eee;}
</style>
</head>
<body>
<h1>Hello</h1>
<p>This is sample code.</p>
</body>
</html>
EOF;
Route::get('hello', function() use($html){
return $html;
});
ヒアドキュメントをRoute::get();
の内側にする場合
(ルートで渡すパラメータをヒアドキュメントに引用する場合)
Route::get('hello/{msg?}', function($msg){
$html = <<< EOF
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
<style>
body{font-size:16pt;}
h1{color:#eee;}
</style>
</head>
<body>
<h1>Hello</h1>
<p>This is sample code.</p>
</body>
</html>
EOF;
return $html;
});
※ここでは任意パラメータ{msg?}
にしている。
【補足】ヒアドキュメントの書き方
PHPで記述されたコードにHTMLを埋め込むのがヒアドキュメント。
ヒアドキュメントをPHPに入れる場合は$html
で入れられる。
<?php
$html = <<<EOF
ここにhtmlコードを記述。
PHP部分で使われている変数をもって来たい場合は{$msg}という形で記述。
EOF;
?>
参考書籍
PHPフレームワークLaravel入門
Chapter2-1 Pp.24