/** * Test if we can dynamically extend the R-facade. * * @return void */ public function testDynamicPlugins() { testpack('Test dynamic plugins'); //basic behaviour R::ext('makeTea', function () { return 'sorry cant do that!'; }); asrt(R::makeTea(), 'sorry cant do that!'); //with parameters R::ext('multiply', function ($a, $b) { return $a * $b; }); asrt(R::multiply(3, 4), 12); //can we call R inside? R::ext('singVersion', function () { return R::getVersion() . ' lalala !'; }); asrt(R::singVersion(), R::getVersion() . ' lalala !'); //should also work with RedBean_Facade asrt(RedBean_Facade::singVersion(), R::getVersion() . ' lalala !'); //test error handling try { R::ext('---', function () { }); fail(); } catch (RedBean_Exception $e) { asrt($e->getMessage(), 'Plugin name may only contain alphanumeric characters.'); } try { R::__callStatic('---', function () { }); fail(); } catch (RedBean_Exception $e) { asrt($e->getMessage(), 'Plugin name may only contain alphanumeric characters.'); } try { R::invalidMethod(); fail(); } catch (RedBean_Exception $e) { asrt($e->getMessage(), 'Plugin \'invalidMethod\' does not exist, add this plugin using: R::ext(\'invalidMethod\')'); } }
<?php require 'rb.php'; /* 设置连接属性 数据库类型 数据库名 用户名密码等 */ R::setup('mysql:host=localhost;dbname=dbname', 'dbusername', 'dbpassword'); /* native SQL query */ $book = R::getAll('SELECT * FROM tbl_user'); echo "<pre>"; print_r($book); /* ORM save */ /* 注意这里不要使用前缀下划线命名的表 否则会抛出错误 如tbl_user */ $usertb = R::dispense("usertb"); $usertb->name = 'aaas'; $usertb->age = 200; R::store($usertb); /* ORM save */ /* 下面的方法可用于在下划线的表 */ define('PAGE', 'tbl_user'); R::ext('xdispense', function ($type) { return R::getRedBean()->dispense($type); }); $tbl_user = R::xdispense(PAGE); $tbl_user->name = 'aaas'; $tbl_user->age = 200; R::store($tbl_user);
protected function _setExtendedFunctionsDB() { R::ext('xdispense', function ($type) { return R::getRedBean()->dispense($type); }); }
// public static function getAllpage($tbname, $startIndex = 0, $numRows = 20, $type = null, $userid='system') R::ext('getAllpage', function ($tbname, $startIndex = 0, $numRows = 20, $type = null, $userid = 'system') { return AMFUtil::getAllpage($tbname, $startIndex, $numRow, $type, $userid); }); R::ext('getKey', function () { return AMFUtil::getKey(); }); // public static function setKey($key) { R::ext('setKey', function ($key) { return AMFUtil::setKey($key); }); // public static function mc_encrypt($encrypt, $key=null){ R::ext('mcencrypt', function ($encrypt, $key = null) { return AMFUtil::mcencrypt($encrypt, $key); }); // public static function mc_decrypt($decrypt, $key=null){ R::ext('mcdecrypt', function ($decrypt, $key = null) { return AMFUtil::mcdecrypt($decrypt, $key); }); R::ext('imageresize', function ($src, $dst, $width, $height, $crop = 0) { return AMFUtil::image_resize($src, $dst, $width, $height, $crop); }); // R::ext('',function( ){ // return AMFUtil::(); // }); // R::ext('',function( ){ // return AMFUtil::(); // }); // R::ext('',function( ){ // return AMFUtil::(); // });