aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/docs/features.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/docs/features.md')
-rw-r--r--vendor/smarty/smarty/docs/features.md152
1 files changed, 0 insertions, 152 deletions
diff --git a/vendor/smarty/smarty/docs/features.md b/vendor/smarty/smarty/docs/features.md
deleted file mode 100644
index 8405b46eb..000000000
--- a/vendor/smarty/smarty/docs/features.md
+++ /dev/null
@@ -1,152 +0,0 @@
-Features
-=======
-
-Some of Smarty's features:
-- It is extremely fast.
-- It is efficient since the PHP parser does the dirty work.
-- No template parsing overhead, only compiles once.
-- It is smart about [recompiling](#variable.compile.check) only the
- template files that have changed.
-- You can easily create your own custom
- [functions](#language.custom.functions) and [variable
- modifiers](#language.modifiers), so the template language is
- extremely extensible.
-- Configurable template [{delimiter}](#variable.left.delimiter) tag
- syntax, so you can use `{$foo}`, `{{$foo}}`, `<!--{$foo}-->`, etc.
-- The [`{if}..{elseif}..{else}..{/if}`](#language.function.if)
- constructs are passed to the PHP parser, so the `{if...}` expression
- syntax can be as simple or as complex an evaluation as you like.
-- Allows unlimited nesting of
- [`sections`](#language.function.section), `if's` etc.
-- Built-in [caching](#caching) support
-- Arbitrary [template](#resources) sources
-- [Template Inheritance](#advanced.features.template.inheritance) for
- easy management of template content.
-- [Plugin](#plugins) architecture
-
-## Separation of presentation from application code
-- This means templates can certainly contain logic under the condition
- that it is for presentation only. Things such as
- [including](./designers/language-builtin-functions/language-function-include.md) other templates,
- [alternating](./designers/language-custom-functions/language-function-cycle.md) table row colors,
- [upper-casing](./designers/language-modifiers/language-modifier-upper.md) a variable,
- [looping](./designers/language-builtin-functions/language-function-foreach.md) over an array of data and
- rendering it are examples of presentation logic.
-- This does not mean however that Smarty forces a separation of
- business and presentation logic. Smarty has no knowledge of which is
- which, so placing business logic in the template is your own doing.
-- Also, if you desire *no* logic in your templates you certainly can
- do so by boiling the content down to text and variables only.
-
-## How does it work?
-
-Under the hood, Smarty "compiles" (basically copies and converts) the
-templates into PHP scripts. This happens once when each template is
-first invoked, and then the compiled versions are used from that point
-forward. Smarty takes care of this for you, so the template designer
-just edits the Smarty templates and never has to manage the compiled
-versions. This approach keeps the templates easy to maintain, and yet
-keeps execution times extremely fast since the compiled code is just
-PHP. And of course, all PHP scripts take advantage of PHP op-code caches
-such as APC.
-
-## Template Inheritance
-
-Template inheritance was introduced in Smarty 3. Before template
-inheritance, we managed our templates in
-pieces such as header and footer templates. This organization lends
-itself to many problems that require some hoop-jumping, such as managing
-content within the header/footer on a per-page basis. With template
-inheritance, instead of including other templates we maintain our
-templates as single pages. We can then manipulate blocks of content
-within by inheriting them. This makes templates intuitive, efficient and
-easy to manage. See
-[Template Inheritance](./programmers/advanced-features/advanced-features-template-inheritance.md)
-for more info.
-
-## Why not use XML/XSLT syntax?
-There are a couple of good reasons. First, Smarty can be used for more
-than just XML/HTML based templates, such as generating emails,
-javascript, CSV, and PDF documents. Second, XML/XSLT syntax is even more
-verbose and fragile than PHP code! It is perfect for computers, but
-horrible for humans. Smarty is about being easy to read, understand and
-maintain.
-
-## Template Security
-Although Smarty insulates you from PHP, you still have the option to use
-it in certain ways if you wish. Template security forces the restriction
-of PHP (and select Smarty functions.) This is useful if you have third
-parties editing templates, and you don't want to unleash the full power
-of PHP or Smarty to them.
-
-## Integration
-Sometimes Smarty gets compared to Model-View-Controller (MVC)
-frameworks. Smarty is not an MVC, it is just the presentation layer,
-much like the View (V) part of an MVC. As a matter of fact, Smarty can
-easily be integrated as the view layer of an MVC. Many of the more
-popular ones have integration instructions for Smarty, or you may find
-some help here in the forums and documentation.
-
-## Other Template Engines
-Smarty is not the only engine following the *"Separate Programming Code
-from Presentation"* philosophy. For instance, Python has template
-engines built around the same principles such as Django Templates and
-CheetahTemplate. *Note: Languages such as Python do not mix with HTML
-natively, which give them the advantage of proper programming code
-separation from the outset. There are libraries available to mix Python
-with HTML, but they are typically avoided.*
-
-## What Smarty is Not
-
-Smarty is not an application development framework. Smarty is not an
-MVC. Smarty is not an alternative to Laravel, Symfony, CodeIgniter,
-or any of the other application development frameworks for PHP.
-
-Smarty is a template engine, and works as the (V)iew component of your
-application. Smarty can easily be coupled to any of the engines listed
-above as the view component. No different than any other software,
-Smarty has a learning curve. Smarty does not guarantee good application
-design or proper separation of presentation, this still needs to be
-addressed by a competent developer and web designer.
-
-## Is Smarty Right for Me?
-
-Smarty is not meant to be a tool for every job. The important thing is
-to identify if Smarty fits your needs. There are some important
-questions to ask yourself:
-
-### Template Syntax
-Are you content with PHP tags mixed with HTML? Are your
-web designers comfortable with PHP? Would your web designers prefer a
-tag-based syntax designed for presentation? Some experience working with
-both Smarty and PHP helps answer these questions.
-
-### The Business Case
-Is there a requirement to insulate the templates from
-PHP? Do you have untrusted parties editing templates that you do not
-wish to unleash the power of PHP to? Do you need to programmatically
-control what is and is not available within the templates? Smarty
-supplies these capabilities by design.
-
-## Feature set
-Does Smarty's features such as caching, template
-inheritance and plugin architecture save development cycles writing code
-that would be needed otherwise? Does the codebase or framework you plan
-on using have the features you need for the presentation component?
-
-## Sites using Smarty
-Many well-known PHP projects make use of Smarty such as XOOPS CMS, CMS Made Simple, Tiki
-CMS/Groupware and X-Cart to name a few.
-
-## Summary
-Whether you are using Smarty for a small website or massive enterprise
-solution, it can accommodate your needs. There are numerous features
-that make Smarty a great choice:
-
-- separation of PHP from HTML/CSS just makes sense
-- readability for organization and management
-- security for 3rd party template access
-- feature completeness, and easily extendable to your own needs
-- massive user base, Smarty is here to stay
-- LGPL license for commercial use
-- 100% free to use, open source project