* class Book extends RedBeanPHP\SimpleModel {}; * class Booklet extends RedBeanPHP\SimpleModel {}; * * class FlexBeanHelper extends RedBeanPHP\BeanHelper\SimpleFacadeBeanHelper { * public function getModelForBean( RedBeanPHP\OODBBean $bean ) { * if (!isset($bean->pages)) return NULL; //will ask again * if ($bean->pages <= 10) return new Booklet; * return new Book; * } * } * * $h = new FlexBeanHelper; * R::getRedBean()->setBeanHelper($h); * $book = R::dispense('book'); * var_dump($book->box()); //NULL cant reach model * $book->pages = 5; * var_dump($book->box()); //Booklet * $book->pages = 15; * var_dump($book->box()); //still.. Booklet, model has been set * $book2 = R::dispense('book'); * $book2->pages = 15; * var_dump($book2->box()); //Book, more than 10 pages * * * @param OODBBean $bean bean to obtain the corresponding model of * * @return SimpleModel|CustomModel|NULL */ public function getModelForBean( OODBBean $bean ); }