ext() public static method

Using this method you can register your plugin with the facade and then use the plugin by invoking the name specified plugin name as a method on the facade. Usage: R::ext( 'makeTea', function() { ... } ); Now you can use your makeTea plugin like this: R::makeTea();
public static ext ( string $pluginName, callable $callable ) : void
$pluginName string name of the method to call the plugin
$callable callable a PHP callable
return void
示例#1
0
 /**
  * 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 Facade
     asrt(Facade::singVersion(), R::getVersion() . ' lalala !');
     //test error handling
     try {
         R::ext('---', function () {
         });
         fail();
     } catch (RedException $e) {
         asrt($e->getMessage(), 'Plugin name may only contain alphanumeric characters.');
     }
     try {
         R::__callStatic('---', function () {
         });
         fail();
     } catch (RedException $e) {
         asrt($e->getMessage(), 'Plugin name may only contain alphanumeric characters.');
     }
     try {
         R::invalidMethod();
         fail();
     } catch (RedException $e) {
         asrt($e->getMessage(), 'Plugin \'invalidMethod\' does not exist, add this plugin using: R::ext(\'invalidMethod\')');
     }
 }
示例#2
0
<?php

namespace RedUNIT\Base;

use RedUNIT\Base;
use RedBeanPHP\Facade as R;
use RedBeanPHP\OODBBean;
use RedBeanPHP\QueryWriter\AQueryWriter;
R::ext('xdispense', function ($type) {
    return R::getRedBean()->dispense($type);
});
define('BOOK', 'tbl_book');
define('AUTHOR', 'tbl_author');
define('COAUTHOR', 'coAuthor');
define('FRIEND', 'tbl_friend');
define('PUBLISHER', 'tbl_publisher');
define('BOOKLIST', 'ownTbl_book');
define('FRIENDLIST', 'sharedTbl_friend');
/**
 * Prefixes
 *
 * @file    RedUNIT/Base/Prefixes.php
 * @desc    Tests whether you can use RedBeanPHP with table prefixes.
 * @author  Gabor de Mooij and the RedBeanPHP Community
 * @license New BSD/GPLv2
 *
 * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
 * This source file is subject to the New BSD/GPLv2 License that is bundled
 * with this source code in the file license.txt.
 */
class Prefixes extends Base
示例#3
0
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('image_resize', function ($src, $dst, $width, $height, $crop = 0) {
    return AMFUtil::image_resize($src, $dst, $width, $height, $crop);
});
echo 'testRbplugin';
// R::ext('',function( ){
// 	return AMFUtil::();
// });
// R::ext('',function( ){
// 	return AMFUtil::();
// });
// R::ext('',function( ){
// 	return AMFUtil::();
// });