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 Wisselink
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 Wisselink
45de28107a
Update ci.yml
2023-01-24 16:12:53 +01:00
Simon Wisselink
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 Wisselink
f53eb27450
Update ci.yml
2023-01-24 15:56:26 +01:00
Simon Wisselink
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