Commit Graph
100 Commits
Author SHA1 Message Date
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
Justin Hileman 5fcd9f6d25 mention UnknownTemplateException in loader interface 2013-01-20 15:52:21 -08:00
Justin Hileman a20068657e Link to main docs more prominently 2013-01-20 11:24:59 -08:00
Justin Hileman 1f07edd1ad Bail early on log formatting if message has no placeholders. 2013-01-20 10:59:36 -08:00
Justin Hileman d0023b5baa Merge branch 'feature/catchable-exceptions' into dev 2013-01-20 10:51:06 -08:00
Justin Hileman 8b02366a3f Add test coverage for new exception types. 2013-01-20 10:50:00 -08:00
Justin Hileman 0436c59477 Improve Mustache exception types, catchability.
* Subclass common exception types (runtime, logic, invalid argument).
 * Add new "unknown x" exceptions for filters, helpers and templates.
 * Make all Mustache exceptions implement Mustache_Exception interface… Gotta catch 'em all!
2013-01-20 10:35:55 -08:00
Justin Hileman 5e69e63ffb Merge branch 'feature/bootstrap' into dev 2013-01-12 09:22:59 -08:00
Justin Hileman d766076b5a Add LambdaHelper and Logger to build_bootstrap. 2013-01-12 09:17:33 -08:00
Justin Hileman 01bcf6a51a Add a build_bootstrap script.
Generates `mustache.php`, a single-file bootstrap library which is a lot easier to include in your project.
2013-01-12 09:10:33 -08:00
Justin Hileman ff66639719 Add Symfony ClassLoader (needed for bootstrap) 2013-01-12 09:10:10 -08:00
Justin Hileman 64dbf3fcb0 Merge branch 'release/2.1.0' into dev 2013-01-11 23:22:53 -08:00
Justin Hileman 6ac9cf03e4 Merge branch 'release/2.1.0' 2013-01-11 23:18:03 -08:00
Justin Hileman 638ed9abc1 Bump version to 2.1.0 2013-01-11 23:17:53 -08:00
Justin Hileman d252fddf4a Add plug for PSR-3 2013-01-11 22:53:27 -08:00
Justin Hileman 1515f5126b Update logger to implement accepted PSR log spec
Add tests!
2013-01-11 22:48:43 -08:00