=================================================================================================== 0.9.1 version 25 june 2015 =================================================================================================== - FIX: added predefined constant $_i - loop identifier, same as $_num, but starts with 0. - FIX: "native" if, also fixes some logical errors (thanks to Nicolas Van Eenaeme) - FIX: arginfo added and a couple of other minor fixes (thanks to Anton "tony2001" Dovgal) - FIX: zephir integration fix (plain blitz::__construct declaration) =================================================================================================== 0.8.18 version 5 mar 2015 =================================================================================================== - FIX: "not" operand (!) works incorrectly with strings =================================================================================================== 0.8.17 version 24 feb 2015 =================================================================================================== - FIX: several bugfixes related to condition parsing (parse errors for old style tags, NULL objects), thanks to Nicolas Van Eenaeme =================================================================================================== 0.8.16 version 12 feb 2015 =================================================================================================== - CHANGE: big rework in condition parsing, added complex conditions support (many conditions, parentheses, new ! operator - see examples in tests/complex_conditions.phpt), thanks to Nicolas Van Eenaeme =================================================================================================== 0.8.15 version 10 feb 2015. In loving memory of Clifford Lee Burton. =================================================================================================== - FIX: a couple of memleaks and other minor fixes, thanks to Anton "tony2001" Dovgal - ADD: BEGIN statement now supports objects (see begin_object.phpt), thanks to Maurus Cuelenaere =================================================================================================== 0.8.14 version 23 oct 2014 =================================================================================================== - FIX: _parent._predefined_var syntax was fixed (bug #329), thanks to Anton "tony2001" Dovgal - FIX: _parent._parent issues inside IF/UNLESS nodes were fixed, thanks to Anton "tony2001" Dovgal - FIX: minor compilation issues were fixed, thanks to Alex Sladkov =================================================================================================== 0.8.13 version 29 aug 2014 =================================================================================================== - FIX: bugs in expressions fixed, string varibles comparison didn't work properly (bug#327) - ADD: get_tokens() function was added (thanks to Dmitry Saprykin). This function returns template structure with lots of details in just one big array, and should be easier to use than old get_struct/dump_struct functions. =================================================================================================== 0.8.12 version 25 aug 2014 =================================================================================================== - FIX: $_top and $_parent magic variables work in callbacks =================================================================================================== 0.8.11 version 7 aug 2014. С днём Спецсвязи ФСО! =================================================================================================== - FIX: critical memory corruption fix. Incorrect array looping in 0.8.10 could lead to crazy behaviour: undefined constants that were previously defined, disappearing values that were set before et cetera. Thanks to Antony "tony2001" Dovgal and the Badoo Features Team. =================================================================================================== 0.8.10 version 4 july 2014. С днём незави... не, с прошедшим днём ГИБДД! =================================================================================================== - ADD: new magic variables $_top and $_parent, referencing parent and first-in-the-list iteration parameters, thanks to Nicolas Van Eenaeme - FIX: namespace separators work in callbacks properly {{ [\]Space\Class::bla() }} =================================================================================================== 0.8.9 version 28 may 2014. С днём пограничника! =================================================================================================== - FIX: looping through a list of objects, accessing their attributes; thanks to Nicolas Van Eenaeme, patches were taken from https://gist.github.com/poison/27e1ffb71fc682ee4ec4) - FIX: objects were always "empty" in expressions, now it's empty only when no attributes (bug#321); thanks to Nicolas Van Eenaeme - FIX: deep nesting loop with overlapping wasn't working properly (bug#320) - ADD: experimental magic variable $_ to access current iteration parameters; thanks to Kostya "fixxxer" Baryshnikov (bug#183) =================================================================================================== 0.8.8 version 25 march 2014 =================================================================================================== - FIX: fix glorious crash for very short template body lengths (smaller than any tag length) =================================================================================================== 0.8.7 version 12 june 2013 =================================================================================================== - FIX: null works properly in expressions (bug#316) - FIX: large pieces of commented code work fine with no "lexem is too long" error - CHANGE: alternative close tag was changed from " -->" to "-->" (first space was removed) =================================================================================================== 0.8.6 version 22 nov 2012 =================================================================================================== - ADD: template syntax warning when begin/if/unless wasn't closed with end =================================================================================================== 0.8.5 version 7 nov 2012. Пролетарии всех стран, соединяйтесь! ;) =================================================================================================== - FIX: increased lookup scope stack size, fixed crash when iteration set is too high, added a special warning for deep iteration sets. =================================================================================================== 0.8.4 version 19 oct 2012 =================================================================================================== - FIX: fix escaping for non-UTF charsets. No we rely on default_charset ini-variable. =================================================================================================== 0.8.3 version 10 oct 2012. Всех со всемирным днем психического здоровья! =================================================================================================== - ADD: cleanGlobals function was added, thanx to fixxxer - ADD: new variable filter nl2br was added. With this filter variable is always pre-escaped. =================================================================================================== 0.8.2 version 18 june 2012. =================================================================================================== - FIX: fixed parsing error with comments enabled and long custom comments tags (bug#310) =================================================================================================== 0.8.1 version 4 june 2012. Finally stable! =================================================================================================== - FIX: parsing error fixed (incorrect code fragment breaks next correct one) - FIX: array-to-string conversion for variables doesn't add "Array" string to the output and shows human readable warning =================================================================================================== 0.7.2-devel =================================================================================================== - CHANGE: return last error with new getError() method - CHANGE: load returns FALSE if error occured - CHANGE: throw exceptions with warnings when blitz.throw_exceptions = 1 (0 by default) - FIX: parsing error fixed (usually affected closing tags with spaces before it) - FIX: global warnings clean-up =================================================================================================== 0.7.1.16-devel 9 may 2012. С праздником, товарищи! Бей фашистскую сволочь. =================================================================================================== This is very first release with HTML output escaping. Please note that internal html extension was improved in 5.4.0 and some features don't work in prior versions - mainly, substitution of disallowed unicode chars. Thus some tests should fail if you have PHP version < 5.4.0. - CHANGE: basic filters support was added: {{ $var | filter }}, only "raw" and "escape" filters are supported and only for variables [#70] - CHANGE: automatic output filtering is enabled with blitz.auto_escape = 1, 0 by default) [#70] - CHANGE: blitz.charset global was removed (engine should use default PHP charset) [#70] - FIX: incorrect $-prefixed variables throw errors [bug#307] =================================================================================================== 0.7.1.15-devel 21 mar 2012. С днём весеннего равноденствия! =================================================================================================== - FIX: improved performance by removing unnecessary strlen call in internal blitz_exec_var and blitz_exec_var_path functions - FIX: fixed compilation error for PHP 5.4.* =================================================================================================== 0.7.1.14-devel 11 mar 2012. С днём работника органов наркоконтроля, и днём работников геодезии и картографии! =================================================================================================== - FIX: expressions didn't work properly with globals, undefined variables and constants - CHANGE: VERY IMPORTANT! old setting "blitz.disable_include" (0 by default) was replaced by new "blitz.enable_include" (1 by default) - ADD: news settings were added: * blitz.enable_callbacks - enables callbacks, PHP or user-defined * blitz.enable_php_callbacks - enables just PHP callbacks * blitz.php_callbacks_first - set highest priority to PHP callbacks when it's unclear if it's PHP callback or template object callback - FIX: max tag content length was increased from 128 to 512 bytes =================================================================================================== 0.7.1.13-devel 9 dec 2011. =================================================================================================== - CHANGE: various fixes for expressions support in IF/ELSEIF/ELSE/ULNESS statements. =================================================================================================== 0.7.1.12-devel 13 nov 2011. С днём войск радиационной, химической и биологической защиты! =================================================================================================== - CHANGE: added simple expressions support for IF/ELSEIF/ULNESS statements. =================================================================================================== 0.7.1.11-devel 19 apr 2011 =================================================================================================== - FIX: segfault for tricky nested includes (bug#284). - FIX: lowercasing for methods can be suppressed by a new variable blitz.lower_case_method_names. By default, blitz.lower_case_method_names = 1 (bug#286). - FIX: if with empty agrument causes syntax error (bug#287). - CHANGE: new docs were added into the package. =================================================================================================== 0.7.1.10-devel 12 apr 2011. С 50-летием полёта человека в космос! =================================================================================================== - FIX: all floats were "false" in conditions. - FIX: segfault for deep nested includes and non-zero blitz.scope_lookup_limit. - FIX: minor leaks in the include method. - FIX: timelib functions were moved away (fixes famous "undefined symbol: timelib_time_ctor" issue). - CHANGE: since now PHP4 is not supported anymore. This basically means that I won't break anything just to have shiny OOP shit, and everything should work as usual, but I won't test PHP4 compilation and won't fix related bugs. Nuff said. - CHANGE: prepared the parser to use simple expressions. Just parser, not executor. This may cause strange behaviour: when you put valid expressions in IF/ELSE statements they neither work as expressions nor throw warnings. How this still works: just first argument is checked to be non-empty. Example: {{ IF $a < 0 }} is still equivalent to {{ IF $a }}. =================================================================================================== 0.7.1.1-devel -> 0.7.1.9-devel =================================================================================================== This was very new version with a lot of changes, optimizations and cleanups. I could even forgot to mention something below. Please, be careful using these versions in production. - CHANGE: new parser, analyzer and executor - ADD: context scope is increased now if blitz.scope_lookup_limit is set positive number. This number controls the deep - number of total hash-lookups from child to parent. - ADD: comments were added (/* put comments in these tags */, you have to enable it with blitz.enable_comments and redefine these tags using blitz.tag_comment_open/blitz.tag_comment_close) - ADD: IF/UNLESS were extended by ELSEIF/ELSE syntax - ADD: More flexible method caller that allows plugins. Having {{ do($some) }} there is an internal method check. If class method with the same name exists - this method is called. If not - caller executes this function as any other PHP function. Now you are totally free to use any PHP function calls from Blitz templates. {{ SomeCoolPlugin::func($some) }} works as well. You can use hints to tell blitz what do exactly: {{ php::do($some) }} calls php function do(), {{ this::do() }} calls do() method. - CHANGE: blitz.remove_spaces_around_context_tags is 1 by default (this removes empty lines around your tags by default, be careful) - CHANGE: blitz.path for Windows-like systems fixed ("C:\dir\" paths) - FIX: MS WINDOWS compilation - FIX: syntax error position was wrong for mostly all error messages - CHANGE: max length of any string between open/close (limited by BLITZ_MAX_LEXEM_LEN = 128) bytes (was 1024) - CHANGE: block nesting is limited by BLITZ_ANALIZER_NODE_STACK_LEN = 64 - FIX: all function calls in templates are str_lower'ed correctly (was: only functions without brackets) =================================================================================================== 0.6.10 version 20 nov 2009 =================================================================================================== FIX: hasContext() and fetch() methods correctly find contexts masked by IF/UNLESS blocks, related bugs: #255, #260 FIX: possible double free crash for includes was fixed (bug #257) =================================================================================================== 0.6.9 version 19 oct 2009 =================================================================================================== FIX: "blitz.warn_context_duplicates" checking could cause coredumps (patch by Anton Dovgal) =================================================================================================== 0.6.8 version 13 march 2009 =================================================================================================== - New ini-variable "blitz.check_recursion" was added. Use this setting to disable internal recursion check for recursive includes (for example, when building hierarchical comment tree using template which includes itself). See bug #248 for details. - Segfault in nested includes with user-defined functions was fixed (in some cases there could be a double free of method result at shutdown stage). See bug #245 for detais. =================================================================================================== 0.6.7 version 29 january 2009 =================================================================================================== - Infinite include loops checking was added (bug #241) - blitz.path global should work fine with Windows-like systems ("C:\dir\" paths) - Block method now affects contexts hidden by IF/UNLESS (bug #211) - getStruct() returnes IF/UNLESS nodes correctly (bug #230) - Internal method "unless" was added - an opposite pair to "if" =================================================================================================== 0.6.6 version 11 january 2009. С новым годом! =================================================================================================== - New methods "assign" and "display" were added: "assign" is just the same as "set", and "display" executes template and outputs the result. $View->display($vars) is equal to echo $View->parse($vars). - New ini-variable "blitz.warn_context_duplicates" was added. When it's set to 1 (default is 0) =================================================================================================== 0.6.4 version 17 october 2008 =================================================================================================== - Variable prefix can be set to empty value by ini_set (bug #109) - Predefined vars are outputted in single line if statement (bug #221) =================================================================================================== 0.6.3 version 13 october 2008 =================================================================================================== - Predefined, global and boolean vars were fixed in IF/UNLESS multi-line blocks (bugs #196, #213) - Segfault fixed when setting array(NULL) value and setting anything else after (bug #225) =================================================================================================== 0.6.2 version 15 august 2008 =================================================================================================== - Path-variables ($object.property and $hash.key) in IF/UNLESS multi-line blocks were fixed and corresponding tests were improved. - Minor win32-compilation fixes were made. =================================================================================================== 0.6.1 version 14 july 2008 =================================================================================================== Finally new 0.6 branch was started. Blitz will have a number of "heavy" features suggested by users during last years. Well, better late than never! - IF/UNLESS multi-line blocks were added. The primary goal was to help users with usual header/footer/empty pattern. Now one can just use the following syntax: {{ IF list }} {{ BEGIN list }} {{ END }}
{{ $some }}
{{ END }} {{ UNLESS list }} Fuck it, Dude, let's go bowling {{ END }} - fixed bug with removing spaces around context tags (ticket #181) =================================================================================================== 0.5.13 version 30 may 2008 =================================================================================================== - internal methods policy was corrected, only two methods are restricted in user methods and templates: load and parse. This fixes bugs 116, 115 =================================================================================================== 0.5.12 version 9 May 2008. С праздником, товарищи! Бей фашистскую сволочь. =================================================================================================== - blitz.remove_spaces_around_context_tags = 1 removes extra whitespaces around standalone context tags (0 by default) =================================================================================================== 0.5.11 version 28 Feb 2008 =================================================================================================== fixed bugs: - dynamic included file contexts do not parse (ticket #112) - cannot successfully load php string from blitz subclass (ticket #111) - including template with filename as name of variable {{ include($var) }} (ticket #104) - string variables '0' or "0" are not false (ticket #99) - unzipped source should be blitz-[$VERSION], not blitz (ticket #106) =================================================================================================== 0.5.10 version 25 Jan 2008 =================================================================================================== - fixed segfault on specific iteration sequences which use a mix of normal and simplified forms of set params (ticket #95) - make non-prefixed "path"-varibles (obj.property or arr.key) work correctly in method calls (ticket #92) - minor fixes to remove compilation warnings - minor fixes in error messages =================================================================================================== 0.5.9 version 10 Jan 2008 =================================================================================================== - "safety" patch by Konstantin Baryshnikov (ticket #85) - blitz.disable_include = 1 disables include in templates (0 by default) - disallow calling internal methods from templates i.e. {{ parse() }} - variables can be used without var_prefix in method calls (ticket #91) i.e. {{ do(something) }} is equal to {{ do($something) }} - fixed boolean predicate in if statement - minor changes in docs =================================================================================================== 0.5.8 version 23 Nov 2007 =================================================================================================== - bug#83 fixed, double free on include (tony) - disallow double Blitz object initialization, test added (tony) - english documentation was updated: sample fixes, getGlobals, getContext, getIterations, getStruct, predefined variables in loops $_even/$_odd/etc, $object.property/$hash.key variables (fisher) =================================================================================================== 0.5.7 version 18 Oct 2007 =================================================================================================== Bug & memleak fixes by Antony Dovgal =================================================================================================== 0.5.7-devel version 15 Oct 2007 =================================================================================================== Code clean-up: a part of "static" template structure (which doesn't depend on iterations) was put into a separate attrubute called "static_data". This will help with caching issues in the future. =================================================================================================== 0.5.6 version 24 Sent 2007 =================================================================================================== Bug#80 (if works incorrectly with undefined vars as predicate) was fixed. =================================================================================================== 0.5.5 version 29 August 2007 =================================================================================================== Lots of code cleanup was done. Experimental pack support was removed. Reading templates by mmap was switched off by default. =================================================================================================== 0.5.4 version 20 August 2007 =================================================================================================== Segfault when accessing uninitialized memory was fixed (bug#76). =================================================================================================== 0.5.3 version 20 August 2007 =================================================================================================== Variable path ($hash.key.whatever.else, $obj.property.whatever.else) support was added. Each '.' points to a hash->value or object->property relation, both can be mixed in any way in varible path. This should work for any variable, global and local, in any place including user/predefined method arguments. Therefore setGlobals/set_globals may accept non-scalar key values to make things like $config.param work, so optional second parameter warn_non_scalar became obsolete and was removed. See examples in tests/var_path.phpt. Tests were updated, they should work correctly in any environment (there were problems with file paths in previous versions). =================================================================================================== 0.5.2 version 16 August 2007 =================================================================================================== TS & Win32 compilation fixes. Iniitialization varible 'blitz.path' support was added. When is't not empty all the filenames will be prefixed by this value if filename doesn't start with '/'. =================================================================================================== 0.5.1 version 12 August 2007 =================================================================================================== Lots of code cleanup was done. "parse" and "include" methods were improved, their "vars" argument is not a globals array anymore (old API), now it's just an arbitrary iteration set and both methods comply with set/block/fetch. Templates included by "include" method from PHP code inherit globals from caller automatically. Corresponding tests were updated. A new article was added to the docs, "Quick Geek Blitz Tutorial", which is addressed to those professionals who want to get maximum information about API in a minimum of time. =================================================================================================== 0.4.25 version 03 August 2007 =================================================================================================== Predefined loop variables were added: $_total, $_num, $_even, $_odd, $_first, $_last - they can be used in any context. Variable $_total is the total number of context iterations, $_num is the current iteration number starting with 1, $_even and $_odd are 1 when the current iteration is even or odd and 0 otherwise, $_first and $_last are 1 when the current iteration is first or last and 0 otherwise. Fixed bug#68 (nonexistant context iteration "cleans" previous data set in the root iteration). Fixed bug#69 (problems with date() function tests and optional second parameter). =================================================================================================== 0.4.24 version 28 July 2007 =================================================================================================== Predefined include method was improved: any include from template will use internal template cache (in previos versions this cache worked for controller include method only). "Context" method returns current context path, and new getContext/get_context method was added for the same purpose. Additional minor fixes were made, most of them related to win32 and multi-threaded issues. Some tests were updated and new tests were added. =================================================================================================== 0.4.23 version 22 July 2007 =================================================================================================== Very important include-related changes were made. A template included by the "include" directive (not include method) will inherit current context iterations. When you set array('test' => array('var' => 'value')) into the root context of a template which includes another template with a context named 'test', this 'test 'context will be iterated with params from the parent template. To make this work properly, one have to use an additional non-empty parameter "iterate_nonexistant" (TRUE, 1, 'Yes' - whatever) in parent "iterate" or "block" calls, because normally non-existant contexts are not iterated since 0.4.20 (otherwise iterating non-existant contexts will automatically iterate the whole path). See tests/include_ctx.phpt for example. Additionally if we have a mix of numerical and non-numerical keys in iteration set a warning will be generated and non-numerical keys will be skipped. Several new tests were added and other minor fixes were made. =================================================================================================== 0.4.22 version 12 July 2007 =================================================================================================== Block method semantics was extended: one can use block($data) instead of block(NULL,$data) to iterate current context. Set method can accept arrays with numerical keys to set several root iterations simultaneously. Basic template examples were added to php_info(). A couple of new tests were added. =================================================================================================== 0.4.21 version 09 July 2007 =================================================================================================== Minor fetch bugfixes were made. =================================================================================================== 0.4.20 version 08 July 2007 =================================================================================================== Starting from this version Blitz "officially" supports lite variables assigning. One had to use a "list" of arrays (array with numerical keys and array values) to set context iterations in previous versions. Now it's possible to use a "hash" of scalar/array values (array with string keys for variables or block iterations) for a single iteration - this makes the code much more clear. To have a single iteration of a context named "block", assigning a variable $var = "value", one can just say $data['block']['var'] = 'value' and then $View->set($data). This also worked in previos versions but in some cases like fetch this caused a segfault - now it's fixed. Additionally two minor bugs were fixed: current path is not iterated when iterating a nonexistent path, and there is no first empty iteration when the whole template is iterated cyclically by a root path '/'. =================================================================================================== 0.4.19 version 03 July 2007 =================================================================================================== New API methods getIterations/get_iterations and getGlobals/get_globals were added to get assigned template variables. Method alias setGlobals/set_globals for setGlobal/set_global was added to improve naming style (setGlobal/set_global still works). A bug in getStruct was fixed: nodes with errors are not returned. Alternative tags "" were extended by additional whitespace, new values are "" (please convert your templates if you were using something like ""). =================================================================================================== 0.4.18 version 23 June 2007 =================================================================================================== Bug #44 (naming conflicts) was fixed. getStruct()/get_struct() method was added to extend php_templates compatibility (getStruct method is a partial analog for the tmpl_structure function from php_templates extension, see samples/get_struct.php). =================================================================================================== 0.4.17 version 25 May 2007 =================================================================================================== Minor template parsing fixes were made (bugs## 40,41). =================================================================================================== 0.4.16 version 12 May 2007 =================================================================================================== Minor template parsing fixes were made. =================================================================================================== 0.4.15 version 1 May 2007. С праздником, товарищи! Коси и забивай. =================================================================================================== A segfault which occurred when undefined variables were used in output wrapper was fixed. Minor changes in tests and examples were made. =================================================================================================== 0.4.14 version 28 Apr 2007 =================================================================================================== Documentation was updated. Minor php_templates compability fix: function calls without brackets are treated as variables with the same name by default. =================================================================================================== 0.4.13 version 1 Apr 2007 =================================================================================================== Minor fixes in output wrappers were made (template syntax check was corrected, ENT_NOQUOTES support added to "escape" method, default time for "date" method is current time). Corresponding tests were updated. =================================================================================================== 0.4.12-1 version 31 Mar 2007 =================================================================================================== A segfault which occurred when variables are set into root context after clean/fetch operations was fixed. =================================================================================================== 0.4.12 version 31 Mar 2007 =================================================================================================== changes in "clean" method were made: - "clean" removes all context iterations, not the latest one - "clean" accepts second boolean parameter which says if blitz will throw PHP-warnings when cleaning iteration is not found: $View->clean($path = '/', $warn_notfound = TRUE). This parameter is TRUE by default. Win32 compilation fixes (php_var_dump, php_parse_date) =================================================================================================== 0.4.11 version 25 Mar 2007 =================================================================================================== A new output wrapper "date" was added: {{ date([FORMAT], $arg); }} will return a string formatted according to the given format string. When $arg is numerical, it is treated as UNIX timestamp integer. Otherwise $arg is parsed using internal PHP function "php_parse_date" which recognize a lot of date formats. Format string has the same conversion specifiers as PHP function "strftime". Output wrapper "escape" was extended: {{ escape($arg) }} will use ENT_QUOTES quoting style by default, while {{ escape($a, "ENT_COMPAT") }} will use ENT_COMPAT. =================================================================================================== 0.4.10 version 19 Mar 2007 =================================================================================================== - Clean method was added: $Tpl->clean($path) cleans up context iterations and parameters which were made previously. Parameter $path is "root" by default ('/'): $Tpl->clean() with no parameter will unset all template varibales and iterations. - Minor parsing fixes were made (long HTML comments treated as alternative tags could cause "lexem is too long" warning since 0.4.4 version). =================================================================================================== 0.4.9. version 17 Mar 2007 =================================================================================================== - minor parsing fixes were made (context name for alternative END-tag is optional without any syntax warning) =================================================================================================== 0.4.8. version 13 Mar 2007 =================================================================================================== - non-brackets format method fix: {{ test }} =================================================================================================== 0.4.7 version 11 Mar 2007 =================================================================================================== - segfault on alternative context parsing fixed (HTML comments started with non-alpha-numeric characters) =================================================================================================== 0.4.6 version 27 Feb 2007 =================================================================================================== - syntax warning for HTML comments in alternative context format mode ( ... ) was fixed =================================================================================================== 0.4.5 version, 25 Feb 2007 =================================================================================================== - internal escape output wrapper was added: {{ escape($a); }}, escape($a) works exactly like htmlspecialchars($a, ENT_QUOTES); =================================================================================================== 0.4.4 version, 11 Feb 2007 =================================================================================================== - [VERY IMPORTANT] lower/upper case policy changed. varible and context names are case sensitive, method names - not. - commonly used context format compatibility added: ... - other minor fixes =================================================================================================== 0.4.3 version, 10 Dec 2006 =================================================================================================== - bugfix#11: warning when calling undefined user method from template - feature request#1: logical values in templates - feature request#2: END tag can be followed by any text {{ END some_template_name }} - bugfix#10: win32 compilation errors =================================================================================================== 0.4.2 version, 27 Nov 2006 =================================================================================================== - bugfix #3: occasionally uninitialized pargs element in user method call - bugfix #7: occasionally uninitialized parent_ctx_data in blitz_exec_nodes - fetch: cleans-up latest iteration automatically =================================================================================================== 0.4.1 version =================================================================================================== - several context/iterate fixes (logical, very important Dick's issues) - added has_context function - removed dump_set function (dump_iterations can be used instead) - removed pack-features for win32 (this code needs to be rewritten) - OOP-style function aliases dumpStruct, dumpIterations, hasContext, setGlobal - new tests added, all tests are compatible with PHP5 now - ini-params renamed, they are: var_prefix, tag_open, tag_close ("tag", not "node") - case insensitivity for contexts added - non-string objects returning from user methods are converted to strings - my_method() is a valid call now (nothing in brackets) - load(NULL) segfault fixed - passing wrong parameters to iterate/parse (arrays are of wrong format) fixed - dynamical realloc in blitz_analyze (segfault on big templates fix) - segfaults on user method calling (method throws an exception, returned value corruption) - empty template is not analyzed, and no warning is shown - line/number border-value fixes in error messages - TSRM-related & win32 compilation fixes - clean-up of passing arguments to user methods corrected =================================================================================================== 0.4.0 version =================================================================================================== - context-related functionality added (context, iterate, block, fetch, set_globals) - human-readable errors (syntax, internal etc) - dump functions for debugging: dump_struct, dump_set, dump_iterations - T-cache (packed templates)