src/Primer/Primer.php
public static function start($options)
    {
        ErrorHandler::register();
        ExceptionHandler::register();

        // Default params
        $defaultTemplateClass = 'Rareloop\Primer\TemplateEngine\Handlebars\Template';

        // Work out what we were passed as an argument
        if (is_string($options)) {
            // Backwards compatibility
            Primer::$BASE_PATH      = realpath($options);
            Primer::$PATTERN_PATH   = Primer::$BASE_PATH . '/patterns';
            Primer::$PATTERN_PATH   = Primer::$BASE_PATH . '/views';
            Primer::$CACHE_PATH     = Primer::$BASE_PATH . '/cache';
            Primer::$TEMPLATE_CLASS = $defaultTemplateClass;
            Primer::$WRAP_TEMPLATES = true;
        } else {
            // New more expressive function params
            if (!isset($options['basePath'])) {
                throw new Exception('No `basePath` param passed to Primer::start()');
            }

            Primer::$BASE_PATH      = realpath($options['basePath']);

            Primer::$PATTERN_PATH   = isset($options['patternPath'])    ? realpath($options['patternPath'])     : Primer::$BASE_PATH . '/patterns';
            Primer::$VIEW_PATH      = isset($options['viewPath'])       ? realpath($options['viewPath'])        : Primer::$BASE_PATH . '/views';
            Primer::$CACHE_PATH     = isset($options['cachePath'])      ? realpath($options['cachePath'])       : Primer::$BASE_PATH . '/cache';
            Primer::$TEMPLATE_CLASS = isset($options['templateClass'])  ? $options['templateClass']             : $defaultTemplateClass;

            Primer::$WRAP_TEMPLATES = isset($options['wrapTemplate'])   ? $options['wrapTemplate']              : true;
        }

        // Attempt to load all `init.php` files. We shouldn't really have to do this here but currently
        // include functions don't actually load patterns so its hard to track when things are loaded
        // TODO: Move everything through Pattern constructors
        $finder = new Finder();
        $initFiles = $finder->in(Primer::$PATTERN_PATH)->files()->name('init.php');

        foreach ($initFiles as $file) {
            include_once($file);
        }

        return Primer::instance();
    }
public static function start($options)
    {
        ErrorHandler::register();
        ExceptionHandler::register();

        // Default params
        $defaultTemplateClass = 'Rareloop\Primer\TemplateEngine\Handlebars\Template';

        // Work out what we were passed as an argument
        if (is_string($options)) {
            // Backwards compatibility
            Primer::$BASE_PATH      = realpath($options);
            Primer::$PATTERN_PATH   = Primer::$BASE_PATH . '/patterns';
            Primer::$PATTERN_PATH   = Primer::$BASE_PATH . '/views';
            Primer::$CACHE_PATH     = Primer::$BASE_PATH . '/cache';
            Primer::$TEMPLATE_CLASS = $defaultTemplateClass;
            Primer::$WRAP_TEMPLATES = true;
        } else {
            // New more expressive function params
            if (!isset($options['basePath'])) {
                throw new Exception('No `basePath` param passed to Primer::start()');
            }

            Primer::$BASE_PATH      = realpath($options['basePath']);

            Primer::$PATTERN_PATH   = isset($options['patternPath'])    ? realpath($options['patternPath'])     : Primer::$BASE_PATH . '/patterns';
            Primer::$VIEW_PATH      = isset($options['viewPath'])       ? realpath($options['viewPath'])        : Primer::$BASE_PATH . '/views';
            Primer::$CACHE_PATH     = isset($options['cachePath'])      ? realpath($options['cachePath'])       : Primer::$BASE_PATH . '/cache';
            Primer::$TEMPLATE_CLASS = isset($options['templateClass'])  ? $options['templateClass']             : $defaultTemplateClass;

            Primer::$WRAP_TEMPLATES = isset($options['wrapTemplate'])   ? $options['wrapTemplate']              : true;
        }

        // Attempt to load all `init.php` files. We shouldn't really have to do this here but currently
        // include functions don't actually load patterns so its hard to track when things are loaded
        // TODO: Move everything through Pattern constructors
        $finder = new Finder();
        $initFiles = $finder->in(Primer::$PATTERN_PATH)->files()->name('init.php');

        foreach ($initFiles as $file) {
            include_once($file);
        }

        return Primer::instance();
    }
public static function start ( $ options ) { ErrorHandler :: register ( ) ; ExceptionHandler :: register ( ) ; // Default params $ defaultTemplateClass = 'Rareloop\Primer\TemplateEngine\Handlebars\Template' ; // Work out what we were passed as an argument if ( is_string ( $ options ) ) { // Backwards compatibility Primer :: $ BASE_PATH = realpath ( $ options ) ; Primer :: $ PATTERN_PATH = Primer :: $ BASE_PATH . '/patterns' ; Primer :: $ PATTERN_PATH = Primer :: $ BASE_PATH . '/views' ; Primer :: $ CACHE_PATH = Primer :: $ BASE_PATH . '/cache' ; Primer :: $ TEMPLATE_CLASS = $ defaultTemplateClass ; Primer :: $ WRAP_TEMPLATES = true ; } else { // New more expressive function params if ( ! isset ( $ options [ 'basePath' ] ) ) { throw new Exception ( 'No `basePath` param passed to Primer::start()' ) ; } Primer :: $ BASE_PATH = realpath ( $ options [ 'basePath' ] ) ; Primer :: $ PATTERN_PATH = isset ( $ options [ 'patternPath' ] ) ? realpath ( $ options [ 'patternPath' ] ) : Primer :: $ BASE_PATH . '/patterns' ; Primer :: $ VIEW_PATH = isset ( $ options [ 'viewPath' ] ) ? realpath ( $ options [ 'viewPath' ] ) : Primer :: $ BASE_PATH . '/views' ; Primer :: $ CACHE_PATH = isset ( $ options [ 'cachePath' ] ) ? realpath ( $ options [ 'cachePath' ] ) : Primer :: $ BASE_PATH . '/cache' ; Primer :: $ TEMPLATE_CLASS = isset ( $ options [ 'templateClass' ] ) ? $ options [ 'templateClass' ] : $ defaultTemplateClass ; Primer :: $ WRAP_TEMPLATES = isset ( $ options [ 'wrapTemplate' ] ) ? $ options [ 'wrapTemplate' ] : true ; } // Attempt to load all `init.php` files. We shouldn't really have to do this here but currently // include functions don't actually load patterns so its hard to track when things are loaded // TODO: Move everything through Pattern constructors $ finder = new Finder ( ) ; $ initFiles = $ finder -> in ( Primer :: $ PATTERN_PATH ) -> files ( ) -> name ( 'init.php' ) ; foreach ( $ initFiles as $ file ) { include_once ( $ file ) ; } return Primer :: instance ( ) ; }
Bootstrap the Primer singleton

For backwards compatibility the first param is either a string to the BASE_PATH
or it can be an assoc array

array(
'basePath' => '',
'patternPath' => '',     // Defaults to PRIMER::$BASE_PATH . '/pattern'
'cachePath' => '',       // Defaults to PRIMER::$BASE_PATH . '/cache'
'templateEngine' => ''   // Defaults to 'Rareloop\Primer\TemplateEngine\Handlebars\Template'
)

@param  String|Array $options
@return Rareloop\Primer\Primer
Bootstrap the Primer singleton