Migration_Driver_Column::load()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 1
cp 0
c 0
b 0
f 0
nc 1
1
<?php defined('SYSPATH') OR die('No direct script access.');
2
3
abstract class Migration_Driver_Column
4
{
5
	static protected $available_params = array(
6
		'type',
7
		'limit',
8
		'auto',
9
		'primary',
10
		'null',
11
		'precision',
12
		'first',
13
		'after',
14
		'default',
15
		'unsigned',
16
		'values',
17
		'comment',
18
	);
19
20
	protected $params = array();
21
	protected $name;
22
	protected $driver;
23
24
	public function name($name = NULL)
25
	{
26
		if ($name === NULL)
27
		{
28
			return $this->name;
29
		}
30
31
		$this->name = (string) $name;
32 2
		return $this;
33
	}
34 2
35 2
	public function __construct($name, Migration_Driver $driver)
36 1
	{
37
		$this->name = $name;
38
		$this->driver = $driver;
39 1
	}
40 1
41
	public function params($params = NULL)
42
	{
43 30
		if ($params === NULL)
44
		{
45 30
			return Arr::extract($this->params, self::$available_params);
46 30
		}
47 30
		$params = (array) $params;
48
49 28
		if (isset($params[0]))
50
		{
51 28
			$params = Arr::merge($this->column_params_for($params[0]), array_slice($params, 1));
52 28
		}
53
54
		if ($illigal = array_diff(array_keys($params), self::$available_params))
55 28
			throw new Migration_Driver_Exception_Params($illigal);
56
57 28
		$this->params = $params;
58 28
59 27
		return $this;
60 27
	}
61
62 28
	public function param($name, $value = NULL)
63 28
	{
64
		if ($value === NULL)
65 28
		{
66
			return Arr::get($this->params, $name, NULL);
67 28
		}
68
69
		if (array_search($name, self::$available_params) === FALSE)
70 2
			throw new Migration_Driver_Exception_Params($name);
71
72 2
		$this->params[$name] = $value;
73 2
		return $this;
74 2
	}
75
76
	abstract public function column_params_for($column);
77
	abstract public function load($table_name);
78
	abstract public function type();
79
	abstract public function sql();
80
}
81