diff options
Diffstat (limited to 'vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md')
-rw-r--r-- | vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md b/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md deleted file mode 100644 index 6b4870b51..000000000 --- a/vendor/smarty/smarty/docs/programmers/advanced-features/advanced-features-objects.md +++ /dev/null @@ -1,99 +0,0 @@ -Objects {#advanced.features.objects} -======= - -Smarty allows access to PHP [objects](&url.php-manual;object) through -the templates. - -> **Note** -> -> When you assign/register objects to templates, be sure that all -> properties and methods accessed from the template are for presentation -> purposes only. It is very easy to inject application logic through -> objects, and this leads to poor designs that are difficult to manage. -> See the Best Practices section of the Smarty website. - -There are two ways to access them. - -- One way is to [register objects](#api.register.object) to the - template, then use access them via syntax similar to [custom - functions](#language.custom.functions). - -- The other way is to [`assign()`](#api.assign) objects to the - templates and access them much like any other assigned variable. - -The first method has a much nicer template syntax. It is also more -secure, as a registered object can be restricted to certain methods or -properties. However, **a registered object cannot be looped over or -assigned in arrays of objects**, etc. The method you choose will be -determined by your needs, but use the first method whenever possible to -keep template syntax to a minimum. - -If security is enabled, no private methods or functions can be accessed -(beginningwith \'\_\'). If a method and property of the same name exist, -the method will be used. - -You can restrict the methods and properties that can be accessed by -listing them in an array as the third registration parameter. - -By default, parameters passed to objects through the templates are -passed the same way [custom functions](#language.custom.functions) get -them. An associative array is passed as the first parameter, and the -smarty object as the second. If you want the parameters passed one at a -time for each argument like traditional object parameter passing, set -the fourth registration parameter to FALSE. - -The optional fifth parameter has only effect with `format` being TRUE -and contains a list of methods that should be treated as blocks. That -means these methods have a closing tag in the template -(`{foobar->meth2}...{/foobar->meth2}`) and the parameters to the methods -have the same synopsis as the parameters for -[`block-function-plugins`](#plugins.block.functions): They get the four -parameters `$params`, `$content`, `$smarty` and `&$repeat` and they also -behave like block-function-plugins. - - - <?php - // the object - - class My_Object { - function meth1($params, $smarty_obj) { - return 'this is my meth1'; - } - } - - $myobj = new My_Object; - - // registering the object (will be by reference) - $smarty->registerObject('foobar',$myobj); - - // if we want to restrict access to certain methods or properties, list them - $smarty->registerObject('foobar',$myobj,array('meth1','meth2','prop1')); - - // if you want to use the traditional object parameter format, pass a boolean of false - $smarty->registerObject('foobar',$myobj,null,false); - - // We can also assign objects. assign_by_ref when possible. - $smarty->assign_by_ref('myobj', $myobj); - - $smarty->display('index.tpl'); - ?> - - - -And here\'s how to access your objects in `index.tpl`: - - - {* access our registered object *} - {foobar->meth1 p1='foo' p2=$bar} - - {* you can also assign the output *} - {foobar->meth1 p1='foo' p2=$bar assign='output'} - the output was {$output} - - {* access our assigned object *} - {$myobj->meth1('foo',$bar)} - - - -See also [`registerObject()`](#api.register.object) and -[`assign()`](#api.assign). |