| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | <?php namespace Laravel;class Fluent {	/**	 * All of the attributes set on the fluent container.	 *	 * @var array	 */	public $attributes = array();	/**	 * Create a new fluent container instance.	 *	 * <code>	 *		Create a new fluent container with attributes	 *		$fluent = new Fluent(array('name' => 'Taylor'));	 * </code>	 *	 * @param  array  $attributes	 * @return void	 */	public function __construct($attributes = array())	{		foreach ($attributes as $key => $value)		{			$this->$key = $value;		}	}	/**	 * Get an attribute from the fluent container.	 *	 * @param  string  $attribute	 * @param  mixed   $default	 * @return mixed	 */	public function get($attribute, $default = null)	{		return array_get($this->attributes, $attribute, $default);	}	/**	 * Handle dynamic calls to the container to set attributes.	 *	 * <code>	 *		// Fluently set the value of a few attributes	 *		$fluent->name('Taylor')->age(25);	 *	 *		// Set the value of an attribute to true (boolean)	 *		$fluent->nullable()->name('Taylor');	 * </code>	 */	public function __call($method, $parameters)	{		$this->$method = (count($parameters) > 0) ? $parameters[0] : true;		return $this;	}	/**	 * Dynamically retrieve the value of an attribute.	 */	public function __get($key)	{		if (array_key_exists($key, $this->attributes))		{			return $this->attributes[$key];		}	}	/**	 * Dynamically set the value of an attribute.	 */	public function __set($key, $value)	{		$this->attributes[$key] = $value;	}	/**	 * Dynamically check if an attribute is set.	 */	public function __isset($key)	{		return isset($this->attributes[$key]);	}	/**	 * Dynamically unset an attribute.	 */	public function __unset($key)	{		unset($this->attributes[$key]);	}}
 |