Slide 1

Slide 1 text

PHPerKaigi 2024

Slide 2

Slide 2 text

自己紹介 ● うーたん ● 新卒サーバーサイドエンジニア ○ 株式会社ゆめみ ● 趣味 ○ アニメを見ること ● X ○ @uutan1108 2 月刊I/O 3月号、4月号に 「プログラミング& 実行できるWEBアプリを手作り」 掲載されたので読んでね

Slide 3

Slide 3 text

PHPerKaigi 2024

Slide 4

Slide 4 text

PHPerKaigi 2024

Slide 5

Slide 5 text

PHPerKaigi 2024

Slide 6

Slide 6 text

PHPerKaigi 2024 2つは 全く違う話

Slide 7

Slide 7 text

require と use の違いに気づいたきっかけ 7

Slide 8

Slide 8 text

ノンフレームワークのPHPでブログを作り、リプレースした 新 旧 8

Slide 9

Slide 9 text

Laravel を学ぶ前に書いていた require 旧 9

Slide 10

Slide 10 text

Laravel を学ぶ前に書いていた require 旧 10

Slide 11

Slide 11 text

Laravel を学ぶ前に書いていた require と 旧 11

Slide 12

Slide 12 text

Laravel を学ぶ前に書いていた require と Laravel 使い始めてから躓いた use 宣言 新 12

Slide 13

Slide 13 text

Laravel を学ぶ前に書いていた require と Laravel 使い始めてから躓いた use 宣言 新 旧 13

Slide 14

Slide 14 text

Laravel を学ぶ前に書いていた require と Laravel 使い始めてから躓いた use 宣言 新 旧 14 悪戦苦闘

Slide 15

Slide 15 text

Laravel を学ぶ前 15

Slide 16

Slide 16 text

一応、別ファイルに切り出しておく Laravelを知らない👶 16

Slide 17

Slide 17 text

一応、別ファイルに切り出しておく Laravelを知らない👶 👶「外部ファイルに関数、変数を切り出して...」 17

Slide 18

Slide 18 text

一応、別ファイルに切り出しておく Laravelを知らない👶 👶「外部ファイルに関数、変数を切り出して...」 👶「関数、変数を使う時は、require 関数で呼べば   良さそう」 18

Slide 19

Slide 19 text

一応、別ファイルに切り出しておく Laravelを知らない👶 👶「外部ファイルに関数、変数を切り出して...」 👶「関数、変数を使う時は、require 関数で呼べば   良さそう」 👶「やべ、名前被った。変更しよ。」 19

Slide 20

Slide 20 text

一応、別ファイルに切り出しておく Laravelを知らない👶 👶「外部ファイルに関数、変数を切り出して...」 👶「関数、変数を使う時は、require で呼べば   良さそう」 👶「やべ、名前被った。変更しよ。」 👶「違うところでエラーだ...」 20

Slide 21

Slide 21 text

Laravel をなんとなく学んでいる時 21

Slide 22

Slide 22 text

namespace, use 綺麗だな~ Laravel勉強中👦 22

Slide 23

Slide 23 text

namespace, use 綺麗だな~ Laravel勉強中👦 👦「namespace はディレクトリの階層みたいに書いてお  け ば良さげ」 23

Slide 24

Slide 24 text

namespace, use 綺麗だな~ Laravel勉強中👦 👦「namespace はディレクトリの階層みたいに書いてお  け ば良さげ」 👦「use は呼び出したいファイルのパスを書けば良さげ」 24

Slide 25

Slide 25 text

namespace, use 綺麗だな~ Laravel勉強中👦 👦「namespace はディレクトリの階層みたいに書いてお  け ば良さげ」 👦「use は呼び出したいファイルのパスを書けば良さげ」 👦「require と同じ雰囲気で    use を書けばいいのか~」 25

Slide 26

Slide 26 text

namespace, use 綺麗だな~ Laravel勉強中👦 👦「namespace はディレクトリの階層みたいに書いてお  け ば良さげ」 👦「use は呼び出したいファイルのパスを書けば良さげ」 👦「require と同じ雰囲気で    use を書けばいいのか~」 👦「先頭大文字」 26

Slide 27

Slide 27 text

Laravel を学んでブログサイトを改修中 27

Slide 28

Slide 28 text

ブログサイトを改修中 ブログサイトを改修中🧑 🧑「use って書いても読み込まれない...」 28

Slide 29

Slide 29 text

ブログサイトを改修中 ブログサイトを改修中🧑 🧑「use って書いても読み込まれない...」 🧑「ググる」 29

Slide 30

Slide 30 text

ブログサイトを改修中 ブログサイトを改修中🧑 🧑「use って書いても読み込まれない...」 🧑「ググる」 🧑「名前空間?namespace?」 30

Slide 31

Slide 31 text

ブログサイトを改修中 ブログサイトを改修中🧑 🧑「use って書いても読み込まれない...」 🧑「ググる」 🧑「名前空間?namespace?」 🧑「use はインポート?   ファイル読み込みとは違う?!」 31

Slide 32

Slide 32 text

ブログサイトを改修中 ブログサイトを改修中🧑 🧑「use って書いても読み込まれない...」 🧑「ググる」 🧑「名前空間?namespace?」 🧑「use はインポート?   ファイル読み込みとは違う?!」 🧑「ディレクトリ関係ない?!」 32

Slide 33

Slide 33 text

namespace, use にディレクトリ名 は関係ない! use の前に require は必要! 33

Slide 34

Slide 34 text

namespace, use にディレクトリ名 は関係ない! 34 main.php zoo.php

Slide 35

Slide 35 text

namespace, use にディレクトリ名 は関係ない! 35 main.php zoo.php 適当な名前でも 無問題

Slide 36

Slide 36 text

namespace, use にディレクトリ名 は関係ない! 36 main.php zoo.php 名前空間 animal の dog クラスを インポートする

Slide 37

Slide 37 text

namespace はなんでもいい! 37 main.php zoo.php

Slide 38

Slide 38 text

namespace, use にディレクトリ名 は関係ない! use の前に require は必要! 38

Slide 39

Slide 39 text

use の前に require は必要! 39 cat.php main.php

Slide 40

Slide 40 text

use の前に require は必要! 40 main.php zoo.php zoo.php を 読み込んでいる

Slide 41

Slide 41 text

use の前に require は必要! 41 cat.php main.php zoo.php require は 呼ばれている

Slide 42

Slide 42 text

use の前に require は必要! 42 main.php zoo.php require がないと use できない

Slide 43

Slide 43 text

use の前に require は必要! 43 main.php zoo.php

Slide 44

Slide 44 text

終わりに 44

Slide 45

Slide 45 text

ブログサイトを生の PHP で作った 旧 新 結局 require は どうなったのか 45

Slide 46

Slide 46 text

require 後に実行されるファイル 46

Slide 47

Slide 47 text

require 後に実行されるファイル 同一の名前空間でク ラス名が衝突 しなければ無問題 47

Slide 48

Slide 48 text

require 後に実行されるファイル 同一の名前空間でク ラス名が衝突 しなければ無問題 必要なクラスを適 宜インポート 48

Slide 49

Slide 49 text

require 後に実行されるファイル 同一の名前空間でク ラス名が衝突 しなければ無問題 必要なクラスを適 宜インポート ディレクトリ名にす ると 管理しやすい 49

Slide 50

Slide 50 text

require 後に実行されるファイル 同一の名前空間でク ラス名が衝突 しなければ無問題 必要なクラスを適 宜インポート ディレクトリ名にす ると 管理しやすい かっこいい 50

Slide 51

Slide 51 text

index.php は require がたくさん 51 オートロード使 えば消せるけ ど...

Slide 52

Slide 52 text

index.php は require がたくさん 最初に呼ばれるファ イルで 書きまくる 52

Slide 53

Slide 53 text

index.php は require がたくさん 最初に呼ばれるファ イルで 書きまくる 必要なクラスを適 宜インポート 53

Slide 54

Slide 54 text

index.php は require がたくさん 最初に呼ばれるファ イルで 書きまくる 必要なクラスを適 宜インポート require のパスと use を揃えた 54

Slide 55

Slide 55 text

index.php は require がたくさん 最初に呼ばれるファ イルで 書きまくる 必要なクラスを適 宜インポート require のパスと use を揃えた require を index.php に 集められた 55

Slide 56

Slide 56 text

まとめ 56

Slide 57

Slide 57 text

まとめ - use はインポート 57

Slide 58

Slide 58 text

まとめ - use はインポート - require はファイル読み込み 58

Slide 59

Slide 59 text

まとめ - use はインポート - require はファイル読み込み - use する前に require は必要 59

Slide 60

Slide 60 text

まとめ - use はインポート - require はファイル読み込み - use する前に require は必要 - オートロード使えば require とさよならできる 60

Slide 61

Slide 61 text

ご清聴ありがとうございました🙇 61