<?php 
 
/** 
 * Support functions for RedBeanPHP. 
 * Additional convenience shortcut functions for RedBeanPHP. 
 * 
 * @file    RedBeanPHP/Functions.php 
 * @author  Gabor de Mooij and the RedBeanPHP community 
 * @license BSD/GPLv2 
 * 
 * @copyright 
 * copyright (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community. 
 * This source file is subject to the BSD/GPLv2 License that is bundled 
 * with this source code in the file license.txt. 
 */ 
 
/** 
 * Convenience function for ENUM short syntax in queries. 
 * 
 * Usage: 
 * 
 * <code> 
 * R::find( 'paint', ' color_id = ? ', [ EID('color:yellow') ] ); 
 * </code> 
 * 
 * If a function called EID() already exists you'll have to write this 
 * wrapper yourself ;) 
 * 
 * @param string $enumName enum code as you would pass to R::enum() 
 * 
 * @return mixed 
 */ 
if (!function_exists('EID')) { 
 
    function EID($enumName) 
    { 
        return \RedBeanPHP\Facade::enum( $enumName )->id; 
    } 
 
} 
 
/** 
 * Prints the result of R::dump() to the screen using 
 * print_r. 
 * 
 * @param mixed $data data to dump 
 * 
 * @return void 
 */ 
if ( !function_exists( 'dmp' ) ) { 
 
    function dmp( $list ) 
    { 
        print_r( \RedBeanPHP\Facade::dump( $list ) ); 
    } 
} 
 
/** 
 * Function alias for R::genSlots(). 
 */ 
if ( !function_exists( 'genslots' ) ) { 
 
    function genslots( $slots, $tpl = NULL ) 
    { 
        return \RedBeanPHP\Facade::genSlots( $slots, $tpl ); 
    } 
} 
 
/** 
 * Function alias for R::flat(). 
 */ 
if ( !function_exists( 'array_flatten' ) ) { 
 
    function array_flatten( $array ) 
    { 
        return \RedBeanPHP\Facade::flat( $array ); 
    } 
} 
 
/** 
 * Function pstr() generates [ $value, \PDO::PARAM_STR ] 
 * Ensures that your parameter is being treated as a string. 
 * 
 * Usage: 
 * 
 * <code> 
 * R::find('book', 'title = ?', [ pstr('1') ]); 
 * </code> 
 */ 
if ( !function_exists( 'pstr' ) ) { 
 
    function pstr( $value ) 
    { 
        return array( strval( $value ) , \PDO::PARAM_STR ); 
    } 
} 
 
 
/** 
 * Function pint() generates [ $value, \PDO::PARAM_INT ] 
 * Ensures that your parameter is being treated as an integer. 
 * 
 * Usage: 
 * 
 * <code> 
 * R::find('book', ' pages > ? ', [ pint(2) ] ); 
 * </code> 
 */ 
if ( !function_exists( 'pint' ) ) { 
 
    function pint( $value ) 
    { 
        return array( intval( $value ) , \PDO::PARAM_INT ); 
    } 
} 
 
/** 
 * Function DBPrefix() is a simple function to allow you to 
 * quickly set a different namespace for FUSE model resolution 
 * per database connection. It works by creating a new DynamicBeanHelper 
 * with the specified string as model prefix. 
 * 
 * Usage: 
 * 
 * <code> 
 * R::addDatabase( ..., DBPrefix( 'Prefix1_' )  ); 
 * </code> 
 */ 
if ( !function_exists( 'DBPrefix' ) ) { 
 
    function DBPrefix( $prefix = '\\Model' ) { 
        return new \RedBeanPHP\BeanHelper\DynamicBeanHelper( $prefix ); 
    } 
} 
 
 |