BEAR.Sundayのチュートリアルをやった様子

BEAR.Sundayがやりたかったので触りました
1
吉田あひる @strtyuu

チュートリアルおわた、チュートリアル2はまた今度

2019-05-26 18:45:20

なんと開発者さんから反応をいただけました

BEAR.Sunday @BEARSunday

A REST PHP framework with a Hypermedia centered architecture, implementing DI and AOP at its core.

https://t.co/1fBt4pqrU8

質問1

吉田あひる @strtyuu

@BEARSunday MVCとは全然違った印象で、すごく楽しくチュートリアルを終えました! ありがとうございます! まだ触りたてなのとチュートリアルがわかりやすかったので、深い質問はないのですが 気になったところとしては チュートリアル1のHTMLの章で、他のリソースを埋め込む手段として(続く)

2019-05-26 19:01:40
吉田あひる @strtyuu

@BEARSunday Embedアノテーションを使う方法とResourceInjectトレイトを使う方法の2パターンを紹介されていました。 が、2つのサンプルコードがそれぞれ違うレスポンスを返却していたのが、意図したものなのか、そうではないのか気になりました twitter.com/strtyuu/status… twitter.com/strtyuu/status…

2019-05-26 19:01:51
吉田あひる @strtyuu

チュートリアルのResourceInjectのトレイトを使って他のリソースを埋め込むサンプルコード、期待した結果にならない、なんか間違ってる気がする

2019-05-26 15:43:25
吉田あひる @strtyuu

{"_embedded": {"weekday": {"weekday: "Sat"} } } を期待しているけど、コードをそのままコピペすると{"weekday": {"weekday: "Sat"} } だけになってしまう。 Embedアノテーションを使った場合は期待した結果になる

2019-05-26 15:45:41
BEAR.Sunday @BEARSunday

@strtyuu 楽しめたの良かったです。 `_embedded`はHALのフォーマットで、@Link をHALで使った時に現れます。(チュートリアル説明不十分ですね)en.wikipedia.org/wiki/Hypertext…

2019-05-26 19:06:44
吉田あひる @strtyuu

@BEARSunday @Link 理解しました、ありがとうございます! コンテキストでレスポンスが変化するのも面白いです、なるほどー。

2019-05-26 19:19:56

質問2

吉田あひる @strtyuu

@BEARSunday あとは純粋な興味として HTMLのテンプレートをvarディレクトリの下に配置していくのは、なんとなく独特な印象があったので varの下に置くと決めた経緯が気になりました!

2019-05-26 19:03:29
BEAR.Sunday @BEARSunday

@strtyuu これは例えば、なぜ`temsplates/`ではないのか、という事でしょうか?

2019-05-26 19:12:58
吉田あひる @strtyuu

@BEARSunday ですです! 僕が今まで触ったことのあるフレームワークは、トップディレクトリの下に`templates/` や `views/` などのディレクトリがあり、そのディレクトリにファイルを作っていくことが多かったので、新鮮さがありました。

2019-05-26 19:23:34
BEAR.Sunday @BEARSunday

@strtyuu 元々、@BEARSundayではアプリケーションのディレクトリ構造や、固定化したconfigのファイル名をフレームワークが決めてしまったり、フレームワークの都合(ver upなど)でアプリケーションのフォルダ構造を変えなければならなく事を、アンチパターンで避けるべき事だと考えています。

2019-05-26 19:20:53
BEAR.Sunday @BEARSunday

@strtyuu TwigModuleも第一引数にテンプレートパスを渡すとユーザーが指定できます。つまりアプリケーションの実行コンテキストに応じて(モジュールで指定して)テンプレートのパスを変える事ができます。 デフォルトが var/templates または Resource になっているだけです。で何故varなのかというと、

2019-05-26 19:23:37
BEAR.Sunday @BEARSunday

@strtyuu varの名前は"Filesystem Hierarchy Standard"から借用していて、オプションのコンポーネントで"可変"(var)なファイルが格納されます。BEARではAuraルーターもTwigテンプレートファイルもオプション扱いです。 ja.wikipedia.org/wiki/Filesyste…

2019-05-26 19:27:24
BEAR.Sunday @BEARSunday

@strtyuu ポイントは固定されてないという事です。例えばこれを`view/`や`var/templates`とか固定にしてしまえば、例えば全く同じアプリケーションでテンプレートだけを変えたい、あるいはユーザーエージェントがXの時だけテンプレートを全部変えたい、といった時に途端に難しくならないですか?

2019-05-26 19:30:29
BEAR.Sunday @BEARSunday

@strtyuu 答えが二重になってます。1)固定化されて無いです。単にデフォルトというだけでコンストラクターにTwigModuleに"注入"できます 2) `var` という名前は可変ファイルの置き場としてFHSから借用しています。トップに`views/`とか用途固定の名前を置くのは乱暴に感じられます。

2019-05-26 19:34:02
吉田あひる @strtyuu

@BEARSunday > トップに`views/`とか用途固定の名前を置くのは乱暴に感じられます。 composer create-projectをしたときに、トップのディレクトリのシンプルさはまずびっくりしたところです! そういった思想から来ているものなんですね。 もうちょっと触って、色々試してみたいと思いますっっ

2019-05-26 19:38:41
吉田あひる @strtyuu

@BEARSunday なるほどなるほど、すごくよくわかりました! こんなに丁寧に回答していただけるとは思いませんでした、本当にありがとうございます!

2019-05-26 19:32:17