| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | <?php namespace Laravel;class Section {	/**	 * All of the captured sections.	 *	 * @var array	 */	public static $sections = array();	/**	 * The last section on which injection was started.	 *	 * @var array	 */	protected static $last = array();	/**	 * Start injecting content into a section.	 *	 * <code>	 *		// Start injecting into the "header" section	 *		Section::start('header');	 *	 *		// Inject a raw string into the "header" section without buffering	 *		Section::start('header', '<title>Laravel</title>');	 * </code>	 *	 * @param  string          $section	 * @param  string|Closure  $content	 * @return void	 */	public static function start($section, $content = '')	{		if ($content === '') ob_start() and static::$last[] = $section;		static::append($section, $content);	}	/**	 * Inject inline content into a section.	 *	 * This is helpful for injecting simple strings such as page titles.	 *	 * <code>	 *		// Inject inline content into the "header" section	 *		Section::inject('header', '<title>Laravel</title>');	 * </code>	 *	 * @param  string  $section	 * @param  string  $content	 * @return void	 */	public static function inject($section, $content)	{		static::start($section, $content);	}	/**	 * Stop injecting content into a section.	 *	 * @return void	 */	public static function stop()	{		static::append(array_pop(static::$last), ob_get_clean());	}	/**	 * Append content to a given section.	 *	 * @param  string  $section	 * @param  string  $content	 * @return void	 */	protected static function append($section, $content)	{		if (isset(static::$sections[$section]))		{			$content = static::$sections[$section].PHP_EOL.$content;		}		static::$sections[$section] = $content;	}	/**	 * Get the string contents of a section.	 *	 * @param  string  $section	 * @return string	 */	public static function yield($section)	{		return (isset(static::$sections[$section])) ? static::$sections[$section] : '';	}}
 |