LoginSignup
1
2

More than 3 years have passed since last update.

Laravel8.0入門してみた感想

Last updated at Posted at 2020-09-28

ララベル.かわいいなまえだね.
でも「Web職人のためのフレームワーク」みたいなキャッチコピーでかっこいいね.

ちゅき(._.)

というわけで入門した感想を述べます.

感想1. 環境の構築 → めちゃ簡単

僕はこれまでRuby on RailsとReactに触れたことがあります.
使ってるOSはWindows10.
するとどうなるか.

環境構築で死す

コマンドプロンプトにerrorの嵐

僕はもう疲れました.
こんなことならフレームワークなんか使わない方が早いや.
どうせザコだし僕.

そう思ってたある日,なんとなくPHPを使い始めて,それとなくLaravelにたどり着きました.
「どうせまた環境構築で死すんだろうな...」
半ばあきらめながらネットに落ちている記事を見ながらXAMPPやらLaravelやらを入れました.

...は?

一度もエラーせず構築できた.

こんなことがあるんですね.
もうこの時点で僕のハートはLaravel様の者でした.

「Windows想いなLaravel,好きです.」
僕はそう呟いて,そっと眠りについた.(え?)

感想2. ネット記事より書籍を読め

「プログラミングの勉強に金はかけない」
そんな当たり前の常識の元,Laravel入門初日の僕はネット記事で学習をしていました.

なんかよくわからん

そもそもルートとかわからん.
データベースとか触ったことない.

うん,わからん.

公式ドキュメントもよくわからん.

この時点で僕は,少しだけLaravelに嫌気がさしていました.
だっていい記事全然ないんだもん.

すると,
メール「Kindle Unlimitedの定期購読,更新したで!」
僕「あ,Laravelの書籍あるんでね??」

ありました.
世間で「青本」と呼ばれているよさげなLaravelの本は,Kindle Unlimitedでは読めなかったけど,別のがありました.
でも全然わかる.なんか道筋めちゃ見える.テンション爆上げ.

Laravelめちゃええやん

環境構築で死してばかりの僕がフレームワークを扱っている.
その喜びを握られてまた,僕はLaravelに恋をしたのである.

感想3.何をすればいいかが分かりやすい

そろそろLaravelのシステムについて言及したい.

フレームワークでよく思うことは,
「どのファイルに何書けばいいかわからん.」
ということです.
まあこればっかりはいかにちゃんと学ぶかみたいなところはあるかもしれませんが.

ただ,Laravelはめちゃわかりやすかった.
ざっくり言えば,

  1. コントローラー(○○Controller.php)で諸々の機能を作る.
  2. Webページのテンプレート(○○.blade.php)を作って機能を埋め込む.
  3. ルート(web.php)で,さっき作ったテンプレートを表示できるようにする.

というステップをひたすら踏んでいくだけです.
多分.

まあまだ入門二日目なので,まだ難関は色々あるんだろうけど.

感想4. Bladeが直感的で便利

前項でWebページのテンプレートを作ると言いましたが,これはBlade(ブレード)と呼ばれるのだそうです.
Bladeを使うと何がいいかというと,普通のHTMLの構文を使いつつ,制御構文(ifやfor文)も使えるということ.

例えば,$userという変数の値が'boyfriend'だったときに<p>私だけを見て</p>を表示するテンプレートlovemessage.blade.phpを作るとすれば,

lovemessage.blade.php
//...
<body>
    @if($user == 'boyfriend')
        <p>私だけを見て</p>
    @endif
</body>
//...

と書けば,彼氏だけに愛のメッセージを伝えることができます.

直感的!!便利!!

ちなみに,@~で続く構文のことをディレクティブと呼び,@whileやら@switchやら@untillやら,一通りそろってます.

感想5. コントローラー ≒ Unityのスクリプト

前々項で
「コントローラー(○○Controller.php)で諸々の機能を作る」
と言いました.

でも入門者からしたら
「コントローラーって何?機能?は?」
って感じですよね.

個人的な意見ですが,
コントローラー≒Unityのスクリプト
です.(Unityしたことない方ごめんなさい)

Unityでプレイヤーのカメラを制御するスクリプトPlayerCamera.csとか作りますよね?
そんな感じです.

Unity
1つの役割(カメラの制御,プレイヤーの制御,敵の生成など)に対して1つのスクリプト
Laravel
1つの役割(トップページ,ログインページ,ブログページなど)に対して1つのコントローラー(多分)

というイメージです.

Unity
スクリプトにグローバル変数(`public int enemySpeed;`とか)をつくる → 敵キャラのスピードいじる
Laravel
コントローラーのpublicな関数がテンプレートに変数を渡す → ページに表示される数字いじる

という...イメージです...。(あれ,なんか微妙?)
とりあえず例を見てください.(お願いします)

次の例は,game/enemy.blade.php(gameディレクトリにあるenemyという名前のテンプレート)に,10から100までの乱数を持った変数$speedを渡す関数randomSpeed()を持つコントローラーEnemyspeedControllerです.

EnemyspeedController.php
<?php
//略
class EnemyspeedController extends Controller{

    public function randomSpeed(){
        return view('game.enemy',[
                'speed' => random_int(10,100)
        ]);
    }

    //略
}

...。

なんかUnityっぽくないですか?(ゴリ押し)

感想6. テンプレート → Bladeじゃなくてもいい

なんだ.Bladeじゃなくてもいいのね.

テンプレートをテンプレートたらしめる定義は,そのphpファイルが`resources/views'ディレクトリにあることなんでしょうね.多分.

感想7. 文字列の結合,そうやってするんだ.

これはPHPに関する感想かもしれませんが...。

世に存在する多くのプログラミング言語で文字列を結合するときは,「+」で加算すると思うのですが,PHPでは「.」で結合するようです.

下が例です.

javascript
str = 'Hello,';
console.log(str+' World!');
//'Hello, World!'が出力される

str += ' World!';
console.log(str);
//'Hello, World!'が出力される
php
$str = 'Hello,';
echo($str.' World!');
//'Hello, World!'が出力される

$str .= ' World!';
echo($str);
//'Hello, World!'が出力される

終わり

とりあえずここまでです.
また感想があれば追加します.
さらば!!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2