bean = $bean; } /** * Magic Getter to make the bean properties available from * the $this-scope. * * @note this method returns a value, not a reference! * To obtain a reference unbox the bean first! * * @param string $prop property to get * * @return mixed */ public function __get( $prop ) { return $this->bean->$prop; } /** * Magic Setter. * Sets the value directly as a bean property. * * @param string $prop property to set value of * @param mixed $value value to set * * @return void */ public function __set( $prop, $value ) { $this->bean->$prop = $value; } /** * Isset implementation. * Implements the isset function for array-like access. * * @param string $key key to check * * @return boolean */ public function __isset( $key ) { return isset( $this->bean->$key ); } /** * Box the bean using the current model. * This method wraps the current bean in this model. * This method can be reached using FUSE through a simple * OODBBean. The method returns a RedBeanPHP Simple Model. * This is useful if you would like to rely on PHP type hinting. * You can box your beans before passing them to functions or methods * with typed parameters. * * Note about beans vs models: * Use unbox to obtain the bean powering the model. If you want to use bean functionality, * you should -always- unbox first. While some functionality (like magic get/set) is * available in the model, this is just read-only. To use a model as a typical RedBean * OODBBean you should always unbox the model to a bean. Models are meant to * expose only domain logic added by the developer (business logic, no ORM logic). * * @return SimpleModel */ public function box() { return $this; } /** * Unbox the bean from the model. * This method returns the bean inside the model. * * Note about beans vs models: * Use unbox to obtain the bean powering the model. If you want to use bean functionality, * you should -always- unbox first. While some functionality (like magic get/set) is * available in the model, this is just read-only. To use a model as a typical RedBean * OODBBean you should always unbox the model to a bean. Models are meant to * expose only domain logic added by the developer (business logic, no ORM logic). * * @return OODBBean */ public function unbox() { return $this->bean; } }