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. アジェンダ 2

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

    3 Kengo Yoshida • 虎の穴ラボ / 通販チーム • 入社理由 ◦ スキルを高め合える勉強熱心な仲間が欲しい ◦ 周りが つよつよエンジニア ばかりな状況で揉まれた い ◦ 自分の大好きなオタクという文化になにかしらの形で 関わって、発展に貢献したい twitter: @samurai_se
  3. Copyright (C) 2023 Toranoana Inc. All Rights Reserved. 補足 虎の穴ラボとは

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

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

    6 Storageを使うことでコードが受ける良 い影響について
  6. Copyright (C) 2023 Toranoana Inc. All Rights Reserved. 3. このテーマを話すきっかけ

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

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

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

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

    12 file_exists 同じようなことをする関数が乱立す ↓ 同じパスが散らかる
  11. Copyright (C) 2023 Toranoana Inc. All Rights Reserved. まとめ •

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