Commit 4ecbef68 by Taylor Otwell

Merge pull request #1853 from cviebrock/table-macros

Add Macros to tables
parents 78af4569 906d0d85
......@@ -40,6 +40,25 @@ class Table {
public $commands = array();
/**
* The registered custom macros.
*
* @var array
*/
public static $macros = array();
/**
* Registers a custom macro.
*
* @param string $name
* @param Closure $macro
* @return void
*/
public static function macro($name, $macro)
{
static::$macros[$name] = $macro;
}
/**
* Create a new schema table instance.
*
* @param string $name
......@@ -422,4 +441,22 @@ class Table {
return $this->columns[] = new Fluent($parameters);
}
/**
* Dynamically handle calls to custom macros.
*
* @param string $method
* @param array $parameters
* @return mixed
*/
public function __call($method, $parameters)
{
if (isset(static::$macros[$method]))
{
array_unshift($parameters, $this);
return call_user_func_array(static::$macros[$method], $parameters);
}
throw new \Exception("Method [$method] does not exist.");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment