Commit Graph
100 Commits
Author SHA1 Message Date
Justin Hileman c9718673e5 Merge branch 'release/2.14.1' 2022-01-21 01:21:37 -05:00
Justin Hileman d36cd805c4 Bump to v2.14.1 2022-01-21 01:21:32 -05:00
Justin Hileman 579ffa5c96 Fix CVE-2022-0323 (improper neutralization of section names)
- Fixes possible RCE when rendering untrusted user templates.
- Remove unnecessary comments in generated source.
2022-01-21 01:08:36 -05:00
Justin Hileman 076209772d Explicitly treat null as an empty string when interpolating.
Fixes a deprecation warning on PHP 8.1+, and saves us some unnecessary escaping calls!

Thanks for your help @scr4bble :)

Fixes #383
2022-01-21 00:47:28 -05:00
Justin Hileman 7fd191f730 Remove unused variable. 2022-01-21 00:38:13 -05:00
Justin Hileman e7165a33b2 Only check for mbstring.func_overload in < PHP 8.x
Fixes #385
2022-01-07 21:35:06 -05:00
Justin Hileman 26c8a448fc Fix PHP 8.1 deprecation warning when user lambdas do not return a string
Fixes #382
2021-12-21 23:11:27 -05:00
Justin Hileman 4e2724dd40 Merge branch 'release/2.14.0' 2021-12-14 09:42:17 -05:00
Justin Hileman 3ce0ee0ec1 Bump to v2.14.0, bump spec version to 1.2.2 2021-12-14 09:42:05 -05:00
Justin Hileman 63616440f7 Merge pull request #380 from schlessera/fix/trim-php-8.1
Avoid using trim() on null
2021-12-12 22:13:34 -05:00
Justin Hileman d6340c85ef Update readme link
Fixes #377
2021-12-12 21:52:12 -05:00
Justin Hileman 1a125dfe25 Brevity. 2021-12-12 21:51:06 -05:00
Justin Hileman fc91860ffa Merge pull request #376 from samizdam/patch-1
Update README.md
2021-12-12 21:44:18 -05:00
Justin Hileman 3a65e8adf3 Run spec inheritance tests. 2021-12-07 16:19:05 -05:00
Justin Hileman 87cfdabec8 Updating to mustache spec v1.2.2 2021-12-07 16:16:46 -05:00
Justin Hileman db2bc776c4 Add missing setLogger to Mustache_Cache interface.
Fixes #358
2021-04-28 10:48:42 -07:00
Justin Hileman 799c0f40fd Throw a Mustachey runtime exception from filesystem source.
Fixes #370
2021-04-28 10:25:13 -07:00
Justin Hileman d2503c7a29 Merge pull request #343 from Rarst/patch-1
Adjusted log level argument type
2021-04-28 10:21:12 -07:00
Justin Hileman bbdf0aeabf Merge pull request #365 from fezfez/patch-1
Add .gitattributes
2021-01-30 11:44:16 -08:00
Justin Hileman 5ec3021ab9 Merge pull request #354 from Kirill89/master
Add security recommendation to README.md
2020-03-21 10:11:37 -07:00
Justin Hileman e95c5a008c Merge branch 'release/2.13.0' 2019-11-23 13:40:31 -08:00
Justin Hileman 819a3e1e46 Bump to v2.13.0 2019-11-23 13:38:47 -08:00
Justin Hileman 397a47ec4e Merge branch 'Ennexa-master' into dev 2019-11-23 10:52:12 -08:00
Justin Hileman a04f70e8b5 Let 7.4 snapshot fail for now 2019-11-23 10:51:33 -08:00
Justin Hileman 778906301c Moar PHPs! 2019-11-23 10:31:10 -08:00
Justin Hileman 916b13e060 Fix PHP 5.4 and 5.5 on CI 2019-11-23 10:28:42 -08:00
Justin Hileman 4c28410c3a Let HHVM fail /shrug 2019-07-21 22:34:20 -07:00
Justin Hileman 72d07520ec Improve Tokenizer::scan performance by 98.2%.
- Checking the first character of the opening and closing tags is >90% faster than baseline for my test case.
- Inlining the `tagChange` method is 18% faster than baseline.
- Together they yield a 98.2% wall clock time improvement!

Hat tip to @sam-osborne for the first one :)

https://github.com/mardix/Handlebars/pull/6
2019-07-21 16:02:17 -07:00
Justin Hileman bbb43caa1a Fix delimiter parse error, and throw a syntax error when invalid.
The mustache spec has a test case that _should_ have caught this:

https://github.com/mustache/spec/blob/master/specs/delimiters.yml#L154-L158

... But that test case only tests that an engine recognizes it as a delimiter change tag, not that it ends up changing to the correct delimiters. In our case, we were incorrectly changing to `@` and ` `.

The only "invalid" case I can think of is missing delimiters, which is how that spec test was (incorrectly) parsed. Now it'll enforce that it's always called with *something* that can be used as a delimiter.
2019-07-21 16:02:17 -07:00
Justin Hileman fe8fe72e9d Merge branch 'release/2.12.0' 2017-07-11 05:54:05 -07:00
Justin Hileman 994abcaf64 Merge branch 'master' into release/2.12.0 2017-07-11 05:53:39 -07:00
Justin Hileman 8c261cf50f Bump to v2.12.0 2017-07-11 05:53:22 -07:00
Justin Hileman 2540de2db2 Minor CS fix. 2017-07-03 00:25:56 -07:00
Justin Hileman 55e6ac81ba Add validation to prevent empty template_class_prefix.
Fixes #298
2017-07-03 00:24:50 -07:00
Justin Hileman 933554098a Improve prod filesystem loader test coverage. 2017-07-03 00:17:31 -07:00
Justin Hileman 7434e97df5 Swallow errors on stat in FilesystemSource. 2017-07-03 00:16:38 -07:00
Justin Hileman 89987ac890 Fix a comment that had become a lie. 2017-07-03 00:16:21 -07:00
Justin Hileman 6a527de467 Mark a few things we can't really get code coverage for. 2017-07-03 00:16:08 -07:00
Justin Hileman 14ff48584a Add an example for anchored dot notation. 2017-07-02 23:50:42 -07:00
Justin Hileman 2b76cbeb66 Remove unused internal compiler arg.
We stopped passing it in 11ad87ae but missed the cleanup.
2017-07-02 22:55:12 -07:00
Justin Hileman 324f1db963 Bump copyright year. 2017-07-02 22:24:03 -07:00
Justin Hileman b9f04e5d26 Custom delimiters tweaks.
* Add basic test for custom delimiters
* Keep default delims backwards compatible
2017-07-02 22:20:51 -07:00
Justin Hileman f459a6ed3f Merge branch 'feature/production-filesystem-loader' into dev 2017-07-02 21:52:07 -07:00
Justin Hileman 556b8e67b8 Clean up Source implementation a bit.
Make it work with new template class name logic.
2017-07-02 21:50:12 -07:00
Justin Hileman 1514e0c2cd Add stat() options to ProductionFilesystemLoader
* By default, continue to use `size` and `mtime` to invalidate template cache
 * Allow overriding to use any properties of `stat()`
 * Allow disabling stat entirely 
 * Add a Big Kid Pants disclaimer if you choose to go down this path
2017-07-02 16:30:46 -07:00
Justin Hileman ca19ba467e Initial production FilesystemSource implementation
See #290
2017-07-02 16:30:46 -07:00
Justin Hileman 31523441e1 Add delimiters option docs. 2017-07-02 14:46:56 -07:00
Justin Hileman ccb2b09317 Update generated class name for delimiters option.
Add some docs there, make it slightly easier to update the generated class name.
2017-07-02 14:39:07 -07:00
Justin Hileman 44489124a1 CS fixes. 2017-07-02 14:39:07 -07:00
Justin Hileman b6a480df22 o right, test all the versions we support. 2017-06-29 06:35:34 -07:00
Justin Hileman 9e34408bda Add a failing test case for #322 2017-06-29 06:21:49 -07:00
Justin Hileman 40646e4aea Fix Travis PHP 7 and HHVM builds. 2017-06-29 06:02:16 -07:00
Justin Hileman 09241edd52 Use a local $blocksContext for each parent render.
... rather than a shared one per template / section / block that accidentally keeps old block context around.

Fixes #322
2017-06-29 00:13:59 -07:00
Justin Hileman 44baf86426 Suppress else when rendering empty block defaults. 2017-06-28 23:20:21 -07:00
Justin Hileman 2bdb23db94 Merge branch 'release/2.11.1' into dev 2016-07-30 23:18:43 -07:00
Justin Hileman a3f6d55996 Merge branch 'release/2.11.1' 2016-07-30 23:18:27 -07:00
Justin Hileman 87e87e29fe Bump to v2.11.1 2016-07-30 23:18:19 -07:00
Justin Hileman 0803fa688b Fix test bootstrap in PHP < 5.5 2016-07-30 23:17:51 -07:00
Justin Hileman 94a72ec3d2 Merge branch 'release/2.11.0' into dev 2016-07-30 23:07:58 -07:00
Justin Hileman 789904e952 Merge branch 'release/2.11.0' 2016-07-30 23:07:43 -07:00
Justin Hileman cf4e4c7857 Bump to v2.11.0 2016-07-30 23:07:36 -07:00
Justin Hileman d4bdf110f9 Always check is_dir() and file_exists() with filesystem streams. 2016-07-30 22:59:23 -07:00
Justin Hileman 58f2401d4d Minor code style fixes. 2016-07-30 22:58:58 -07:00
Justin Hileman 18a2adce3d Remove all the extra spaces StyleCI wanted me to add :) 2016-07-30 22:39:43 -07:00
Justin Hileman 6f6e3b9ddb Add StyleCI badge to README. 2016-07-30 18:00:31 -07:00
Justin Hileman 01777faf6e Various style cleanups.
* a bunch of small changes, courtesy of styleci
 * update dates in file headers
 * add file headers to files that are missing them
2016-07-30 17:57:19 -07:00
Justin Hileman 41edfcb9e2 Drop the php-cs-fixer business on Travis.
That's what StyleCI is for.
2016-07-30 17:51:14 -07:00
Justin Hileman 174f0da5ce Switch to friendsofphp's cs fixer package 2016-07-30 17:44:10 -07:00
Justin Hileman b2b282dfef Code style fixes. 2016-05-19 00:06:45 -07:00
Justin Hileman 051f857197 Support parent tags and block args as direct children of blocks and sections.
Fixes #294

Drive-by: rename blocks context variable to something more descriptive.
2016-05-18 22:45:46 -07:00
Justin Hileman 21d553fc02 Add a failing test case for #294 2016-05-18 22:43:41 -07:00
Justin Hileman 1de7898200 Fix incorrect method name case. 2016-05-18 21:48:17 -07:00
Justin Hileman f7b969acc8 Merge branch 'release/2.10.0' into dev 2016-02-27 11:22:51 -08:00
Justin Hileman 0bb2f76e2f Merge branch 'release/2.10.0' 2016-02-27 11:22:46 -08:00
Justin Hileman a9dd4c62ae Bump to v2.10.0 2016-02-27 11:21:57 -08:00
Justin Hileman 865de4114a Make LambdaHelper invokable.
Fixes #285
2016-02-14 08:43:38 -08:00
Justin Hileman 3c53736f09 Fix php-cs-fixer issue. 2016-02-14 08:37:59 -08:00
Justin Hileman 4dd6383a3d Use latest PHPUnit dev dependency. 2016-02-14 08:37:53 -08:00
Justin Hileman f3ae65eb33 Fix incorrect indent on interpolated lambdas.
Fixes #286
2016-02-14 08:37:41 -08:00
Justin Hileman 131cad6024 Add a failing test for #286 2016-02-13 15:36:35 -08:00
Justin Hileman 9cc21d63f7 Respect delimiter changes in lambda helper.
See janl/mustache.js#489
2015-10-12 12:48:21 -07:00
Justin Hileman 5353b36ec6 Merge branch 'release/2.9.0' into dev 2015-08-15 12:23:20 -07:00
Justin Hileman c745b01956 Merge branch 'release/2.9.0' 2015-08-15 12:23:13 -07:00
Justin Hileman eff33aff4e Bump to v2.9.0 2015-08-15 12:18:51 -07:00
Justin Hileman 1b1757987a Put anchored dots behind {{%ANCHORED-DOT}} pragma. 2015-08-15 12:18:04 -07:00
Justin Hileman 664895f4b9 Add a simple BLOCKS pragma example. 2015-08-15 09:38:32 -07:00
Justin Hileman 8be838e144 Bump copyright dates. 2015-08-15 09:23:54 -07:00
Justin Hileman 7b81206923 Remove create_example script.
I'm not sure it has ever been used, and it's not all that difficult to create one manually.
2015-08-15 09:22:13 -07:00
Justin Hileman a5ad0a86db Anchor dot notation context: {{ .foo }}
1. Given that {{ . }} resolves as the top of the context stack;
2. And when any falsey segment in a dotted name is encountered, the whole name yields '';
3. A name like {{ .name }} should imply {{ [top of stack].name }};
4. Thus, it must resolve as truthy only if a member of the top of the context stack matches name.

See mustache/spec#52
2015-08-15 09:09:42 -07:00
Justin Hileman ba028d1dcf We won't be needing this anymore. 2015-07-18 07:30:38 -07:00
Justin Hileman 6b16313ced Update travis-ci environments.
hhvm-nightly is no more, but there is a php 7.0. Will it pass? The suspense is killing me!
2015-07-18 07:28:44 -07:00
Justin Hileman 27a8bf0b69 Update to latest php-cs-fixer config.
Update to corresponding style-ci config options. Fix a few code style issues in the process.
2015-07-18 07:23:23 -07:00
Justin Hileman d8da5f1d99 Clean up compiled PHP coding style. 2015-07-18 01:12:21 -07:00
Justin Hileman 91c71191c8 Merge remote-tracking branch 'damyon/PULL_264' into dev 2015-07-18 01:11:59 -07:00
Justin Hileman a066f27e66 Merge branch 'release/2.8.0' into dev 2015-03-31 23:39:06 -07:00
Justin Hileman 64c28cc73e Merge branch 'release/2.8.0' 2015-03-31 23:37:33 -07:00
Justin Hileman 46facc76b5 Bump to v2.8.0 2015-03-31 23:37:28 -07:00
Justin Hileman c4b1712d98 Merge branch 'fix/template-inheritance-whitespace' into dev 2015-03-31 23:24:25 -07:00
Justin Hileman 7cb9fdff6a Never indent block arg sections.
Fixes #253
2015-03-03 10:05:27 -08:00
Justin Hileman 22611a957c CS fixes.
Plus add config for StyleCI.
2015-03-02 21:53:03 -08:00