$30 off During Our Annual Pro Sale. View Details »

電撃:Laravelクイズ / DENGEKI:LaravelQuiz

Y-KANOH
February 16, 2019

電撃:Laravelクイズ / DENGEKI:LaravelQuiz

「Laravel は便利」「Laravel で開発速度が上がる」とは、よく聞くセリフですが、我々はどこまで Laravel を使いこなせているのでしょうか。
Laravel ビギナーがドキュメントを読み漁って掘り当てた、Laravel のニッチな便利機能/便利関数をクイズ形式で紹介します。目指せ!全問正解!!

Y-KANOH

February 16, 2019
Tweet

More Decks by Y-KANOH

Other Decks in Programming

Transcript

  1. View Slide

  2. 自己紹介
    加納 悠史
    いるとこ:株式会社ラクス
    PHP歴:3年
    Laravel歴:半年

    View Slide

  3. Laravelの魅力とは

    View Slide

  4. Laravelの魅力的な機能(一部)
    ルーティングが
    容易
    Artisan
    コマンド
    DIコンテナが
    使いやすい
    ヘルパ関数が
    たくさん
    強力な
    Middleware
    充実した
    メール機能
    簡易な
    クエリビルダ
    便利な
    マイグレーション

    View Slide

  5. 全部使いこなせてる人

    View Slide

  6. • 3択問題
    • 基本機能からニッチな機能まで

    View Slide

  7. 第一問
    ヘルパ関数 文字列操作
    kebab_case("mySampleText");
    => "my-sample-text";
    snake_case("mySampleText");
    => "my_sample_text";
    title_case("mySampleText");
    => "Mysampletext";

    View Slide

  8. Q1. 次のうち出力が以下のようになるもの
    A
    B
    C
    "my?sample?text"
    kebab_case("mySampleText", "?")
    snake_case("mySampleText", "?")
    title_case("mySampleText", "?")

    View Slide

  9. Q1. 次のうち出力が以下のようになるもの
    A
    B
    C
    kebab_case("mySampleText", "?")
    snake_case("mySampleText", "?")
    title_case("mySampleText", "?")
    "my?sample?text"

    View Slide

  10. ちょっと補足
    snake_case()の定義
    helpers.php
    Str.php

    View Slide

  11. もっと補足
    kebab_case()の定義
    helpers.php
    Str.php

    View Slide


  12. ソート
    第二問
    コレクション
    collect([
    ['name' => 'img3.png'],
    ['name' => 'img20.png'],
    ['name' => 'img01.png'],
    ]);

    View Slide

  13. 第二問
    コレクション
    ソート
    [
    2 => [
    "name" => "img01.png",
    ],
    1 => [
    "name" => "img20.png",
    ],
    0 => [
    "name" => "img3.png",
    ],
    ]
    collect([
    ['name' => 'img3.png'],
    ['name' => 'img20.png'],
    ['name' => 'img01.png'],
    ]);

    View Slide

  14. 第二問
    コレクション
    [
    2 => [
    "name" => "img01.png",
    ],
    0 => [
    "name" => "img3.png",
    ],
    1 => [
    "name" => "img20.png",
    ],
    ]

    View Slide

  15. Q2. 大きさ順になるものは?
    A
    B
    C
    $collection = collect([ ['name' => 'img3.png' ],
    ['name' => 'img20.png'],
    ['name' => 'img01.png'], ]);
    $collection->sortBy('name', SORT_NATURAL);
    $collection->sort(SORT_NATURAL);
    $collection->sort('name', SORT_NATURAL);

    View Slide

  16. Q2. 大きさ順になるものは?
    A
    B
    C
    $collection = collect([ ['name' => 'img3.png' ],
    ['name' => 'img20.png'],
    ['name' => 'img01.png'], ]);
    $collection->sortBy('name', SORT_NATURAL);
    $collection->sort(SORT_NATURAL);
    $collection->sort('name', SORT_NATURAL);

    View Slide

  17. ちょっと補足
    sortBy()の定義
    Collection.php

    View Slide

  18. last() → 配列最後の要素を取得
    array_collapse() → 多次元配列を一次元配列に
    array_add() → 配列に要素を追加
    第三問
    配列操作

    View Slide

  19. Q3. $ret の値はどれ?
    A B
    C
    $array = [ "keyA" => "AAA" ];
    $ret = array_add( $array, "keyB1.keyB2", "BBB1.BBB2" );
    [
    "keyA" => "AAA",
    "keyB1.keyB2" => "BBB1.BBB2",
    ]
    [
    "keyA" => "AAA",
    "keyB1" => "BBB1",
    "keyB2" => "BBB2"
    ]
    [
    "keyA" => "AAA",
    "keyB1" => [
    "keyB2" => "BBB1.BBB2",
    ],
    ]

    View Slide

  20. Q3. $ret の値はどれ?
    A B
    C
    $array = [ "keyA" => "AAA" ];
    $ret = array_add( $array, "keyB1.keyB2", "BBB1.BBB2" );
    [
    "keyA" => "AAA",
    "keyB1.keyB2" => "BBB1.BBB2",
    ]
    [
    "keyA" => "AAA",
    "keyB1" => "BBB1",
    "keyB2" => "BBB2"
    ]
    [
    "keyA" => "AAA",
    "keyB1" => [
    "keyB2" => "BBB1.BBB2",
    ],
    ]

    View Slide

  21. ちょっと補足
    array_add()の定義
    helpers.php
    Arr.php

    View Slide

  22. ちょっと補足
    Arr.php
    array_add()の定義

    View Slide

  23. ちょっと補足
    array_add()の定義
    Arr.php

    View Slide

  24. • 3択問題
    • 基本機能 から ニッチな機能 まで

    View Slide

  25. クイズを作ってみて

    View Slide

  26. クイズを作ってみて
    • 関数名がわかりやすくて処理が予想できる

    View Slide

  27. クイズを作ってみて
    • 関数名がわかりやすくて処理が予想できる
    • 大抵のことはドキュメントに載っている

    View Slide

  28. クイズを作ってみて
    • 関数名がわかりやすくて処理が予想できる
    • 大抵のことはドキュメントに載っている
    クイズにならない

    View Slide

  29. クイズを作ってみて

    View Slide

  30. クイズを作ってみて
    • 関数が直観的に理解できる
    • 大抵ドキュメントに書いてある
    • 内部実装も読みやすい

    View Slide

  31. クイズを作ってみて
    • 関数が直観的に理解できる
    • 大抵ドキュメントに書いてある
    • 内部実装も読みやすい

    View Slide