rfc:shortags

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:shortags [2008/04/03 20:51] – created stasrfc:shortags [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 3: Line 3:
   * Date: 2008-04-03   * Date: 2008-04-03
   * Author: Stas Malyshev <stas@php.net>   * Author: Stas Malyshev <stas@php.net>
-  * Status: Under Discussion +  * Status: Implemented in PHP 5.4 (Always available ''<?='')
- +
  
  
Line 23: Line 21:
 Last visited at <?= $lastvisit ?> Last visited at <?= $lastvisit ?>
 </code> </code>
 +
 +The second form looks much nicer and cleaner, and can be easily understood and edited by non-PHP people like graphical designers, copy editors, etc. However, to use this form, the **short_open_tag** INI setting should be enabled. When this tag is enabled, **<?** also is treated as PHP starting tag, which may be a problem for people using XML in templates, since the engine would confuse XML starting tag with PHP code start. 
 +
 +
 +==== Proposals ====
 +
 +To try and enable people to write short and nice templates, while keeping all XML folks happy, the following solutions were proposed:
  
 === Runtime short tags === === Runtime short tags ===
Line 28: Line 33:
 Make short_open_tags settable in runtime, thus allowing the template engine to turn it on when parsing template, while leaving the opportunity for the user to keep it off outside template parsing. Make short_open_tags settable in runtime, thus allowing the template engine to turn it on when parsing template, while leaving the opportunity for the user to keep it off outside template parsing.
  
-* **Pro**: Allows the setting to be controlled locally without the user needing to do any administration or configuration +  * **Pro**: Allows the setting to be controlled locally without the user needing to do any administration or configuration 
-* **Contra**: If the setting "leaks" (such as by template having an exception which is not properly caught by the engine, etc.) it may influence othe application parts and break them.+  * **Contra**: If the setting "leaks" (such as by template having an exception which is not properly caught by the engine, etc.) it may influence other application parts and break them.
  
 === Always available template tags === === Always available template tags ===
Line 35: Line 40:
 Make the tag **<?=** work even when short_open_tag is off, thus allowing nice templates without breaking the XML templates.  Make the tag **<?=** work even when short_open_tag is off, thus allowing nice templates without breaking the XML templates. 
  
-* **Pro**: Allows the nice templates to always work, while keeping XML templates working with short_open_tag being off.  +  * **Pro**: Allows the nice templates to always work, while keeping XML templates working with short_open_tag being off.  
-* **Contra**: Templates with this tag wouldn't be validated as XML, some tools may be confused by this syntax.+  * **Contra**: Templates with this tag wouldn't be validated as XML, some tools may be confused by this syntax.
  
 === Make other syntax === === Make other syntax ===
Line 42: Line 47:
 Make some other short XML-compliant syntax (such as **<?:**) to be used in templates. Make some other short XML-compliant syntax (such as **<?:**) to be used in templates.
  
-* **Pro**: Allows both XML checkers and template writers to be happy +  * **Pro**: Allows both XML checkers and template writers to be happy 
-* **Contra**: Unusual syntax not supported by 100% of tools and not familiar to 100% of users+  * **Contra**: Unusual syntax not supported by 100% of tools and not familiar to 100% of users
rfc/shortags.1207255896.txt.gz · Last modified: 2017/09/22 13:28 (external edit)