OTOBANK Engineering Blog

オトバンクはコンテンツが大好きなエンジニアを募集しています!

BEAR.Sunday のリソースキャッシュを試してみた

この記事には @koriym さんによるフォローアップ記事: BEAR.Sunday のリソースキャッシュ - Qiita があります。併せてご覧ください。


しばらくぶりです。 @kalibora です。

この記事は BEAR.Sunday Advent Calendar 2017 - Qiita 20日目の記事です。

(前日の記事と少し被りますが気にしない)

リソースキャッシュとは?

BEAR.Sunday には リソースキャッシュ と呼ばれる機能があります。

リソースクラスに @Cacheable とアノテートするだけで、リソースの中身がキャッシュされるようになる。という機能です。

データベースに毎回アクセスするようなことは、負荷の観点からC(Consumer)向けのサービスではあまりしないでしょうから、とても便利な機能だと思います。

しかしながらキャッシュはパージ(削除)するタイミングが重要であり、頭を悩ませる所だと思います。

これについては REST をベースとしているため、GET 以外の各HTTPメソッドの呼び出し時に自動でパージするようになっているようです。 (もちろんAPIを介さず直接DBを変更したら意味ないですが)

それでは実際に試してみます。

続きを読む

BEAR.Sundayをコードリーディングしたのでメモ程度にアウトプットする

この記事には @koriym さんによるフォローアップ記事: Re: BEAR.Sundayをコードリーディングしたのでメモ程度にアウトプットする - BEAR Blog があります。併せてご覧ください。


お久しぶりです。 @kalibora です。

題名が若干のルー大柴感ありますが、以前から気にはなっていたものの手を出していなかった BEAR.Sunday を最近触りまして、

理解を深めるためにもコードを多少読んだので、ここにそのメモを藪からスティックに垂れ流したいと思います。

誰かのお役に立てれば幸いです。

(多分に間違えている可能性があるので、その際はマサカリを投げてください。)

前提条件

以下のバージョンのコードを読みました。

$ composer show | grep 'bear/\(app-meta\|package\|resource\|sunday\)'
bear/app-meta                      1.2.4              BEAR.Sunday application meta information
bear/package                       1.7.0              BEAR.Sunday framework package
bear/resource                      1.9.0              Hypermedia framework for object as a service
bear/sunday                        1.2.1              A resource-oriented application framework

また、下記のように bear/skeleton を使ってプロジェクトを開始しています。

$ composer create-project bear/skeleton MyVendor.MyPackage

github.com

読み進める前提としては、BEAR.Sunday の チュートリアル をやって、なんとなく理解していた方が分かりやすいかと思います。

続きを読む

SymfonyのService Containerについて(後編)

こんにちは。@mrtry_です。
最近ずっとサンダルで出社していたら、日焼けでサンダルの紐の跡ができました。

さて、今回は前回に引き続き、DIについて書こうと思います。 前回でDIとはなにか、という話をしたので、今回はSymfonyでDIする際に利用するService Containerについて書きたいと思います

以下、今回の記事の目次になります。

  • Service Contaier とは
  • DIするまでの手順
  • サービスを作る
  • サービスの設定をする
  • コントローラでサービスを呼び出してみる

Service Container とは

続きを読む