/** * @param \Closure $definition of grid; function(Grid $grid, TestPresenter $presenter) { }; */ public static function grid(\Closure $definition) { $self = new self(); if (self::$presenter === NULL) { self::$presenter = $self->createPresenter(); } self::$presenter->onStartUp = array(); self::$presenter->onStartUp[] = function (TestPresenter $presenter) use($definition) { if (isset($presenter[Helper::GRID_NAME])) { unset($presenter[Helper::GRID_NAME]); } $definition(new \Grido\Grid($presenter, Helper::GRID_NAME), $presenter); }; return $self; }