"Fossies" - the Fresh Open Source Software Archive

Member "smarty-3.1.34/libs/sysplugins/smarty_internal_method_registerobject.php" (28 Feb 2019, 4076 Bytes) of package /linux/www/smarty-3.1.34.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "smarty_internal_method_registerobject.php" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 3.1.32_vs_3.1.33.

    1 <?php
    2 
    3 /**
    4  * Smarty Method RegisterObject
    5  *
    6  * Smarty::registerObject() method
    7  *
    8  * @package    Smarty
    9  * @subpackage PluginsInternal
   10  * @author     Uwe Tews
   11  */
   12 class Smarty_Internal_Method_RegisterObject
   13 {
   14     /**
   15      * Valid for Smarty and template object
   16      *
   17      * @var int
   18      */
   19     public $objMap = 3;
   20 
   21     /**
   22      * Registers object to be used in templates
   23      *
   24      * @api  Smarty::registerObject()
   25      * @link http://www.smarty.net/docs/en/api.register.object.tpl
   26      *
   27      * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
   28      * @param string                                                          $object_name
   29      * @param object                                                          $object                     the
   30      *                                                                                                    referenced
   31      *                                                                                                    PHP
   32      *                                                                                                    object
   33      *                                                                                                    to
   34      *                                                                                                    register
   35      *
   36      * @param array                                                           $allowed_methods_properties list of
   37      *                                                                                                    allowed
   38      *                                                                                                    methods
   39      *                                                                                                    (empty
   40      *                                                                                                    = all)
   41      *
   42      * @param bool                                                            $format                     smarty
   43      *                                                                                                    argument
   44      *                                                                                                    format,
   45      *                                                                                                    else
   46      *                                                                                                    traditional
   47      *
   48      * @param array                                                           $block_methods              list of
   49      *                                                                                                    block-methods
   50      *
   51      * @return \Smarty|\Smarty_Internal_Template
   52      * @throws \SmartyException
   53      */
   54     public function registerObject(
   55         Smarty_Internal_TemplateBase $obj,
   56         $object_name,
   57         $object,
   58         $allowed_methods_properties = array(),
   59         $format = true,
   60         $block_methods = array()
   61     ) {
   62         $smarty = $obj->_getSmartyObj();
   63         // test if allowed methods callable
   64         if (!empty($allowed_methods_properties)) {
   65             foreach ((array)$allowed_methods_properties as $method) {
   66                 if (!is_callable(array($object, $method)) && !property_exists($object, $method)) {
   67                     throw new SmartyException("Undefined method or property '$method' in registered object");
   68                 }
   69             }
   70         }
   71         // test if block methods callable
   72         if (!empty($block_methods)) {
   73             foreach ((array)$block_methods as $method) {
   74                 if (!is_callable(array($object, $method))) {
   75                     throw new SmartyException("Undefined method '$method' in registered object");
   76                 }
   77             }
   78         }
   79         // register the object
   80         $smarty->registered_objects[ $object_name ] =
   81             array($object, (array)$allowed_methods_properties, (boolean)$format, (array)$block_methods);
   82         return $obj;
   83     }
   84 }