Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelのヘルパー

 Laravelのヘルパー

Laravel 5.1 のヘルパーについて

Yuya Takahashi

June 16, 2016
Tweet

More Decks by Yuya Takahashi

Other Decks in Technology

Transcript

  1. Laravelͷϔϧύʔ
    Laravelษڧձ InnoCAFE#21
    2016/06/17

    View Slide

  2. ࣗݾ঺հ
    • ͖ͨΌ͸͠Ͱ͢ɻ
    • ΞγΞϧͰPMͱ͔PGͱ͔ɻ
    • ͱ͕େ޷͖ɻ࠷ۙ͸ʹϋϚͬͯ·͢ɻ

    View Slide

  3. Laravelͷϔϧύʔͱ͍͑͹
    ։ൃͰָΛ͢ΔͨΊͷ
    άϩʔόϧͳؔ਺Ͱ͋Δɻ
    ଞͷFWͩͱҧ͏͔΋Ͱ͢ɻ

    View Slide

  4. ϔϧύʔ࢖ͬͯ·͔͢ʁ

    View Slide

  5. ࢲ͸Ϣχοτςετ΍σ
    όοάΛத৺ʹ࢖ͬͯ·͢ɻ

    View Slide

  6. ϔϧύʔͷ֓ཁ
    • Laravelʹ͸ Foundation ͱ Support ͷ2छྨ
    ͕͋Δɻ
    • ͲͪΒ΋ helpers.php ͱ͍͏ϑΝΠϧ໊Ͱ͋
    Δɻ

    View Slide

  7. Support ͷ helpers.php
    use Illuminate\Support\Arr;
    use Illuminate\Support\Str;
    use Illuminate\Support\Collection;
    use Illuminate\Support\Debug\Dumper;
    use Illuminate\Contracts\Support\Htmlable;
    if (! function_exists('append_config')) {
    /**
    * Assign high numeric IDs to a config item to force appending.
    *
    * @param array $array
    * @return array
    */
    function append_config(array $array)
    {
    ...

    View Slide

  8. composer.json
    "autoload": {
    "classmap": [
    "src/Illuminate/Queue/IlluminateQueueClosure.php"
    ],
    "files": [
    "src/Illuminate/Foundation/helpers.php",
    "src/Illuminate/Support/helpers.php"
    ],
    "psr-4": {
    "Illuminate\\": "src/Illuminate/"
    }
    },
    ...

    View Slide

  9. ඪ४ؔ਺ͷΑ͏ʹΠϯϙʔτ
    ͠ͳͯ͘΋࢖༻Ͱ͖·͢

    View Slide

  10. ϔϧύʔࣗ༝͗͢ʂʂʂ
    ͋ͱϑΝαʔυ΋

    View Slide

  11. ϔϧύʔؔ਺͸FW಺෦Ͱ΋ό
    ϦόϦ࢖ΘΕ͍ͯ·͢ɻ

    View Slide

  12. ϔϧύʔͷ࢖༻ྫ
    • app()
    • BladeCompiler.php
    • class_basename()
    • Model.php
    • data_get()
    • Application.php
    • Colleciton.php

    View Slide

  13. ͭ·Γϔϧύʔ͸։ൃऀࢧԉ
    Λ໨తʹ࣮૷͞ΕͨػೳͰ͸
    ͳ͘ฆΕ΋ແ͘΋FWͷҰ෦

    View Slide

  14. ϔϧύʔ঺հ͍͖·͢

    View Slide

  15. Foundation ͷϔϧύʔ
    • app($make = null, $parameters = [])
    • ίϯςφ͔ΒΠϯελϯεΛऔΓग़͠·͢ɻͳʹ΋ࢦఆ͠ͳ͍
    ͱ Application Λฦ͠·͢ɻ
    • logger($message = null, array $context = [])
    • σόοά༻ͷϩάΛॻ͖ࠐΈ·͢ɻ
    • session($key = null, $default = null)
    • $keyʹ഑ྻΛ౉͢ͱอଘɺจࣈྻͳΒऔಘ͠·͢ɻ

    View Slide

  16. Support ͷϔϧύʔ 1
    • array_except($array, $keys)
    • $keysʹϚονͨ͠$arrayΛআڈͯ͠ฦ͠·͢ɻ
    • array_only($array, $keys)
    • $keysʹϚονͨ͠$array͚ͩΛฦ͠·͢ɻ
    • collect($value = null)
    • Illuminate\Support\Colleciton Λฦ͠·͢ɻ
    • $valueʹ഑ྻΛ౉ͤ͹itemsͷॳظ஋ͱͯ͠ηοτͯ͘͠Ε·͢ɻ

    View Slide

  17. Support ͷϔϧύʔ 2
    • dd()
    • σόοά༻ʹϑΥʔϚοτͯ͠ग़ྗ͠·͢ɻʢSAPIʹΑͬͯ੾ΓସΘΔʣ
    • ࣮ߦ͞ΕΔͱॲཧ͸தஅ͞Ε·͢ɻ
    • str_contains($haystack, $needles)
    • $needles͕$haystackʹؚ·Ε͍ͯΕ͹trueɺٯͳΒfalseΛฦ͠·͢ɻ
    • str_random($length = 16)
    • ϥϯμϜͳӳ਺ࣈจࣈྻΛऔಘ͠·͢ɻ
    • ಺෦Ͱ͸PHP7͔Β௥Ճ͞Εͨ random_bytes() ͕࢖༻͞Ε͍ͯ·͢ɻ

    View Slide

  18. Laravelϔϧύʔ·ͱΊ
    • ϔϧύʔ͸։ൃΛָʹ͢ΔͨΊͷάϩʔόϧͳؔ਺ɻ
    • FoundationͱSupportͷ2छྨ͕͋Δɻ
    • ͲͪΒ΋FW಺෦Ͱ࢖ΘΕ͍ͯΔɻ
    • σόοά΍ςετʹ࢖͏෼ʹ͸ຊ౰ʹָͰ͍͍ɻ
    • ϔϧύʔ΍ϑΝαʔυΛ࢖ָͬͯΛ͢Δ΂͖͔Ͳ͏͔
    ͸Α͘ߟ͑Δ΂͖ɻ

    View Slide

  19. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide

  20. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide

  21. ϔϧύʔΛࣗ࡞͍ͨ͠ͱ͖͸
    • app/Support/helpers.php ͱ͔࡞ͬͯ ϓϩ
    δΣΫτͷ composer.json Ͱ autoload.files
    ʹ௥Ճ͢Ε͹͍͍ͱࢥ͍·͢ɻ
    • ಛఆͷυϝΠϯʹؔ܎Λ࣋ͭΑ͏ͳ
    ॲཧ͸ઈରʹॻ͔ͳ͍Α͏ʹ͠·͠ΐ
    ͏ɻ

    View Slide

  22. ຊ౰ʹ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide