src/Charcoal/App/ServiceProvider/AppServiceProvider.php
protected function registerViewServices(Container $container)
    {
        if (!isset($container['view/mustache/helpers'])) {
            $container['view/mustache/helpers'] = function () {
                return [];
            };
        }

        /**
         * Extend helpers for the Mustache Engine
         *
         * @return array
         */
        $container->extend('view/mustache/helpers', function (array $helpers, Container $container) {
            $baseUrl = $container['base-url'];
            $urls = [
                /**
                 * Application debug mode.
                 *
                 * @return boolean
                 */
                'debug' => ($container['config']['debug'] || $container['config']['dev_mode']),
                /**
                 * Retrieve the base URI of the project.
                 *
                 * @return UriInterface|null
                 */
                'siteUrl' => $baseUrl,
                /**
                 * Alias of "siteUrl"
                 *
                 * @return UriInterface|null
                 */
                'baseUrl' => $baseUrl,
                /**
                 * Prepend the base URI to the given path.
                 *
                 * @param  string $uri A URI path to wrap.
                 * @return UriInterface|null
                 */
                'withBaseUrl' => function ($uri, LambdaHelper $helper = null) use ($baseUrl) {
                    if ($helper) {
                        $uri = $helper->render($uri);
                    }

                    $uri = strval($uri);
                    if ($uri === '') {
                        $uri = $baseUrl->withPath('');
                    } else {
                        $parts = parse_url($uri);
                        if (!isset($parts['scheme'])) {
                            if (!in_array($uri[0], [ '/', '#', '?' ])) {
                                $path  = isset($parts['path']) ? $parts['path'] : '';
                                $query = isset($parts['query']) ? $parts['query'] : '';
                                $hash  = isset($parts['fragment']) ? $parts['fragment'] : '';

                                $uri = $baseUrl->withPath($path)
                                               ->withQuery($query)
                                               ->withFragment($hash);
                            }
                        }
                    }

                    return $uri;
                },
                'renderContext' => function ($text, LambdaHelper $helper = null) {
                    return $helper->render('{{>'.$helper->render($text).'}}');
                }
            ];

            return array_merge($helpers, $urls);
        });
    }
protected function registerViewServices(Container $container)
    {
        if (!isset($container['view/mustache/helpers'])) {
            $container['view/mustache/helpers'] = function () {
                return [];
            };
        }

        /**
         * Extend helpers for the Mustache Engine
         *
         * @return array
         */
        $container->extend('view/mustache/helpers', function (array $helpers, Container $container) {
            $baseUrl = $container['base-url'];
            $urls = [
                /**
                 * Application debug mode.
                 *
                 * @return boolean
                 */
                'debug' => ($container['config']['debug'] || $container['config']['dev_mode']),
                /**
                 * Retrieve the base URI of the project.
                 *
                 * @return UriInterface|null
                 */
                'siteUrl' => $baseUrl,
                /**
                 * Alias of "siteUrl"
                 *
                 * @return UriInterface|null
                 */
                'baseUrl' => $baseUrl,
                /**
                 * Prepend the base URI to the given path.
                 *
                 * @param  string $uri A URI path to wrap.
                 * @return UriInterface|null
                 */
                'withBaseUrl' => function ($uri, LambdaHelper $helper = null) use ($baseUrl) {
                    if ($helper) {
                        $uri = $helper->render($uri);
                    }

                    $uri = strval($uri);
                    if ($uri === '') {
                        $uri = $baseUrl->withPath('');
                    } else {
                        $parts = parse_url($uri);
                        if (!isset($parts['scheme'])) {
                            if (!in_array($uri[0], [ '/', '#', '?' ])) {
                                $path  = isset($parts['path']) ? $parts['path'] : '';
                                $query = isset($parts['query']) ? $parts['query'] : '';
                                $hash  = isset($parts['fragment']) ? $parts['fragment'] : '';

                                $uri = $baseUrl->withPath($path)
                                               ->withQuery($query)
                                               ->withFragment($hash);
                            }
                        }
                    }

                    return $uri;
                },
                'renderContext' => function ($text, LambdaHelper $helper = null) {
                    return $helper->render('{{>'.$helper->render($text).'}}');
                }
            ];

            return array_merge($helpers, $urls);
        });
    }
protected function registerViewServices ( Container $ container ) { if ( ! isset ( $ container [ 'view/mustache/helpers' ] ) ) { $ container [ 'view/mustache/helpers' ] = function ( ) { return [ ] ; } ; } /**
         * Extend helpers for the Mustache Engine
         *
         * @return array
         */ $ container -> extend ( 'view/mustache/helpers' , function ( array $ helpers , Container $ container ) { $ baseUrl = $ container [ 'base-url' ] ; $ urls = [ /**
                 * Application debug mode.
                 *
                 * @return boolean
                 */ 'debug' => ( $ container [ 'config' ] [ 'debug' ] || $ container [ 'config' ] [ 'dev_mode' ] ) , /**
                 * Retrieve the base URI of the project.
                 *
                 * @return UriInterface|null
                 */ 'siteUrl' => $ baseUrl , /**
                 * Alias of "siteUrl"
                 *
                 * @return UriInterface|null
                 */ 'baseUrl' => $ baseUrl , /**
                 * Prepend the base URI to the given path.
                 *
                 * @param  string $uri A URI path to wrap.
                 * @return UriInterface|null
                 */ 'withBaseUrl' => function ( $ uri , LambdaHelper $ helper = null ) use ( $ baseUrl ) { if ( $ helper ) { $ uri = $ helper -> render ( $ uri ) ; } $ uri = strval ( $ uri ) ; if ( $ uri === '' ) { $ uri = $ baseUrl -> withPath ( '' ) ; } else { $ parts = parse_url ( $ uri ) ; if ( ! isset ( $ parts [ 'scheme' ] ) ) { if ( ! in_array ( $ uri [ 0 ] , [ '/' , '#' , '?' ] ) ) { $ path = isset ( $ parts [ 'path' ] ) ? $ parts [ 'path' ] : '' ; $ query = isset ( $ parts [ 'query' ] ) ? $ parts [ 'query' ] : '' ; $ hash = isset ( $ parts [ 'fragment' ] ) ? $ parts [ 'fragment' ] : '' ; $ uri = $ baseUrl -> withPath ( $ path ) -> withQuery ( $ query ) -> withFragment ( $ hash ) ; } } } return $ uri ; } , 'renderContext' => function ( $ text , LambdaHelper $ helper = null ) { return $ helper -> render ( '{{>' . $ helper -> render ( $ text ) . '}}' ) ; } ] ; return array_merge ( $ helpers , $ urls ) ; } ) ; }
Add helpers to the view services.

@param Container $container A container instance.
@return void
Add helpers to the view services .