public static function add($stack_name, $value, $value_name = null, $after = null)
{
$stack = self::get_named_stack($stack_name);
if ($value_name == null && is_string($value)) {
if ($test = StackItem::get($value)) {
$value = $test;
}
}
if (!$value instanceof StackItem) {
$value_name = $value_name ? $value_name : md5(serialize($value));
$value = StackItem::register($value_name, $value);
foreach ((array) $after as $a) {
$value->add_dependency($a);
}
}
$stack[$value->name] = $value;
self::$stacks[$stack_name] = $stack;
return $stack;
}