お知らせ 運営会社の年末年始休業につき、2025年12月26日(金)12時以降のconnpass機能のお問い合わせにつきましては2026年1月5日(月)より順次ご案内させていただきます。あらかじめご了承ください。

新機能 技術カンファレンスをより見つけやすく、参加しやすくするための新機能「カンファレンス特集ページ」をリリースしました。「技術」や「テーマ」などのトピック別に探せるほか、直近開催予定のカンファレンスが一覧で確認できますのでご活用ください。詳しい機能説明や掲載方法についてはこちらをご確認ください。

3月

1

Laravelのサービスコンテナをコードリーディングする会

Laravel書いてるけどサービスコンテナの動作原理を実は理解していないですって人を集める会

広告

募集内容

喋りながらコードリーディングする枠

無料

先着順
6/20

聞き専枠

無料

先着順
103/300

申込者
meijin
tyamahori
ucan-lab
choco
myblackcat7112
saya1001kirinn
namizatop
Santo
shinmei110
シュレ
申込者一覧を見る
開催日時
2021/03/01(月) 20:00 ~ 21:30
募集期間

2021/02/20(土) 17:29 〜
2021/03/01(月) 21:30まで

会場

オンライン(Zoom)

オンライン

参加者への情報
(参加者と発表者のみに公開されます)

広告

イベントの説明

概要

Laravelのサービスコンテナをコードリーディングする会です。

「Laravelエンジニアだけどサービスコンテナの動作原理を実はよく理解していないんですって人を集めてサービスコンテナコードリーディング会をやりたい」

とツイートしたら30Likesほどもらったので企画しました。

Zoomなどを使って配信しつつ、お話しながらやろうと思います。

聞き専枠も作っておいたので、お好きな方でエントリーしてください。

タイムスケジュール

20時〜21時 通話しつつもくもくとコードリーディング

21時〜 成果を発表したり、記事にまとめる(Zennのスクラップ機能がおすすめです)

イベント作成者について

Qiita https://qiita.com/mejileben

Laravelタグで1290Contributionしている程度にはLaravelを使ったり発信をしています(2021/02/20時点)。


余談

イベント企画者(@meijin)のサービスコンテナに対するイベント企画時点での理解度

イベントのハードルが上がってしまっているとアレなので、イベント企画者自身の理解度を赤裸々に残しておきます。 正直分からないことだらけです。

サービスコンテナとサービスプロバイダの違いが分からない

コンテナはクラス名とその実体をマッピングして保存している場所で、プロバイダはコンテナへの登録を受け持っているクラスのこと・・・?

bind()されたInterfaceと実装クラスの関係は何に保存されている?

以下のコードがあるとして、

// MySQLHogeRepositoryのインスタンスが取得できる
$this->app->make(HogeRepositoryInterface::class)

HogeRepositoryInterface::classとMySQLHogeRepository::classはAppServiceProvider等のbind()メソッドで紐付けを行っているわけですが、その紐付けは実体としては大きな連想配列とかに保存されている感じ?

Controllerクラスでは当たり前のようにメソッドインジェクションやコンストラクタインジェクションが行えるのはなぜ?

Controllerはapp->make()などしているわけではなくroutes/hoge.phpで呼び出しているだけなのに各種インジェクションが行えるのはどうして?これはindex.php->route系の処理を追っていけば分かるのかな。

ちなみにCommandを拡張したartisan command用のクラスではhandleメソッドでメソッドインジェクションができるが、コンストラクタインジェクションは失敗する。これはどうして?

メソッドインジェクションやコンストラクタインジェクションではどうして順不同で指定のクラスのバインド元が引っ張ってこれるの?

ControllerのアクションメソッドではRequest型にタイプヒントしたらRequest型の値が入る。これはどういう判断ロジック? 同様にコンストラクタインジェクションも。

public function index(Request $request, int $id) {
    // ...
}

func_get_argsしてそれぞれの引数に対してget_classとかしてる?

各種インジェクションはなぜ再帰的に利用できるの?

ControllerからUseCaseをインジェクションしたら、そのUseCaseがコンストラクタインジェクションしているとそのインジェクションも無事に完了する。このように再帰的に?インジェクションが実行できているのはどうして?引数がプリミティブな値になるまで依存解決するための関数を再帰的に回してる?

bind()とinstance()の違いとは

細かいけどたまにinstance()を使わないとテストコードが動作しないとかあった記憶がある。どういう違い?

広告

資料 資料をもっと見る/編集する

資料が投稿されると、最新の3件が表示されます。

広告

フィード

meijin

meijin さんが書き込みました。

2021/03/01 16:28

早めにZoomのURLを公開しました。時間になったら入ってください!

meijin

meijin さんが Laravelのサービスコンテナをコードリーディングする会 を公開しました。

2021/02/20 17:30

Laravelのサービスコンテナをコードリーディングする会 を公開しました!

終了

2021/03/01(月)

20:00
21:30

開催日時が重複しているイベントに申し込んでいる場合、このイベントには申し込むことができません

募集期間
2021/02/20(土) 17:29 〜
2021/03/01(月) 21:30

広告

会場

オンライン(Zoom)

オンライン

オンライン(Zoom)

参加者(109人)

meijin

meijin

Laravelのサービスコンテナをコードリーディングする会 に参加を申し込みました!

tyamahori

tyamahori

Laravelのサービスコンテナをコードリーディングする会 に参加を申し込みました!

namizatop

namizatop

Laravelのサービスコンテナをコードリーディングする会に参加を申し込みました!

choco

choco

お手柔らかにお願いします。

ucan-lab

ucan-lab

Laravelのサービスコンテナをコードリーディングする会に参加を申し込みました!

Santo

Santo

Laravelのサービスコンテナをコードリーディングする会 に参加を申し込みました!

シュレ

シュレ

Laravelのサービスコンテナをコードリーディングする会に参加を申し込みました!

myblackcat7112

myblackcat7112

Laravelのサービスコンテナをコードリーディングする会に参加を申し込みました!

shinmei110

shinmei110

Laravelのサービスコンテナをコードリーディングする会 に参加を申し込みました!

saya1001kirinn

saya1001kirinn

Laravelのサービスコンテナをコードリーディングする会に参加を申し込みました!

参加者一覧(109人)

キャンセルした人(5人)

広告

広告