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

Storageを使うとなにがいいの?

 Storageを使うとなにがいいの?

PHPerのための「Laravel10の新機能」を語り合う PHP TechCafeにおけるLTの登壇資料です。

■イベント情報
https://rakus.connpass.com/event/273053/

■虎の穴ラボ 採用サイト
https://yumenosora.co.jp/tora-lab/

虎の穴ラボ株式会社

February 21, 2023
Tweet

More Decks by 虎の穴ラボ株式会社

Other Decks in Programming

Transcript

  1. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    Storageを使うとなにがいいの?
    1
    虎の穴ラボ
    Kengo Yoshida

    View Slide

  2. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    アジェンダ
    2
    1. 自己紹介
    2. TL;DR
    3. なぜこのテーマにしたのか
    4. コーディングの観点からの良し悪し
    5. まとめ

    View Slide

  3. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    1. 自己紹介
    3
    Kengo Yoshida
    ● 虎の穴ラボ / 通販チーム
    ● 入社理由
    ○ スキルを高め合える勉強熱心な仲間が欲しい
    ○ 周りが つよつよエンジニア ばかりな状況で揉まれた

    ○ 自分の大好きなオタクという文化になにかしらの形で
    関わって、発展に貢献したい
    twitter: @samurai_se

    View Slide

  4. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    補足 虎の穴ラボとは
    4
    クリエイター支援プラットフォーム
    世界最大規模の同人EC

    View Slide

  5. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    5
    5
    補足2 …というより宣伝
    カジュアル面談
    Connpass : blessing software
    採用ページ

    View Slide

  6. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    2. TL;DR
    6
    Storageを使うことでコードが受ける良
    い影響について

    View Slide

  7. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    3. このテーマを話すきっかけ
    7
    Before After
    ファイルの実体があるかないか →ないならAfterの画像のパスを返す

    View Slide

  8. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    3. このテーマを話すきっかけ
    8
    パスをソースの中に
    ハードコードしてるのは
    どうなんだ…?
    似たような関数ができたら
    同じようにハードコードが増
    える

    View Slide

  9. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    3. このテーマを話すきっかけ
    9
    ● パスを一箇所に集めて管理したい
    ● パスやファイルの保存先がローカルでは
    なくクラウドになったら?
    ● 存在チェックだけでなく、「登録・削除が増
    えたら」というのを考えるとクラスにしてお
    きたいよね
    将来的にこういうところで困っちゃう

    View Slide

  10. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    4. コーディングの観点からの良し悪し
    10
    それ、
    Storageクラス使えばいいよ!!

    View Slide

  11. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    4. コーディングの観点からの良し悪し
    11
    ● config / filesystems.phpでパスを一元管理
    ○ file_existsだと関数化してもいつかハードコードした引数がパスに入ってくる
    ○ するとソースのあらゆるところにパスが散らかり始める
    ○ 一方でStorageを使っていればfilesystemsに書かないとStorageクラスは動かないので、パスを
    一元管理できる
    ● Storage.phpにクラスを定義し、ファイル操作の処理を一元管理
    ○ クラスの関数の中から config / filesystems.phpに定義したパスを呼ぶので、ソースにパスが散
    らかりにくい
    ○ ファイル操作の処理がクラスの中に集まるので、同じような関数が乱立しない
    詳しくはこちらを参考に

    View Slide

  12. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    4. コーディングの観点からの良し悪し
    12
    file_exists
    同じようなことをする関数が乱立す

    同じパスが散らかる

    View Slide

  13. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    4. コーディングの観点からの良し悪し
    13
    Storage

    View Slide

  14. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    まとめ
    14

    View Slide

  15. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    まとめ
    ● Laravelのほうで「こういうところで困るよね」を見越して用意し
    てくれていることがある
    ● コードを書く前にまずはLaravelが機能提供していないか?を
    ググってみるのがよさそう
    ● あえて素のPHP関数を使ってみると、Laravelのライブラリを
    使った場合に受ける恩恵を理解することができる

    View Slide

  16. Copyright (C) 2023 Toranoana Inc. All Rights Reserved.
    EOF
    16

    View Slide