Page 1
Laravel3に入門してみる
Let's begin with Laravel 3
2019-02-16 Laravel JP Conference
Shibaura, Tokyo, Japan
#laraveljpcon
公開日:
by USAMI Kenta @tadsan
に東京都港区芝浦の田町グランパークカンファレンスで開催された『Laravel JP Conference』でライトニングトーク(5分)として発表しました。
Laravel3に入門してみる
Let's begin with Laravel 3
2019-02-16 Laravel JP Conference
Shibaura, Tokyo, Japan
#laraveljpcon
お前誰よ
うさみけんた (@tadsan) / Zonu.EXE
さて
PHP界隈でのLTデビュー戦(2015年11月)
経歴上PHPのフレー ムワークを深く使う ことは全然なかった
PHP界隈でのLTデビュー戦(2015年11月)
フレームワーク
を作るのは
難しいのか?
Laravelのように多くの
局面で受け入れられる
フレームワークを
設計するのは難しい
自分の問題を解決する
小さなフレームワークを 作るのはそれほどでもない
Create your own PHP Framework
PHPer人生、一度はフレームワークを作っておこう
実運用する上での数々の リスクは一旦置いておいて
(セキュリティとか)
理解>作る
(自分で動かすだけなら)
それからまあまあ
経験を積んで
2019年
そういえばLaravel JP
Conferenceのスタッフに
なったけど人生でLaravelを
10行くらいしか書いてない
|
\ __ /
_ (m) _ ピコーン
|ミ|
そうだLaravelやろう
/ `´ \
('A`)
ノヽノヽ くく
しかし良い解説書は既にあ るし、ここはLaravel JP Conferenceなんだから
大多数は体験済み
|
\ __ /
_ (m) _ ピコーン
|ミ|
そうだ、Laravel 1.0
/ `´ \
('A`)
ノヽノヽ くく
元ねた:Rails 1.0のコードを読む
そうして我々は
GitHubの奥地へと
旅立った
https://github.com/laravel/laravel/releases?
after=v3.0.1
_人人人人人人人人_
3.0以前がない
> <  ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄
じゃあ3.2.14で
Laravel3に入門してみる
Let's begin with Laravel 3
2019-02-16 Laravel JP Conference
Shibaura, Tokyo, Japan
#laraveljpcon
このバージョン
を選んだ理由
https://github.com/laravel/laravel/releases/tag/v3.2.14
たぶん1.xとか2.x のコードも漁れば あるとは思うけど
Laravel 3.2.14の特徴
2013年3月22日リリース 3.x系の最終バージョン
新しい方が些細なバグも解消 されてるだろ、という日和
古いPHPフレームワークの特徴
が色濃く残っている
古いフレームワークの特徴?
依存パッケージ(Symfony)の コピーも直接コミットされてる Symfonyのcomposer.jsonは 同梱されてるが、Laravel自体
はComposer未採用
全コードが1リポジトリにある
ということで
コードリーディングを
始めました
この時点で
14時くらい
(当日スタッフのシフト後)
やったこと
Phanを
使いましょう
理由
PHP7の非互換を早めに潰す
Laravelの特徴的なメタプログ
ラミングを炙りだす
Phanで静的にわからない=
メタプログラミング
妖怪のしわざ
yield関数 (5.5以降SyntaxError)
SyntaxErrorに
なるような
非互換はこれだけ
改行位置 (C#っぽい)
PHPDocはかなり書かれてる
namespaceの位置が独特
ファイル名が
小文字
表層的な
ことはもういい
動かそう
PHP 7.3で
mcryptに依存してる
キー長のパディング
めんどくさいのでビルトインWebサーバ
php -S localhost:3939 public/index.php
動いた!
見ためがプレーン
だけど実はHTML5
localhostでドキュメントも読める
2013年時点で
ホスピタリティ
すごい
動いたので
雑に実装していく
ルーティング追加は(表面的に)大差ない
フォームの受け取りがわからなかった
( )
Symfony\HttpFoundation依存
Bladeは
Laravel3で導入
いま気付いたけどBlade
ってASP.netのRazorの
オマージュじゃん
オチはないけど
まとめ
雑にWebアプリっ
ぽいものを作る
ことはできた
癖がわかれば
コードは読み
やすかった
依存関係がリポジト リ内に全部あるので
追いやすかった
コードは90000行くらい
(コメント/空行含む)
当然全部は読んでない
doc消し忘れた
Laravelアプリとか この世にありそう
内部実装的なエッセン
スがどの程度Laravel4以
降に引き継がれてるか
はわからない
表面的には同じだと 言ったが細かいAPI は「かなり」異なる