* @link https://TheTempusProject.com/libraries/Houdini * @license https://opensource.org/licenses/MIT [MIT LICENSE] */ namespace TheTempusProject\Houdini\Classes; class Components { public static $components = []; public static function parse( $data ) { foreach ( self::$components as $key => $replace ) { $find = "~{($key)}~i"; $data = preg_replace( $find, $replace, $data ); } return $data; } /** * Adds a $key->$value combination to the $components array. * * @param {string} [$key] * @param {wild} [$value] * @return {bool} */ public static function set( $name, $value = '' ) { if ( null == $value ) { $value = ''; } self::$components[ $name ] = $value; return true; } public static function setIfNull( $name, $value = '' ) { if ( ! empty( self::$components[ $name ] ) ) { return; } if ( null == $value ) { $value = ''; } self::$components[ $name ] = $value; return true; } public static function unset( $name ) { if ( isset( self::$components[ $name ] ) ) { unset( self::$components[ $name ] ); } return true; } public static function append( $name, $value ) { if ( ! isset( self::$components[ $name ] ) ) { return self::set( $name, $value ); } $curr = self::$components[ $name ]; self::$components[ $name ] = $curr . $value; return true; } public static function prepend( $name, $value ) { if ( ! isset( self::$components[ $name ] ) ) { return self::set( $name, $value ); } $curr = self::$components[ $name ]; self::$components[ $name ] = $value . $curr; return true; } }