Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smarty5 #852

Merged
merged 153 commits into from
Aug 7, 2023
Merged
Changes from 1 commit
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
91b6fde
WIP converting code to PSR-4
wisskid Nov 28, 2022
8b5540f
More PSR4 rewriting
wisskid Nov 29, 2022
e54a533
Removed autoload filters
wisskid Nov 30, 2022
53fe73b
WIP making compile classes PSR-4
wisskid Dec 1, 2022
9a0d46f
WIP making compile classes PSR-4
wisskid Dec 1, 2022
d0319bd
Replace Smarty:: with symfony/polyfill-mbstring
wisskid Dec 1, 2022
164a89a
WIP making compile classes PSR-4
wisskid Dec 1, 2022
1524f11
finished rewriting all compile classes into PSR-4
wisskid Dec 20, 2022
6ba059d
Rewrote all Compile and Compiler classes to PSR-4
wisskid Dec 20, 2022
5cac5e4
WIP rewriting smarty_internal_method_*
wisskid Dec 21, 2022
b0db470
Finished moving smarty_internal_method_*
wisskid Dec 21, 2022
cfd8c08
smarty_internal_resource_* to PSR-4
wisskid Dec 21, 2022
d88175d
Refactored all _runtime_* by merging them into the proper classes or …
wisskid Dec 22, 2022
0fc2b37
src/Template/* to PSR-4
wisskid Dec 22, 2022
f1e7b2d
src/sysplugins/* to PSR-4
wisskid Dec 22, 2022
4d66910
Entire src dir now PSR-4 compatible
wisskid Dec 22, 2022
57cff64
Add makefile, PSR-4 ModifierCompilers
wisskid Dec 23, 2022
ab5705a
Rewrote all default modifiers and functions from the plugins folder t…
wisskid Dec 24, 2022
6b9e2fa
Rewrote remaining plugins to PSR-4, plugins dir is now gone.
wisskid Dec 25, 2022
60a5696
WIP moving Smarty to PSR-4.
wisskid Jan 1, 2023
b9ecf11
fixed pre/post/output filters and removed some old todo-comments
wisskid Jan 2, 2023
9766aba
filter tests passing
wisskid Jan 3, 2023
98ad1a1
Fixed TemplateObject test
wisskid Jan 3, 2023
32df4c6
Fix CustomResourceAmbiguousTest
wisskid Jan 3, 2023
3fccb54
Fixed CacheResource implementation and tests
wisskid Jan 3, 2023
16c7fe1
Fixed setfilter
wisskid Jan 3, 2023
41054cf
Fixed DefaultPluginHandlerTest for function plugins (blocks still break)
wisskid Jan 4, 2023
14bbffd
move runPluginFromDefaultHandler to new Runtime class
wisskid Jan 4, 2023
216347b
Introduce formatParamsArray method for recurring code fragment
wisskid Jan 4, 2023
3cc6113
Fix code duplication in block compilers and fix (most) BlockPluginTes…
wisskid Jan 4, 2023
2b71415
minor fixes
wisskid Jan 4, 2023
e89a3dd
Implemented the DefaultHandlerBlockCompiler, made the dependencies of…
wisskid Jan 5, 2023
576bd4c
Removed support for PHP include path, and removed the ::loadPlugin me…
wisskid Jan 5, 2023
f07e342
Removed now unneeded PHPunit annotations @run(Tests)InSeparateProcess…
wisskid Jan 5, 2023
608a400
Fix scoping / global state problems in tests by using DI in Default E…
wisskid Jan 5, 2023
1f87ceb
Make DefaultExtension lazy load again.
wisskid Jan 6, 2023
b2e11ee
Removed deprecated extends_recursion property and fix bug in CodeFram…
wisskid Jan 6, 2023
e595cd2
Fixed BC loading of resource pluging from dir and all ResourcePluginT…
wisskid Jan 6, 2023
fd64cc6
Removed PHP functions and checks for the already removed php modifier…
wisskid Jan 7, 2023
e1d395e
Fixed stream resources
wisskid Jan 7, 2023
861aafa
2 small fixes for unit tests
wisskid Jan 7, 2023
c5de83b
Fixed modifiercompiler handling multiple/chained modifiers
wisskid Jan 9, 2023
34d5d6d
Rewrote global static global_tpl_vars to getters/setters on Smarty cl…
wisskid Jan 9, 2023
e124f71
Fixed issue related to scoping of left/right delimiter overrides
wisskid Jan 9, 2023
9016dd9
Added strlen function, fixing some unit tests
wisskid Jan 9, 2023
b424657
Fix bug in calling BC function handlers.
wisskid Jan 10, 2023
9651daf
WIP replacing direct access tpl_vars with proper getter/setters.
wisskid Jan 10, 2023
5052ce0
WIP
wisskid Jan 10, 2023
3d10630
WIP rewriting variable scopes
wisskid Jan 10, 2023
51075e0
WIP fixing the complicated variables scopes architecture. Right now m…
wisskid Jan 10, 2023
ad245cc
Fixed minor unit tests
wisskid Jan 10, 2023
22ce23b
Made variable scoping more sensible
wisskid Jan 11, 2023
1fe5050
Fix configfile tests
wisskid Jan 11, 2023
577f910
removed phpplugin, removed now unused uncompiled handler and all chec…
wisskid Jan 11, 2023
536721d
Removed the allowUndefinedVars check from the smarty error handlers, …
wisskid Jan 12, 2023
541f082
Replace direct access to inheritance property on Template object by p…
wisskid Jan 12, 2023
e0f2c36
converted 3 public properties on Template into getters/setters. unifi…
wisskid Jan 12, 2023
cdf1ed2
Simplified the (no)caching architecture by:
wisskid Jan 13, 2023
3be63a3
Removed unneeded magic setters/getters/destructors and the like.
wisskid Jan 13, 2023
5c74dc4
Replaced a bunch of direct property access with getters/setters.
wisskid Jan 13, 2023
b020618
Update test runners: no longer support PHP7.1, add PHP8.2
wisskid Jan 13, 2023
f5b432d
Fixed scope in variable assignments in included and extended template…
wisskid Jan 13, 2023
38cad97
Fix searchParents parameter, fixing GetTemplateVarsTest
wisskid Jan 19, 2023
41c8bd3
@var integer > @var int for vsCode
wisskid Jan 19, 2023
27dd3e4
Fix function caching function name
wisskid Jan 19, 2023
390f343
Fixed cacheability of block plugins.
wisskid Jan 19, 2023
2fbf67b
Moved handling of smarty.block.* to special compilers, because they a…
wisskid Jan 20, 2023
03430c4
Fixed block append/prepend functionality
wisskid Jan 20, 2023
4ea8838
Fix testRegisterCompilerFunction by parsing argument correctly.
wisskid Jan 20, 2023
f1f3874
Made exception msgs exactly the same again, fixing some unit tests
wisskid Jan 20, 2023
2d2d052
Fix default plugin handler
wisskid Jan 20, 2023
bdb379d
Simply the "isFresh" method by not including the first param anymore.…
wisskid Jan 22, 2023
4bbe94f
Removed the undocumented {block_parent} and {parent} alternatives to …
wisskid Jan 22, 2023
7c02bb9
Fix inhertiance implementation for $smarty.block.child
wisskid Jan 23, 2023
f1c3ac4
Fixed all inheritance issues
wisskid Jan 23, 2023
ad2703d
Handle BC registered compilers and missed parameters for openTag and …
wisskid Jan 23, 2023
68c59e6
Fix all foreach unit tests
wisskid Jan 23, 2023
3922c1e
Fixed the {if} failures.
wisskid Jan 23, 2023
34a0a28
Fix major {include} bug
wisskid Jan 23, 2023
ecac24d
Fixed bug in {include} variable assignment and removed some unused/un…
wisskid Jan 23, 2023
2cf658c
Fix function call compilation using {functionname} syntax for in-temp…
wisskid Jan 23, 2023
c5f555e
Drop a unit tests bc we no longer support direct access to PHP-functi…
wisskid Jan 23, 2023
431d775
Fixed all scope assignment bugs
wisskid Jan 24, 2023
9cc60f5
Convert isset and empty to modifiercomilers, and smooth the error han…
wisskid Jan 24, 2023
ecfa4bf
Fixed getCachedContent
wisskid Jan 24, 2023
6416780
Add TODO list
wisskid Jan 24, 2023
1a8ee6e
Merge branch 'master' into smarty5
wisskid Jan 24, 2023
b798362
Run composer install before online test run
wisskid Jan 24, 2023
344b3e3
Attempt to fix CI
wisskid Jan 24, 2023
262221f
revise CI/CD workflows, bypass packagist for lexer
wisskid Jan 24, 2023
a5a15b8
Update ci.yml
wisskid Jan 24, 2023
f53eb27
Update ci.yml
wisskid Jan 24, 2023
0e380a1
fixes in source files
wisskid Jan 24, 2023
79842c8
Update ci.yml
wisskid Jan 24, 2023
45de281
Update ci.yml
wisskid Jan 24, 2023
a8cf56e
attempt to load smarty-lexer directly from zip file
wisskid Jan 24, 2023
971c4d5
Shouldnt need Github token now
wisskid Jan 24, 2023
754db3b
correct type of repository
wisskid Jan 24, 2023
46dfed3
Updated the changelog
wisskid Jan 24, 2023
169cd92
Re-organized rendering (read source / compile / cache) process to avo…
wisskid Jan 25, 2023
9e2399b
updated todo
wisskid Jan 25, 2023
a72f83d
Fix smarty-lexer dependency for the time being
wisskid Jan 25, 2023
cabcafc
Fix smarty-lexer dependency for the time being (remove direct ref to …
wisskid Jan 25, 2023
047b73d
Pushed Lexers/Parsers into VCS again in order to be able to deliver u…
wisskid Jan 26, 2023
c47756b
Re-organized rendering (read source / compile / cache) process to avo…
wisskid Jan 26, 2023
39dad96
Run make regardless of timestamps, so we are sure unit tests run with…
wisskid Jan 26, 2023
8a2ed94
Update composer packages cache key
wisskid Jan 28, 2023
af316e6
4.0.2 of smarty-lexer is released, use that
wisskid Jan 29, 2023
18a8068
Throw compile error when using a modifier where it won't work. Fixes …
wisskid Jan 31, 2023
0962a34
verify that native PHP functions cannot be used as a modifier and ver…
wisskid Jan 31, 2023
b4019b6
Add test for registering compiler plugin with positional params. Fixe…
wisskid Jan 31, 2023
1ef29b6
move test methods because some other test methods rely on their relat…
wisskid Jan 31, 2023
6635a5e
Smarty no longer calls `mb_internal_encoding()` and doesn't check for…
wisskid Jan 31, 2023
016c9ce
Generated `<script>` tags lo longer have deprecated `type="text/javas…
wisskid Jan 31, 2023
9e35cce
Fix error in docs on prepend/append. Fixes #818.
wisskid Jan 31, 2023
0b2eae3
Move all creating of templates to Smarty::createTemplate, adding a pr…
wisskid Jan 31, 2023
cd15856
Load compiled object in template constructor so it will be cached.
wisskid Jan 31, 2023
7408c18
WIP for performance improvements.
wisskid Feb 3, 2023
864643f
remove additional calls to getCached()
wisskid Feb 3, 2023
6c601e1
updated todo
wisskid Feb 3, 2023
e636069
Add mkdocs for docs
wisskid Feb 3, 2023
ded3e12
add missing folder for unit tests
wisskid Feb 3, 2023
55ebb4e
Revert latest CI changes, we'll update docs by hand for now
wisskid Feb 3, 2023
9c610e6
multiversion mkdocs config
wisskid Feb 3, 2023
15d3968
fixes to docs
wisskid Feb 3, 2023
833ba57
WIP improving the docs
wisskid Feb 5, 2023
4c6afd6
Improved another chunk of the designers docs
wisskid Feb 6, 2023
cf84802
Finished improving designers docs
wisskid Feb 6, 2023
7a323b7
Update code examples to use Smarty\Smarty and autoload instead of req…
wisskid Feb 6, 2023
5db8fd2
Further WIP improving docs
wisskid Mar 9, 2023
f4b94d4
Updated changelog and todo list
wisskid Mar 9, 2023
1afd49e
WIP on API docs
wisskid Mar 10, 2023
d8ce15e
WIP docs (added page on config)
wisskid Mar 24, 2023
cea303d
Fixed markdown syntax. Fixes #879
wisskid Apr 30, 2023
81cda9e
Added full support and documentation for ternary operator.
wisskid May 1, 2023
b972bb5
updated changelog
wisskid May 1, 2023
7fa8db3
fixed error in the mkdocs TOC
wisskid May 1, 2023
e99d2fa
Added support for null coalescing operator
wisskid May 1, 2023
f7868b4
Add docs for null coalescing
wisskid May 1, 2023
41962d5
more docs
wisskid May 1, 2023
4550bd8
Improved docs on compile checking and inheritance
wisskid May 3, 2023
86b7d45
Rewrote docs on filters and resources.
wisskid Aug 5, 2023
019fe3f
Add makefile entries for generating docs
wisskid Aug 5, 2023
8492bf5
Docs on caching
wisskid Aug 6, 2023
d8b4496
finished docs on security and extending smarty
wisskid Aug 6, 2023
90bb78f
Added Smarty::setExtensions(), fixed unit test for the null coalescin…
wisskid Aug 7, 2023
92736c1
updated todos
wisskid Aug 7, 2023
dc46052
fix template invalidation when migrating to 5.0
wisskid Aug 7, 2023
7a6cbca
Merge branch 'master' into smarty5
wisskid Aug 7, 2023
077df8a
remove docs from 'all' to prevent CI build from failing
wisskid Aug 7, 2023
515c14b
Missed part of commit e7516556 in the merge.
wisskid Aug 7, 2023
3750c64
Missed part of commit a3cbdc46 in the merge
wisskid Aug 7, 2023
0750fd7
Some more missed commits
wisskid Aug 7, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
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.
wisskid committed Jan 12, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 536721d4574b5f552e79ceb4a322173f9742a1d3
19 changes: 0 additions & 19 deletions src/ErrorHandler.php
Original file line number Diff line number Diff line change
@@ -4,21 +4,10 @@

/**
* Smarty error handler to fix new error levels in PHP8 for backwards compatibility
*


* @author Simon Wisselink
*
*/
class ErrorHandler
{

/**
* Allows {$foo} where foo is unset.
* @var bool
*/
public $allowUndefinedVars = true;

/**
* Allows {$foo.bar} where bar is unset and {$foo.bar1.bar2} where either bar1 or bar2 is unset.
* @var bool
@@ -74,14 +63,6 @@ public function deactivate() {
*/
public function handleError($errno, $errstr, $errfile, $errline, $errcontext = [])
{

if ($this->allowUndefinedVars && preg_match(
'/^(Attempt to read property "value" on null|Trying to get property (\'value\' )?of non-object)/',
$errstr
)) {
return; // suppresses this error
}

if ($this->allowUndefinedArrayKeys && preg_match(
'/^(Undefined index|Undefined array key|Trying to access array offset on value of type)/',
$errstr
Original file line number Diff line number Diff line change
@@ -65,6 +65,7 @@ public function testErrorDisabledTplObject_2()
*/
public function testError()
{
$this->smarty->error_unassigned = true;
$this->expectException(PHPUnit\Framework\Error\Error::class);
$this->expectExceptionMessage('Undefined ');
$e1 = error_reporting();
@@ -131,9 +132,7 @@ public function testUsingFalseAsAnArrayIsMuted() {
$this->assertEquals("ab", $this->smarty->fetch($tpl));
}

/**
* @group 20221124
*/

public function testDereferenceOnNull() {
$this->smarty->setErrorReporting(E_ALL & ~E_WARNING & ~E_NOTICE);
$this->smarty->muteUndefinedOrNullWarnings();
@@ -142,9 +141,7 @@ public function testDereferenceOnNull() {
$this->assertEquals("ab", $this->smarty->fetch($tpl));
}

/**
* @group 20221124
*/

public function testDereferenceOnBool() {
$this->smarty->setErrorReporting(E_ALL & ~E_NOTICE);
$this->smarty->muteUndefinedOrNullWarnings();
@@ -153,9 +150,7 @@ public function testDereferenceOnBool() {
$this->assertEquals("ab", $this->smarty->fetch($tpl));
}

/**
* @group 20221124
*/

public function testDereferenceOnString() {
$this->smarty->setErrorReporting(E_ALL & ~E_NOTICE);
$this->smarty->muteUndefinedOrNullWarnings();