Laravel3に入門してみる

公開日:

東京都港区芝浦田町グランパークカンファレンスで開催された『Laravel JP Conference』でライトニングトーク(5分)として発表しました。

Download PDF

スライドテキスト

Page 1

Laravel3に入門してみる

Let's begin with Laravel 3

2019-02-16 Laravel JP Conference

Shibaura, Tokyo, Japan

#laraveljpcon

Page 2

お前誰よ
うさみけんた (@tadsan) / Zonu.EXE

  • GitHub/Packagistでは id: zonuexe
    • ピクシブ株式会社 pixiv運営本部
  • Emacs Lisper, PHPer
  • Emacs PHP Modeのメンテナ引き継ぎました
    • 好きなリスプはEmacs Lispです
    • Qiitaに記事を書いたり変なコメントしてるよ

Page 3

Page 4

Page 5

さて

Page 6

PHP界隈でのLTデビュー戦(2015年11月)

Page 7

経歴上PHPのフレー ムワークを深く使う ことは全然なかった

Page 8

PHP界隈でのLTデビュー戦(2015年11月)

Page 9

フレームワーク
を作るのは

難しいのか?

Page 10

Laravelのように多くの

局面で受け入れられる

フレームワークを

設計するのは難しい

Page 11

自分の問題を解決する
小さなフレームワークを 作るのはそれほどでもない

Page 12

Create your own PHP Framework

Page 13

PHPer人生、一度はフレームワークを作っておこう

Page 14

実運用する上での数々の リスクは一旦置いておいて

(セキュリティとか)

Page 15

理解>作る
(自分で動かすだけなら)

Page 16

それからまあまあ

経験を積んで

2019年

Page 17

そういえばLaravel JP
Conferenceのスタッフに

なったけど人生でLaravelを

10行くらいしか書いてない

Page 18

       |
   \  __  /
   _ (m) _ ピコーン
      |ミ|

そうだLaravelやろう

    /  `´  \
     ('A`)
     ノヽノヽ        くく

Page 19

しかし良い解説書は既にあ るし、ここはLaravel JP Conferenceなんだから

大多数は体験済み

Page 20

       |
   \  __  /
   _ (m) _ ピコーン
      |ミ|

そうだ、Laravel 1.0

    /  `´  \
     ('A`)
     ノヽノヽ        くく

Page 21

元ねた:Rails 1.0のコードを読む

Page 22

そうして我々は
GitHubの奥地へと
旅立った

Page 23

https://github.com/laravel/laravel/releases?
after=v3.0.1

Page 24

_人人人人人人人人_
3.0以前がない
>   <  ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄

Page 25

じゃあ3.2.14で

Page 26

Laravel3に入門してみる

Let's begin with Laravel 3

2019-02-16 Laravel JP Conference

Shibaura, Tokyo, Japan

#laraveljpcon

Page 27

このバージョン
を選んだ理由

Page 28

https://github.com/laravel/laravel/releases/tag/v3.2.14

Page 29

たぶん1.xとか2.x のコードも漁れば あるとは思うけど

Page 30

Laravel 3.2.14の特徴

2013年3月22日リリース 3.x系の最終バージョン
新しい方が些細なバグも解消 されてるだろ、という日和
古いPHPフレームワークの特徴
が色濃く残っている

Page 31

古いフレームワークの特徴?

依存パッケージ(Symfony)の コピーも直接コミットされてる Symfonyのcomposer.jsonは 同梱されてるが、Laravel自体
はComposer未採用
全コードが1リポジトリにある

Page 32

ということで

コードリーディングを

始めました

Page 33

この時点で

14時くらい

(当日スタッフのシフト後)

Page 34

やったこと

Page 35

Phanを

使いましょう

Page 36

理由

PHP7の非互換を早めに潰す
Laravelの特徴的なメタプログ
ラミングを炙りだす
Phanで静的にわからない=

メタプログラミング

妖怪のしわざ

Page 37

yield関数 (5.5以降SyntaxError)

Page 38

SyntaxErrorに

なるような

非互換はこれだけ

Page 39

改行位置 (C#っぽい)

Page 40

PHPDocはかなり書かれてる

Page 41

namespaceの位置が独特

ファイル名が

小文字

Page 42

表層的な

ことはもういい

Page 43

動かそう

Page 44

PHP 7.3で

Page 45

mcryptに依存してる

Page 46

キー長のパディング

Page 47

めんどくさいのでビルトインWebサーバ

php -S localhost:3939 public/index.php

Page 48

動いた!

Page 49

見ためがプレーン

だけど実はHTML5

Page 50

localhostでドキュメントも読める

Page 51

2013年時点で

ホスピタリティ
すごい

Page 52

動いたので

雑に実装していく

Page 53

ルーティング追加は(表面的に)大差ない

Page 54

フォームの受け取りがわからなかった

( )
Symfony\HttpFoundation依存

Page 55

Bladeは
Laravel3で導入

Page 56

いま気付いたけどBlade

ってASP.netのRazorの

オマージュじゃん

Page 57

オチはないけど
まとめ

Page 58

雑にWebアプリっ
ぽいものを作る
ことはできた

Page 59

癖がわかれば

コードは読み

やすかった

Page 60

依存関係がリポジト リ内に全部あるので
追いやすかった

Page 61

コードは90000行くらい

(コメント/空行含む)
当然全部は読んでない

Page 62

doc消し忘れた
Laravelアプリとか この世にありそう

Page 63

内部実装的なエッセン
スがどの程度Laravel4以
降に引き継がれてるか
はわからない

Page 64

表面的には同じだと 言ったが細かいAPI は「かなり」異なる