BEAR.Sundayのチュートリアルをやった様子
なんと開発者さんから反応をいただけました
A REST PHP framework with a Hypermedia centered architecture, implementing DI and AOP at its core.
質問1
@BEARSunday MVCとは全然違った印象で、すごく楽しくチュートリアルを終えました! ありがとうございます! まだ触りたてなのとチュートリアルがわかりやすかったので、深い質問はないのですが 気になったところとしては チュートリアル1のHTMLの章で、他のリソースを埋め込む手段として(続く)
2019-05-26 19:01:40@BEARSunday Embedアノテーションを使う方法とResourceInjectトレイトを使う方法の2パターンを紹介されていました。 が、2つのサンプルコードがそれぞれ違うレスポンスを返却していたのが、意図したものなのか、そうではないのか気になりました twitter.com/strtyuu/status… twitter.com/strtyuu/status…
2019-05-26 19:01:51チュートリアルのResourceInjectのトレイトを使って他のリソースを埋め込むサンプルコード、期待した結果にならない、なんか間違ってる気がする
2019-05-26 15:43:25{"_embedded": {"weekday": {"weekday: "Sat"} } } を期待しているけど、コードをそのままコピペすると{"weekday": {"weekday: "Sat"} } だけになってしまう。 Embedアノテーションを使った場合は期待した結果になる
2019-05-26 15:45:41@strtyuu 楽しめたの良かったです。 `_embedded`はHALのフォーマットで、@Link をHALで使った時に現れます。(チュートリアル説明不十分ですね)en.wikipedia.org/wiki/Hypertext…
2019-05-26 19:06:44@BEARSunday @Link 理解しました、ありがとうございます! コンテキストでレスポンスが変化するのも面白いです、なるほどー。
2019-05-26 19:19:56質問2
@BEARSunday あとは純粋な興味として HTMLのテンプレートをvarディレクトリの下に配置していくのは、なんとなく独特な印象があったので varの下に置くと決めた経緯が気になりました!
2019-05-26 19:03:29@BEARSunday ですです! 僕が今まで触ったことのあるフレームワークは、トップディレクトリの下に`templates/` や `views/` などのディレクトリがあり、そのディレクトリにファイルを作っていくことが多かったので、新鮮さがありました。
2019-05-26 19:23:34@strtyuu 元々、@BEARSundayではアプリケーションのディレクトリ構造や、固定化したconfigのファイル名をフレームワークが決めてしまったり、フレームワークの都合(ver upなど)でアプリケーションのフォルダ構造を変えなければならなく事を、アンチパターンで避けるべき事だと考えています。
2019-05-26 19:20:53@strtyuu TwigModuleも第一引数にテンプレートパスを渡すとユーザーが指定できます。つまりアプリケーションの実行コンテキストに応じて(モジュールで指定して)テンプレートのパスを変える事ができます。 デフォルトが var/templates または Resource になっているだけです。で何故varなのかというと、
2019-05-26 19:23:37@strtyuu varの名前は"Filesystem Hierarchy Standard"から借用していて、オプションのコンポーネントで"可変"(var)なファイルが格納されます。BEARではAuraルーターもTwigテンプレートファイルもオプション扱いです。 ja.wikipedia.org/wiki/Filesyste…
2019-05-26 19:27:24@strtyuu ポイントは固定されてないという事です。例えばこれを`view/`や`var/templates`とか固定にしてしまえば、例えば全く同じアプリケーションでテンプレートだけを変えたい、あるいはユーザーエージェントがXの時だけテンプレートを全部変えたい、といった時に途端に難しくならないですか?
2019-05-26 19:30:29@strtyuu 答えが二重になってます。1)固定化されて無いです。単にデフォルトというだけでコンストラクターにTwigModuleに"注入"できます 2) `var` という名前は可変ファイルの置き場としてFHSから借用しています。トップに`views/`とか用途固定の名前を置くのは乱暴に感じられます。
2019-05-26 19:34:02@BEARSunday > トップに`views/`とか用途固定の名前を置くのは乱暴に感じられます。 composer create-projectをしたときに、トップのディレクトリのシンプルさはまずびっくりしたところです! そういった思想から来ているものなんですね。 もうちょっと触って、色々試してみたいと思いますっっ
2019-05-26 19:38:41@BEARSunday なるほどなるほど、すごくよくわかりました! こんなに丁寧に回答していただけるとは思いませんでした、本当にありがとうございます!
2019-05-26 19:32:17