Commit Graph
100 Commits
Author SHA1 Message Date
Justin Hileman 77d99d2bd3 Fix disabling lambda template cache.
Because it’s so much awesomer when config options actually do what they say they do.
2014-03-25 18:16:35 -07:00
Justin Hileman b61af6e4e8 Add (failing) test case for disabling lambda cache. 2014-03-25 18:15:52 -07:00
Justin Hileman 085729aa27 remove old test annotation. 2014-03-25 18:15:31 -07:00
Justin Hileman fdff8a4d15 Let’s not use Composer’s autoload, since it fails in 5.2
This reverts commit af737f4cc7.
This reverts commit 84a4ff5b16.
2014-03-25 10:50:43 -07:00
Justin Hileman af737f4cc7 Fix autoload for Travis 2014-03-25 10:19:55 -07:00
Justin Hileman de2466864b Remove redundant documentation. 2014-03-25 09:42:10 -07:00
Justin Hileman 69c1ff9daa Revert "Reduce Engine constructor complexity."
This reverts commit e9d4af3bbe.
2014-03-25 09:36:25 -07:00
Justin Hileman 2bb13b37a4 Minor CS changes. 2014-03-25 09:21:16 -07:00
Justin Hileman 151de6f13e Extract spec loading code into base test case 2014-03-25 09:20:04 -07:00
Justin Hileman 3d9288dc8e Extract duplicated tmpdir code into base test case 2014-03-25 08:23:04 -07:00
Justin Hileman 84a4ff5b16 Use Composer autoload for unit tests. 2014-03-25 08:19:46 -07:00
Justin Hileman e9d4af3bbe Reduce Engine constructor complexity.
I’m not sure I love this. I might prefer the more “complex” version :-/
2014-03-25 07:51:55 -07:00
Justin Hileman b3e3e0a27a Gah. Fix broken lambda tests.
This is what I get for blindly following code sniff recommendations.
2014-03-25 07:49:02 -07:00
Justin Hileman 8debbd58bb Remove some dead code. 2014-03-25 07:31:22 -07:00
Justin Hileman a2ca330cba Fix missing properties. 2014-03-25 07:31:04 -07:00
Justin Hileman f696e7afa6 Fix incorrect or missing type annotations. 2014-03-25 07:31:04 -07:00
Justin Hileman 22a47452da How embarrassing.
I keep writing 2013 on my copyright notices.
2014-03-13 22:34:44 -07:00
Justin Hileman 1d8db69fb6 line numbers are numbers, not strings. 2014-02-20 10:31:41 -08:00
Justin Hileman e00bebd141 Override encoding to improve tokenizer performance
Speeds up tokenizing by ~15% for most users, and by 50% for users with mbstring.func_overload set!

See #144
2014-02-20 09:53:06 -08:00
Justin Hileman 6215e6b1b1 Store otag/ctag lengths rather than recomputing.
~15% tokenizing performance boost. 99% reduction in strlen calls :)
2014-02-20 09:53:06 -08:00
Justin Hileman d534b168a0 Clean up comment code block style. 2014-02-20 09:53:06 -08:00
Justin Hileman b84e9deec8 Merge branch 'hotfix/2.5.1' into dev 2014-01-08 16:36:44 -08:00
Justin Hileman 39dc20e691 Version bump v2.5.1 2014-01-08 16:36:02 -08:00
Justin Hileman aa77e3bfd9 Ugh PHP.
Fixes #183
2014-01-08 16:33:33 -08:00
Justin Hileman f1d3955492 Add a failing test for #183
Tokenization error for sections with only “0” in them.
2014-01-08 16:28:55 -08:00
Justin Hileman 49eb190c42 Merge branch 'release/2.5.0' into dev 2013-12-14 12:58:49 -08:00
Justin Hileman dd528e765a Merge branch 'release/2.5.0' 2013-12-14 12:57:43 -08:00
Justin Hileman bd2a1fa492 Bump to v2.5.0 2013-12-14 12:57:36 -08:00
Justin Hileman a467124a46 Improve test coverage. 2013-12-14 12:50:51 -08:00
Justin Hileman 3a9a8bde36 Update bin/build_bootstrap.php for Cache classes. 2013-12-14 12:37:05 -08:00
Justin Hileman e24f5c744a Minor docblock updates. 2013-12-14 12:36:47 -08:00
Justin Hileman 77b88cd74f Fix param names in NoopCache. 2013-12-14 12:29:56 -08:00
Justin Hileman 2b5d9e5f39 Add 'cache_lambda_templates' config option.
Stop caching lambda templates by default, as they are generally too dynamic. Make lambda template caching an explicit opt-in. This will prevent filling cache directories with unusable files, and will actually speed things up the first time any given lambda template is used.

Fixes #180
2013-12-14 11:50:57 -08:00
Justin Hileman 6b7f33c78d Add passthrough optimization for lambda sections.
Higher order sections which return mustache-free strings don’t need to be re-parsed, compiled and rendered. Just use the string, silly!

Fixes #141
2013-12-14 10:45:17 -08:00
Justin Hileman e739e216a6 Implement section (and inverted section) filters.
This is a super powerful construct. It's also prolly a violation of the "logic-less-ness" of Mustache templates :(
2013-12-06 20:05:20 -08:00
Justin Hileman 38b6b245b1 Fix ArrayAccess priority:
* Methods brump properties and ArrayAccess
 * Properties beat ArrayAccess
 * ArrayAccess beats nothing at all
 * ArrayAccess also beats private properties

Add a test case to verify.

See #178
2013-12-06 19:45:28 -08:00
Justin Hileman 04b016016e Clean up code style, ArrayAccess test.
See #178
2013-12-06 19:45:20 -08:00
Justin Hileman 0e1d5a678f Add PHP 5.5 to Travis config 2013-12-05 08:04:51 -08:00
Justin Hileman b6d6a720a0 Fix docblock param order.
It’s been backwards since #148. Whoops :)
2013-12-05 07:04:22 -08:00
Justin Hileman e388a3ca7f Fix for nested partials indenting.
Fixes #167
2013-09-26 09:48:56 -07:00
Justin Hileman 44b60e1bb8 Add a failing test for #167
Multiple levels of nested partials are only indented to the level of the first partial.
2013-09-26 09:48:29 -07:00
Justin Hileman cb2a6b5a03 Clean up comments, standardize whitespace. 2013-09-18 23:49:44 -07:00
Justin Hileman 0d161cc7d2 Bump copyright dates. 2013-09-18 12:10:17 -07:00
Justin Hileman a4ab23471c Merge branch 'release/2.4.1' into dev 2013-08-12 21:49:31 -07:00
Justin Hileman 14bc3b4f6a Merge branch 'release/2.4.1' 2013-08-12 21:49:23 -07:00
Justin Hileman e3cbc253c3 Bump version for 2.4.1 2013-08-12 21:49:14 -07:00
Justin Hileman f968f5fdcb Add PHPUnit dev dependency. 2013-08-07 17:44:51 -07:00
Justin Hileman 75b56da0c5 markdown -> md 2013-08-05 16:04:50 -07:00
Justin Hileman a8bd6a6cf6 Move realpath call into constructor
Add an is_dir check, because realpath fails with things like stream wrappers
2013-08-04 12:16:18 -07:00
Justin Hileman 35ad7f961e Merge remote-tracking branch 'mirkolofio/master' into dev 2013-08-04 12:07:25 -07:00
Justin Hileman 07e96b2a19 Only run partials + lambda indent test on 5.3+ 2013-07-21 13:32:56 -07:00
Justin Hileman 1c945926bd Fix indents in lambda sections inside indented partials.
Fixes #128
2013-07-21 00:49:10 -07:00
Justin Hileman 408ff8d345 Add a failing test for #128 2013-07-21 00:48:18 -07:00
Justin Hileman 65de52c7db Merge branch 'release/2.4.0' into dev 2013-07-17 22:27:30 -07:00
Justin Hileman 6cd3145073 Merge branch 'release/2.4.0' 2013-07-17 22:23:52 -07:00
Justin Hileman 48cf4c178c Bump version for 2.4.0 2013-07-17 22:23:40 -07:00
Justin Hileman 1d21de63d6 Trailing slash test fix.
I suppose it would help if I didn't realpath the thing I was testing for realpathness
2013-07-15 18:11:36 -04:00
Justin Hileman 911151ad78 Looks like we don’t need that rtrim() after all.
(+ a test, confirming)
2013-07-15 18:08:24 -04:00
Justin Hileman 287d2f74a8 Merge branch 'feature/whitespace-tokenizing' into dev 2013-06-25 08:43:00 -07:00
Justin Hileman 87a734e60c Update Compiler for new Parser output. 2013-05-15 13:37:05 -07:00
Justin Hileman 8f5be9e470 Add standalone line whitespace handling to Parser. 2013-05-15 13:37:05 -07:00
Justin Hileman de9941d271 Ensure that delimiter changes appear in token list. 2013-05-15 13:37:05 -07:00
Justin Hileman 4588e04365 No need to loop through pragma tokens twice.
Add them directly to the token list as soon as they are tokenized.
2013-05-15 13:37:05 -07:00
Justin Hileman 32461bfb48 Track line number in Tokenizer
(needed for standalone line filtering via Parser)
2013-05-15 13:37:05 -07:00
Justin Hileman b77d2f308e Remove "standalone tag" filtering from Tokenizer. 2013-05-15 13:37:05 -07:00
Justin Hileman 4112bcc3f7 Fix doc comment on inline loader. 2013-05-15 13:36:46 -07:00
Justin Hileman 0564df9651 Add missing comments for pragma tokenizing. 2013-05-12 21:49:36 -07:00
Justin Hileman 697f4ac26b Use a raw array for Parser::buildTree
Improve memory usage by ~15% for very large templates.
2013-05-11 22:32:42 -07:00
Justin Hileman ade0b98761 Remove unnecessary leading slashes. 2013-05-10 17:24:53 -07:00
Justin Hileman c5c36ddd2b Change entity_flags variable names to match PSR-2. 2013-04-27 16:04:05 -07:00
Justin Hileman c6c480013a Merge branch 'release/2.3.1' into dev 2013-04-25 08:25:08 -07:00
Justin Hileman 3ef28e14e3 Merge branch 'release/2.3.1' 2013-04-25 08:23:30 -07:00
Justin Hileman afc20ae1e2 Bump to v2.3.1 2013-04-25 08:23:21 -07:00
Justin Hileman 2327f3839f Fix tokenizing when mbstring.func_overload enabled.
Fixes #144
2013-04-24 09:24:27 -07:00
Justin Hileman 5d186b134b Fix this mention too :) 2013-04-23 21:14:37 -07:00
Justin Hileman 3fb7fdc2ac Update docs, variable name for render passthrough. 2013-04-23 21:13:39 -07:00
Justin Hileman 9e5ef08fbf Reformat LICENSE file. 2013-04-15 19:51:41 -07:00
Justin Hileman e5da080ef4 Merge branch 'release/2.3.0' into dev 2013-04-01 20:56:37 -07:00
Justin Hileman fb5e4ecb30 Merge branch 'release/2.3.0' 2013-04-01 20:56:30 -07:00
Justin Hileman 0f1fc69e5c Bump to v2.3.0 2013-04-01 20:50:30 -07:00
Justin Hileman 723ac37053 s/an/a/ 2013-03-28 16:48:00 -04:00
Justin Hileman 01d413de0d Merge branch 'hotfix/2.2.0' into dev
Conflicts:
	src/Mustache/Compiler.php
	src/Mustache/Engine.php
2013-03-25 09:12:36 -07:00
Justin Hileman f0eb5091e2 Merge branch 'hotfix/2.2.0' 2013-03-25 09:03:00 -07:00
Justin Hileman 934a5495bb Bump Genghis version. 2013-03-25 09:02:46 -07:00
Justin Hileman c160134b6d Add a 'strict_callables' option to Mustache_Engine
Prevents treating array('ClassName', 'methodName') or array($instance, 'methodName') as section or interpolation callables. This helps protect against arbitrary code evaluation when user input is passed directly into the template.

This setting is recommended for PHP 5.3+, and all PHP 5.2 projects not using section or interpolation lambdas.

The default value is false to preserve backwards compatibility.

See #138
2013-03-23 10:54:13 -07:00
Justin Hileman 7fb7758178 Include header in generated bootstrap files. 2013-03-12 16:40:36 -07:00
Justin Hileman 32a397f93d Remove unused submodule. 2013-03-12 16:20:02 -07:00
Justin Hileman ca44ef68f8 Move loader cascading into the loadPartial method.
This means the `partialsLoader` property is never set to the default loader, fixing things like `setPartials`, but template loading cascades as per the spec.

Add test coverage for partial cascading.
2013-03-12 16:03:58 -07:00
Justin Hileman 72007e65b4 Simplify setPartials nested ifs. 2013-03-12 15:29:18 -07:00
Justin Hileman 12d6884b4b Improve test coverage for custom escapers and charsets. 2013-01-26 16:48:35 -08:00
Justin Hileman c75b4c2e0b Fix compiled templates' PSR-2 compliance. 2013-01-26 16:34:16 -08:00
Justin Hileman d5e199b3b9 Update build_bootstrap with all the new classes! 2013-01-26 16:25:57 -08:00
Justin Hileman a777c587f2 Add resolveValue method to base Template.
DRYs up compiled class output a bit and makes things FASTER!

Speeds up value resolution by 33% for primitives, 25% for methods and properties, and 10% for lambdas.
2013-01-26 16:19:06 -08:00
Justin Hileman cf76a4b8f9 Remove unused escape param from renderInternal 2013-01-26 14:49:14 -08:00
Justin Hileman 05e527fe21 Don't instantiate a LambdaHelper for classes with no Lambdas :) 2013-01-26 14:36:24 -08:00
Justin Hileman 38453d0eac Merge remote-tracking branch 'rothshahar/patch-1' into dev 2013-01-24 16:45:04 -08:00
Justin Hileman b1ca6f3cae Update Lambda Helper docblock. It was a lie. 2013-01-23 06:24:15 -08:00
Justin Hileman e5bc8d5edf Add a CascadingLoader implementation. 2013-01-21 10:26:12 -08:00
Justin Hileman b22d15a759 Add an inline template loader.
This loader is awesome for micro-frameworks such as Silex :)
2013-01-21 10:03:57 -08:00
Justin Hileman 59020c2e4f Remove unnecessary @implements annotations. 2013-01-21 10:02:58 -08:00