2019-01-27

CellsはLayoutを持っているか

RubyのCellsには独自のlayoutがある

trailblazer/cells: View components for Ruby and Rails.

使い方は以下のような感じ。

class FooCell < Cell::ViewModel
  layout :simple

  def bar  # state
  end
end

※ Rails の Controller 的にはメソッドは action なんだけど Cell::ViewModel 的には state になる。

レイアウトはどこに置くかというと、cell 用の view を置く場所にそのまま。名前付けに何かルールがあった方がよさそう。

cells/foo_cell.rb
cells/foo/bar.erb    <-- state用template
cells/foo/simple.erb <-- layout

Laravelのtorann/cellsにはlayoutはない

※ 上の Laravel 4 用の torann/cells は fork 版です。オリジナル版は type hint が邪魔して実際には使えないので。

この Cells にはそもそも独自の view object というものは存在しない。あくまで Blade の中に一つの記法(directive)を用意して、その中で独自に template を読んで render した結果を返すだけ。CellBaseController はあるが Laravel の Controller のようには layout を指定する機能はない。

というか Laraval の Controller は Layout 制御を積極的に支援していない ので、考え方が違う。@extends, @section, @yield と、Ruby 版の Cells と同じように名前付けのルールがあればよい。

About

例によって個人のなんちゃらです