Compare commits

..
153 Commits
Author SHA1 Message Date
Simon Wisselink 0750fd7f1e Some more missed commits 2023-08-08 00:00:20 +02:00
Simon Wisselink 3750c644a5 Missed part of commit a3cbdc46 in the merge 2023-08-07 23:49:24 +02:00
Simon Wisselink 515c14b24f Missed part of commit e7516556 in the merge. 2023-08-07 23:44:08 +02:00
Simon Wisselink 077df8a771 remove docs from 'all' to prevent CI build from failing 2023-08-07 23:28:21 +02:00
Simon Wisselink 7a6cbca7e4 Merge branch 'master' into smarty5 2023-08-07 23:25:59 +02:00
Simon Wisselink dc46052aa7 fix template invalidation when migrating to 5.0 2023-08-07 16:22:54 +02:00
Simon Wisselink 92736c1cba updated todos 2023-08-07 16:00:16 +02:00
Simon Wisselink 90bb78f32d Added Smarty::setExtensions(), fixed unit test for the null coalescing operator. Updated docs about registering a custom extension. 2023-08-07 15:59:13 +02:00
Simon Wisselink d8b4496b7e finished docs on security and extending smarty 2023-08-07 01:44:57 +02:00
Simon Wisselink 8492bf5c61 Docs on caching 2023-08-07 00:14:54 +02:00
Simon Wisselink 019fe3f5e7 Add makefile entries for generating docs 2023-08-06 01:09:50 +02:00
Simon Wisselink 86b7d45399 Rewrote docs on filters and resources. 2023-08-06 01:09:31 +02:00
Simon Wisselink 4550bd8dfd Improved docs on compile checking and inheritance 2023-05-03 23:34:44 +02:00
Simon Wisselink 41962d5790 more docs 2023-05-02 01:17:12 +02:00
Simon Wisselink f7868b4ff1 Add docs for null coalescing 2023-05-01 23:57:53 +02:00
Simon Wisselink e99d2fae39 Added support for null coalescing operator
Fixes #882
2023-05-01 23:54:25 +02:00
Simon Wisselink 7fa8db3bc1 fixed error in the mkdocs TOC 2023-05-01 23:44:32 +02:00
Simon Wisselink b972bb5e72 updated changelog 2023-05-01 23:40:43 +02:00
Simon Wisselink 81cda9e363 Added full support and documentation for ternary operator.
Fixes #881
2023-05-01 23:25:42 +02:00
Simon Wisselink cea303d0ad Fixed markdown syntax. Fixes #879 2023-04-30 23:28:15 +02:00
Simon Wisselink d8ce15ee9b WIP docs (added page on config) 2023-03-24 11:52:18 +01:00
Simon Wisselink 1afd49e973 WIP on API docs 2023-03-10 23:49:41 +01:00
Simon Wisselink f4b94d4f03 Updated changelog and todo list 2023-03-09 23:17:09 +01:00
Simon Wisselink 5db8fd2533 Further WIP improving docs 2023-03-09 23:16:18 +01:00
Simon Wisselink 7a323b7345 Update code examples to use Smarty\Smarty and autoload instead of require_once calls and new Smarty 2023-02-06 15:18:47 +01:00
Simon Wisselink cf84802072 Finished improving designers docs 2023-02-06 14:56:06 +01:00
Simon Wisselink 4c6afd6b37 Improved another chunk of the designers docs 2023-02-06 14:55:07 +01:00
Simon Wisselink 833ba57d42 WIP improving the docs 2023-02-06 14:53:25 +01:00
Simon Wisselink 15d3968114 fixes to docs 2023-02-06 14:50:24 +01:00
Simon Wisselink 9c610e6e62 multiversion mkdocs config 2023-02-03 22:27:18 +01:00
Simon Wisselink 55ebb4efea Revert latest CI changes, we'll update docs by hand for now 2023-02-03 22:10:49 +01:00
Simon Wisselink ded3e12c1c add missing folder for unit tests 2023-02-03 17:56:49 +01:00
Simon Wisselink e6360694bf Add mkdocs for docs 2023-02-03 17:54:00 +01:00
Simon Wisselink 6c601e1b6c updated todo 2023-02-03 17:20:43 +01:00
Simon Wisselink 864643f2c9 remove additional calls to getCached() 2023-02-03 17:11:26 +01:00
Simon Wisselink 7408c18cdc WIP for performance improvements.
Removed $smarty->_current_file and $smarty->allow_ambiguous_resources properties, both unused. Removed public Source::filepath property.
Cached an Compiled files (and Exceptions) no longer rely on the filepath being set. Removed explicit tests for cached and compiled filenames. The exact implementation is not important. Added tests for compile_check property, fixing a file_exists check that would always be done on source template files, even when compile_check was true. Remove code duplication between Source en Config classes. Added a local $_smarty_current_dir to the generated code files for backwards compatability for {$smarty.current_dir}.
2023-02-03 15:50:31 +01:00
Simon Wisselink cd158566d0 Load compiled object in template constructor so it will be cached. 2023-01-31 14:48:41 +01:00
Simon Wisselink 0b2eae3137 Move all creating of templates to Smarty::createTemplate, adding a private property containing previously generated templates for speed. 2023-01-31 14:02:34 +01:00
Simon Wisselink 9e35cce3f8 Fix error in docs on prepend/append. Fixes #818. 2023-01-31 11:23:50 +01:00
Simon Wisselink 016c9ceb17 Generated <script> tags lo longer have deprecated type="text/javascript" or language="Javascript" attributes.
Fixes #815.
2023-01-31 11:17:41 +01:00
Simon Wisselink 6635a5e3fb Smarty no longer calls mb_internal_encoding() and doesn't check for deprecated mbstring.func_overload ini directive.
Fixes #480.
2023-01-31 10:53:10 +01:00
Simon Wisselink 1ef29b65ea move test methods because some other test methods rely on their relative positions 2023-01-31 10:52:56 +01:00
Simon Wisselink b4019b6023 Add test for registering compiler plugin with positional params. Fixes #164 2023-01-31 10:41:09 +01:00
Simon Wisselink 0962a34670 verify that native PHP functions cannot be used as a modifier and verify that an easy userland workaround exists. Fixes #813. 2023-01-31 10:10:32 +01:00
Simon Wisselink 18a8068df1 Throw compile error when using a modifier where it won't work. Fixes #526. 2023-01-31 09:54:44 +01:00
Simon Wisselink af316e661c 4.0.2 of smarty-lexer is released, use that 2023-01-29 21:57:10 +01:00
Simon WisselinkandGitHub 8a2ed9446a Update composer packages cache key
Update composer packages cache key to trigger refresh on lexer
2023-01-28 10:44:01 +01:00
Simon Wisselink 39dad96601 Run make regardless of timestamps, so we are sure unit tests run with the generated PHP code, not with accidental human made changes to Lexer/Parser. 2023-01-26 13:03:04 +01:00
Simon Wisselink c47756b489 Re-organized rendering (read source / compile / cache) process to avoid circular dependencies. 2023-01-26 12:58:15 +01:00
Simon Wisselink 047b73d4a1 Pushed Lexers/Parsers into VCS again in order to be able to deliver using Packagist/Composer 2023-01-26 12:57:46 +01:00
Simon Wisselink cabcafc7ea Fix smarty-lexer dependency for the time being (remove direct ref to github) 2023-01-25 21:58:46 +01:00
Simon Wisselink a72f83d989 Fix smarty-lexer dependency for the time being 2023-01-25 21:58:04 +01:00
Simon Wisselink 9e2399b020 updated todo 2023-01-25 17:00:12 +01:00
Simon Wisselink 169cd924df Re-organized rendering (read source / compile / cache) process to avoid circular dependencies.
Deactivated merge_compiled_includes and the {include inline} attribute. They don't seem to do much in terms of performance, but we'll
have to check back.
2023-01-25 16:59:10 +01:00
Simon Wisselink 46dfed3837 Updated the changelog 2023-01-24 22:45:35 +01:00
Simon Wisselink 754db3b2e3 correct type of repository 2023-01-24 16:31:46 +01:00
Simon Wisselink 971c4d5158 Shouldnt need Github token now 2023-01-24 16:18:36 +01:00
Simon Wisselink a8cf56e4f4 attempt to load smarty-lexer directly from zip file 2023-01-24 16:18:09 +01:00
Simon WisselinkandGitHub 45de28107a Update ci.yml 2023-01-24 16:12:53 +01:00
Simon WisselinkandGitHub 79842c8baf Update ci.yml 2023-01-24 16:08:16 +01:00
Simon Wisselink 0e380a1748 fixes in source files 2023-01-24 16:05:38 +01:00
Simon WisselinkandGitHub f53eb27450 Update ci.yml 2023-01-24 15:56:26 +01:00
Simon WisselinkandGitHub a5a15b8b1e Update ci.yml 2023-01-24 15:54:15 +01:00
Simon Wisselink 262221f0b7 revise CI/CD workflows, bypass packagist for lexer 2023-01-24 15:49:44 +01:00
Simon Wisselink 344b3e3a31 Attempt to fix CI 2023-01-24 13:59:17 +01:00
Simon Wisselink b798362871 Run composer install before online test run 2023-01-24 12:57:01 +01:00
Simon Wisselink 1a8ee6ebda Merge branch 'master' into smarty5 2023-01-24 12:53:58 +01:00
Simon Wisselink 641678083b Add TODO list 2023-01-24 12:14:55 +01:00
Simon Wisselink ecfa4bfa16 Fixed getCachedContent 2023-01-24 12:09:47 +01:00
Simon Wisselink 9cc60f5e38 Convert isset and empty to modifiercomilers, and smooth the error handling to fix unit tests. 2023-01-24 12:01:20 +01:00
Simon Wisselink 431d77505f Fixed all scope assignment bugs 2023-01-24 10:16:00 +01:00
Simon Wisselink c5f555eed4 Drop a unit tests bc we no longer support direct access to PHP-functinos such as sin() 2023-01-23 16:59:52 +01:00
Simon Wisselink 2cf658c9c3 Fix function call compilation using {functionname} syntax for in-template defined functions. 2023-01-23 16:56:42 +01:00
Simon Wisselink ecac24d073 Fixed bug in {include} variable assignment and removed some unused/unrequired code 2023-01-23 16:40:27 +01:00
Simon Wisselink 34a0a2876b Fix major {include} bug 2023-01-23 15:56:26 +01:00
Simon Wisselink 3922c1eb1e Fixed the {if} failures. 2023-01-23 15:34:29 +01:00
Simon Wisselink 68c59e6627 Fix all foreach unit tests 2023-01-23 15:16:45 +01:00
Simon Wisselink ad2703dd75 Handle BC registered compilers and missed parameters for openTag and closeTag. 2023-01-23 12:08:36 +01:00
Simon Wisselink f1c3ac4395 Fixed all inheritance issues 2023-01-23 11:45:29 +01:00
Simon Wisselink 7c02bb9a63 Fix inhertiance implementation for $smarty.block.child 2023-01-23 08:47:49 +01:00
Simon Wisselink 4bbe94f4e0 Removed the undocumented {block_parent} and {parent} alternatives to {$smarty.block.parent}
and {block_child} and {child} alternatives to {$smarty.block.child}
2023-01-22 23:01:05 +01:00
Simon Wisselink bdb379d8fb Simply the "isFresh" method by not including the first param anymore. Fix a couple of unit tests by respecting tag_nocache set by nocache vars used in a tag. 2023-01-22 22:44:45 +01:00
Simon Wisselink 2d2d052557 Fix default plugin handler 2023-01-21 00:03:08 +01:00
Simon Wisselink f1f3874780 Made exception msgs exactly the same again, fixing some unit tests 2023-01-20 23:45:27 +01:00
Simon Wisselink 4ea8838d3b Fix testRegisterCompilerFunction by parsing argument correctly. 2023-01-20 23:42:08 +01:00
Simon Wisselink 03430c4f94 Fixed block append/prepend functionality 2023-01-20 23:16:41 +01:00
Simon Wisselink 2fbf67b32e Moved handling of smarty.block.* to special compilers, because they aren't real tags. Organized tag-stack handling in compiler, unified nocache handling in compiler. 2023-01-20 17:22:00 +01:00
Simon Wisselink 390f34318d Fixed cacheability of block plugins. 2023-01-19 23:29:10 +01:00
Simon Wisselink 27dd3e4c57 Fix function caching function name 2023-01-19 22:35:03 +01:00
Simon Wisselink 41c8bd3035 @var integer > @var int for vsCode 2023-01-19 22:32:06 +01:00
Simon Wisselink 38cad9723e Fix searchParents parameter, fixing GetTemplateVarsTest 2023-01-19 22:30:16 +01:00
Simon Wisselink f5b432dea4 Fixed scope in variable assignments in included and extended templates, fixed dependencies for testing freshness of caches. Added some unit tests and fixed a class reference to pass some more tests. 2023-01-13 23:29:05 +01:00
Simon Wisselink b02061878f Update test runners: no longer support PHP7.1, add PHP8.2 2023-01-13 23:28:18 +01:00
Simon Wisselink 5c74dc4a83 Replaced a bunch of direct property access with getters/setters. 2023-01-13 16:55:15 +01:00
Simon Wisselink 3be63a3418 Removed unneeded magic setters/getters/destructors and the like. 2023-01-13 15:56:25 +01:00
Simon Wisselink cdf1ed2a50 Simplified the (no)caching architecture by:
- removing support for $cache_attrs for registered plugins,
- removing the undocumented {make_nocache} tag and the deprecated {insert} tag and associated code
- removing support for a compile_id property on include tags.

Fixes a bug in extends: resources by propagating the nocache-hashes between a master template and it's subtemplates in \Smarty\Template::_subTemplateRender. This might need further improvement.
2023-01-13 15:47:57 +01:00
Simon Wisselink e0f2c36d4d converted 3 public properties on Template into getters/setters. unified Template creation code. Provided a getter/setter for the has_nocache_code property. Removed the useless DataObject class. Fixed a few tests. Removed the variable-allow-php-templates property from the docs. 2023-01-13 00:04:08 +01:00
Simon Wisselink 541f0821f0 Replace direct access to inheritance property on Template object by proper getter. 2023-01-12 10:11:10 +01:00
Simon Wisselink 536721d457 Removed the allowUndefinedVars check from the smarty error handlers, because undefined vars no longer throw an error, unless smarty->error_unassigned is set to true. 2023-01-12 09:59:10 +01:00
Simon Wisselink 577f910e49 removed phpplugin, removed now unused uncompiled handler and all checks for this, fixed a refactorbug in InheritanceRuntime. Moved getRenderedTemplateCode method to Smarty\Template. Renamed Cache en Compiled base class to GeneratedPhpFile for more clarity and distinction from Resource classes. Inlined Cached::create into its only caller. Some other minor improvements. Removed php7.1 CI tests. 2023-01-11 23:33:12 +01:00
Simon Wisselink 1fe5050a04 Fix configfile tests 2023-01-11 13:05:42 +01:00
Simon Wisselink 22ce23b47b Made variable scoping more sensible 2023-01-11 11:22:24 +01:00
Simon Wisselink ad245ccd0c Fixed minor unit tests 2023-01-11 00:00:07 +01:00
Simon Wisselink 51075e0421 WIP fixing the complicated variables scopes architecture. Right now more tests are failing than before... :( 2023-01-10 23:49:33 +01:00
Simon Wisselink 3d10630510 WIP rewriting variable scopes 2023-01-10 17:35:34 +01:00
Simon Wisselink 5052ce0d88 WIP 2023-01-10 14:54:21 +01:00
Simon Wisselink 9651dafbce WIP replacing direct access tpl_vars with proper getter/setters. 2023-01-10 14:46:33 +01:00
Simon Wisselink b424657fd9 Fix bug in calling BC function handlers. 2023-01-10 14:45:58 +01:00
Simon Wisselink 9016dd9908 Added strlen function, fixing some unit tests 2023-01-09 11:54:13 +01:00
Simon Wisselink e124f71dd8 Fixed issue related to scoping of left/right delimiter overrides 2023-01-09 11:25:09 +01:00
Simon Wisselink 34d5d6d024 Rewrote global static global_tpl_vars to getters/setters on Smarty class, fixing several test cases. Added a ::getValue() method to Variable. 2023-01-09 09:55:22 +01:00
Simon Wisselink c5de83b09f Fixed modifiercompiler handling multiple/chained modifiers 2023-01-09 09:53:15 +01:00
Simon Wisselink 861aafa92c 2 small fixes for unit tests 2023-01-07 23:45:59 +01:00
Simon Wisselink e1d395e140 Fixed stream resources 2023-01-07 23:22:58 +01:00
Simon Wisselink fd64cc688a Removed PHP functions and checks for the already removed php modifiers. Re-implemented functions as regular functions. Probably should compile these directly. 2023-01-07 23:06:47 +01:00
Simon Wisselink e595cd2a5d Fixed BC loading of resource pluging from dir and all ResourcePluginTest tests 2023-01-06 21:53:37 +01:00
Simon Wisselink b2e11ee2b8 Removed deprecated extends_recursion property and fix bug in CodeFrame compiler due to use of clone. 2023-01-06 21:43:48 +01:00
Simon Wisselink 1f87cebb93 Make DefaultExtension lazy load again. 2023-01-06 21:41:23 +01:00
Simon Wisselink 608a400e66 Fix scoping / global state problems in tests by using DI in Default Extension. Also removing a bunch of old fashioned phpdoc annotations that are superseded by namespaces. 2023-01-05 23:07:45 +01:00
Simon Wisselink f07e342d61 Removed now unneeded PHPunit annotations @run(Tests)InSeparateProcess, @preserveGlobalState and @backupStaticAttributes. Made CacheResourceTestCommon abstract to prevent the base class from running tests (and always failing). Unregister a previously registered stream wrapper. Fixes a lot of tests. 2023-01-05 23:06:02 +01:00
Simon Wisselink 576bd4cc01 Removed support for PHP include path, and removed the ::loadPlugin method. 2023-01-05 21:58:29 +01:00
Simon Wisselink e89a3dda49 Implemented the DefaultHandlerBlockCompiler, made the dependencies of the template compiler into properties, fixed a couple of unit tests 2023-01-05 11:18:42 +01:00
Simon Wisselink 2b71415d1f minor fixes 2023-01-04 23:48:45 +01:00
Simon Wisselink 3cc61133a3 Fix code duplication in block compilers and fix (most) BlockPluginTests. Default plugin handler blocks still need fixing. 2023-01-04 23:45:57 +01:00
Simon Wisselink 216347b4ff Introduce formatParamsArray method for recurring code fragment 2023-01-04 14:42:30 +01:00
Simon Wisselink 14bbffd584 move runPluginFromDefaultHandler to new Runtime class 2023-01-04 13:19:25 +01:00
Simon Wisselink 41054cfb05 Fixed DefaultPluginHandlerTest for function plugins (blocks still break) 2023-01-04 12:16:10 +01:00
Simon Wisselink 16c7fe1d4f Fixed setfilter 2023-01-03 22:03:43 +01:00
Simon Wisselink 3fccb54093 Fixed CacheResource implementation and tests 2023-01-03 17:10:02 +01:00
Simon Wisselink 32df4c6467 Fix CustomResourceAmbiguousTest 2023-01-03 15:02:58 +01:00
Simon Wisselink 98ad1a13af Fixed TemplateObject test 2023-01-03 14:20:40 +01:00
Simon Wisselink 9766aba66e filter tests passing 2023-01-03 14:12:36 +01:00
Simon Wisselink b9ecf115dd fixed pre/post/output filters and removed some old todo-comments 2023-01-02 23:26:36 +01:00
Simon Wisselink 60a56969dd WIP moving Smarty to PSR-4. 2023-01-02 00:49:38 +01:00
Simon Wisselink 6b9e2fadd1 Rewrote remaining plugins to PSR-4, plugins dir is now gone. 2022-12-25 14:02:15 +01:00
Simon Wisselink ab5705a90d Rewrote all default modifiers and functions from the plugins folder to PSR-4 classes 2022-12-24 23:38:13 +01:00
Simon Wisselink 57cff64869 Add makefile, PSR-4 ModifierCompilers 2022-12-23 14:03:05 +01:00
Simon Wisselink 4d66910e7f Entire src dir now PSR-4 compatible 2022-12-22 22:38:37 +01:00
Simon Wisselink f1e7b2d46f src/sysplugins/* to PSR-4 2022-12-22 21:50:01 +01:00
Simon Wisselink 0fc2b3726b src/Template/* to PSR-4 2022-12-22 21:23:22 +01:00
Simon Wisselink d88175de3e Refactored all _runtime_* by merging them into the proper classes or by transforming them into Runtime Extensions. 2022-12-22 15:43:20 +01:00
Simon Wisselink cfd8c08d09 smarty_internal_resource_* to PSR-4 2022-12-21 16:33:26 +01:00
Simon Wisselink b0db4705a0 Finished moving smarty_internal_method_* 2022-12-21 14:47:33 +01:00
Simon Wisselink 5cac5e42f1 WIP rewriting smarty_internal_method_* 2022-12-21 14:01:18 +01:00
Simon Wisselink 6ba059dea8 Rewrote all Compile and Compiler classes to PSR-4 2022-12-20 23:47:18 +01:00
Simon Wisselink 1524f11c8e finished rewriting all compile classes into PSR-4 2022-12-20 23:05:36 +01:00
Simon Wisselink 164a89a1fd WIP making compile classes PSR-4 2022-12-01 23:44:58 +01:00
Simon Wisselink d0319bdc87 Replace Smarty:: with symfony/polyfill-mbstring 2022-12-01 21:56:12 +01:00
Simon Wisselink 9a0d46f1bc WIP making compile classes PSR-4 2022-12-01 21:54:23 +01:00
Simon Wisselink 53fe73b9cc WIP making compile classes PSR-4 2022-12-01 21:53:05 +01:00
Simon Wisselink e54a53332f Removed autoload filters 2022-11-30 10:06:09 +01:00
Simon Wisselink 8b5540f4f3 More PSR4 rewriting 2022-11-30 00:25:27 +01:00
Simon Wisselink 91b6fdeb4e WIP converting code to PSR-4 2022-11-28 12:30:07 +01:00
5 changed files with 9 additions and 11 deletions
-2
View File
@@ -6,8 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [5.0.0-rc1] - 2023-08-08
### Added
- Added support for PHP8.2
- Added a new way to extend Smarty functionality using `Smarty::addExtension()` or `Smarty::setExtensions()`. Please see the docs for more information.
+1 -1
View File
@@ -4,7 +4,7 @@ lexers: src/Lexer/ConfigfileLexer.php src/Lexer/TemplateLexer.php
parsers: src/Parser/ConfigfileParser.php src/Parser/TemplateParser.php
docs:
mike deploy 5.x
mike deploy 5.0
test-docs:
mkdocs serve
+3 -3
View File
@@ -2,13 +2,13 @@
## Supported Versions
Smarty currently supports the latest minor version of Smarty 4 and Smarty 5.
Smarty currently supports the latest minor version of Smarty 3 and Smarty 4.
| Version | Supported |
|---------|--------------------|
| 5.0.x | :white_check_mark: |
| 4.3.x | :white_check_mark: |
| < 4.3 | :x: |
| 3.1.x | :white_check_mark: |
| < 3.1 | :x: |
## Reporting a Vulnerability
+4 -4
View File
@@ -1,17 +1,17 @@
#!/bin/bash
if [[ "$1" =~ ^5\.[0-9\.]+(-rc[0-9]+)?$ ]]; then
if [[ "$1" =~ ^4\.[0-9\.-rc]+$ ]]; then
printf 'Creating release %s\n' "$1"
else
echo "Invalid version number: $1. This script can only make v5.x.x releases."
echo "Invalid version number: $1. This script can only make v4.x.x releases."
exit 1;
fi
git checkout -b "release/$1"
sed -i "s/## \\[Unreleased\\]/## \\[Unreleased\\]\\n\\n## \\[$1\\] - $(date +%Y-%m-%d)/" CHANGELOG.md
sed -i "s/const SMARTY_VERSION = '[^']\+';/const SMARTY_VERSION = '$1';/" src/Smarty.php
sed -i "s/const SMARTY_VERSION = '[^']\+';/const SMARTY_VERSION = '$1';/" libs/Smarty.class.php
git add CHANGELOG.md src/Smarty.php
git add CHANGELOG.md libs/Smarty.class.php
git commit -m "version bump"
git checkout master
+1 -1
View File
@@ -53,7 +53,7 @@ class Smarty extends \Smarty\TemplateBase {
/**
* smarty version
*/
const SMARTY_VERSION = '5.0.0-rc1';
const SMARTY_VERSION = '5.0.0';
/**
* define caching modes