diff --git a/src/Bridge.php b/src/Bridge.php index 0eb58561..7cf67881 100644 --- a/src/Bridge.php +++ b/src/Bridge.php @@ -117,6 +117,28 @@ public function mergeShared(array $context) return $context; } + /** + * Merges a context with the defined globals. + * + * @param array $context An array representing the context + * + * @return array The context merged with the globals + */ + public function mergeGlobals(array $context) + { + $context = parent::mergeGlobals($context); + + // we don't use array_merge as the context being generally + // bigger than globals, this code is faster. + foreach ($this->app['view']->getShared() as $key => $value) { + if (!array_key_exists($key, $context)) { + $context[$key] = $value; + } + } + + return $context; + } + /** * Normalize a view name. *