Commit Graph

  • 050438f282 Merge branch '3.x' into 4.x 4.x Fabien Potencier 2026-09-30 22:42:17 +02:00
  • d79aaf70a5 documentation #4975 Document the backward compatibility promise (fabpot) 3.x Fabien Potencier 2026-09-30 22:37:59 +02:00
  • 3f78c6fba4 Document the backward compatibility promise Fabien Potencier 2026-09-27 09:51:56 +02:00
  • 380406b791 minor #4954 Speed up loading compiled templates that OPcache already holds (nicolas-grekas) Fabien Potencier 2026-09-30 22:20:41 +02:00
  • ef3780c2e0 Speed up loading compiled templates that OPcache already holds Nicolas Grekas 2026-09-25 16:54:20 +02:00
  • c471d2ad58 minor #4976 Speed up traversing nodes with node visitors (nicolas-grekas) Fabien Potencier 2026-09-30 22:13:13 +02:00
  • 69fefec125 Speed up traversing nodes with node visitors Nicolas Grekas 2026-09-27 09:40:05 +02:00
  • e7de480373 feature #4951 Allow skipping the directory check when adding paths to FilesystemLoader (nicolas-grekas) Fabien Potencier 2026-09-30 21:59:42 +02:00
  • 9e1e2e2cea Allow skipping the directory check when adding paths to FilesystemLoader Nicolas Grekas 2026-09-25 15:19:42 +02:00
  • 9540a2d078 feature #4971 Always allow the safe built-in tags, filters, and functions in a sandbox (fabpot) Fabien Potencier 2026-09-30 10:57:23 +02:00
  • d8d8ad12bf Always allow the safe built-in tags, filters, and functions in a sandbox fix-sandbox-always-allowed-builtins Fabien Potencier 2026-09-26 10:14:20 +02:00
  • 724e078955 Merge branch '3.x' into 4.x Fabien Potencier 2026-09-29 18:58:11 +02:00
  • c72c875b91 bug #4980 Fix the deprecated tag generating invalid PHP for an integer message (fabpot) Fabien Potencier 2026-09-28 12:38:24 +02:00
  • c6f1ef9521 Fix the deprecated tag generating invalid PHP for an integer message Fabien Potencier 2026-09-27 20:06:42 +02:00
  • d79ac7e60d bug #4974 Fix the loop variable of a for tag being undefined in the sequence of a nested loop (fabpot) Fabien Potencier 2026-09-28 12:26:36 +02:00
  • 3b32fb9231 bug #4979 Reject the spread operator outside sequences, mappings, and call arguments (fabpot) Fabien Potencier 2026-09-28 12:25:34 +02:00
  • b336924298 feature #4966 Always allow the loop variable in sandboxed templates (fabpot) Fabien Potencier 2026-09-28 12:24:40 +02:00
  • a04ae6d636 Reject the spread operator outside sequences, mappings, and call arguments Fabien Potencier 2026-09-27 19:43:42 +02:00
  • 42735a2cad Always allow the loop variable in sandboxed templates fix-sandbox-loop Fabien Potencier 2026-09-26 13:46:24 +02:00
  • 0c90971a98 Fix the loop variable of a for tag being undefined in the sequence of a nested loop Fabien Potencier 2026-09-26 10:54:52 +02:00
  • 42a5ec12f5 Merge branch '3.x' into 4.x Fabien Potencier 2026-09-26 10:46:04 +02:00
  • 7bf3a6b3f5 feature #4967 Render the for else clause when the loop condition skips every item (fabpot) Fabien Potencier 2026-09-26 10:44:51 +02:00
  • 3cb7eeab01 bug #4970 Name the IntegrationTestCase data providers provideTests() and provideLegacyTests() like on 3.x (fabpot) Fabien Potencier 2026-09-26 10:44:20 +02:00
  • cc77836470 Name the IntegrationTestCase data providers provideTests() and provideLegacyTests() like on 3.x fix-integration-test-provider-names Fabien Potencier 2026-09-26 09:35:14 +02:00
  • 4241bb73fe bug #4964 Discard what the non-selected branch of a guard tag registers on the parser (fabpot) Fabien Potencier 2026-09-26 10:43:26 +02:00
  • d5011f4654 Discard what the non-selected branch of a guard tag registers on the parser Fabien Potencier 2026-09-26 09:07:40 +02:00
  • 14a0e4adb3 bug #4960 Reset the escaping state when compiling a new template after a compilation error (fabpot) Fabien Potencier 2026-09-26 10:41:59 +02:00
  • 39642e4cdf Reset the escaping state when compiling a new template after a compilation error Fabien Potencier 2026-09-25 23:43:04 +02:00
  • f2ba4ec53f bug #4961 Reject an autoescape strategy that is neither a string nor false at compile time (fabpot) Fabien Potencier 2026-09-26 10:39:17 +02:00
  • 6ec06d1883 bug #4959 Reject a Template instance created by another environment when resolving templates (fabpot) Fabien Potencier 2026-09-26 10:38:49 +02:00
  • 7e178be4e5 tidy #4969 Fix the CHANGELOG entry about Environment::getGlobals() (fabpot) Fabien Potencier 2026-09-26 10:37:48 +02:00
  • b201be0afd tidy #4957 4.x cleanup (fabpot) Fabien Potencier 2026-09-26 10:37:23 +02:00
  • 550ac879b3 documentation #4958 3.x doc fixes (fabpot) Fabien Potencier 2026-09-26 10:36:51 +02:00
  • 452419d64a documentation #4962 Fix the autoescape documentation about static expressions (fabpot) Fabien Potencier 2026-09-26 10:36:25 +02:00
  • 4882f353ed tidy #4968 Remove the opcache preload hint for a class ExtensionSet no longer extends (fabpot) Fabien Potencier 2026-09-26 10:35:52 +02:00
  • c7c9f62b0f bug #4972 Fix the sandbox not reporting the line of a rejected guard tag (fabpot) Fabien Potencier 2026-09-26 10:35:30 +02:00
  • acab707eb2 documentation #4973 Use sandbox policy examples that remain meaningful in Twig 4.0 (fabpot) Fabien Potencier 2026-09-26 10:32:18 +02:00
  • 677f049e64 Use sandbox policy examples that remain meaningful in Twig 4.0 Fabien Potencier 2026-09-26 10:30:06 +02:00
  • 674f7d84ef Merge branch '3.x' into 4.x Fabien Potencier 2026-09-26 10:26:14 +02:00
  • e0af798ea9 minor #4965 Rewrite the sandbox documentation around what developers need to know (fabpot) Fabien Potencier 2026-09-26 10:23:05 +02:00
  • b1d6b51183 Fix the sandbox not reporting the line of a rejected guard tag fix-guard-line Fabien Potencier 2026-09-26 10:22:21 +02:00
  • 9d24327f8d Rewrite the sandbox documentation around what developers need to know Fabien Potencier 2026-09-26 10:02:08 +02:00
  • eb5687a248 Fix the CHANGELOG entry about Environment::getGlobals() fix-changelog-getglobals Fabien Potencier 2026-09-26 09:34:23 +02:00
  • 221e5eaa8c Remove the opcache preload hint for a class ExtensionSet no longer extends fix-extensionset-preload Fabien Potencier 2026-09-26 09:34:10 +02:00
  • 67b4491eda Render the for else clause when the loop condition skips every item fix-for-if-else Fabien Potencier 2026-09-26 09:33:24 +02:00
  • 4fb86a896f Reject an autoescape strategy that is neither a string nor false at compile time Fabien Potencier 2026-09-26 08:16:47 +02:00
  • 4493d0747a Merge the CHANGELOG entries about the inert attributes 4.x-cleanup Fabien Potencier 2026-09-26 08:09:27 +02:00
  • 2a16651387 Explain that the inert attribute classes are kept for static analysis, not class loading Fabien Potencier 2026-09-26 08:07:31 +02:00
  • 1478f9efcd Fix the class name and a missing parenthesis in the runtime loader example 3.x-doc-fixes Fabien Potencier 2026-09-25 23:53:01 +02:00
  • e883536e64 Replace the deprecated twig_test_even function in the custom test example Fabien Potencier 2026-09-25 23:53:00 +02:00
  • db3aeb7379 Use the current variable node class in the node tree example Fabien Potencier 2026-09-25 23:53:00 +02:00
  • 991294ae39 Drop the 3.x version from the SandboxExtension internal annotation Fabien Potencier 2026-09-25 23:52:43 +02:00
  • 69a4e43f0a Remove the inert FirstClassTwigCallableReady attribute from the built-in nodes Fabien Potencier 2026-09-25 23:52:28 +02:00
  • bb0dbfc229 Stop passing the template source to the sandbox checks that no longer use it Fabien Potencier 2026-09-25 23:52:13 +02:00
  • a5abf30b19 Remove the deprecation getters from TwigCallableInterface Fabien Potencier 2026-09-25 23:51:30 +02:00
  • dbfd06ffba Make Markup final Fabien Potencier 2026-09-25 23:51:14 +02:00
  • 95a176f2bf Fix the autoescape documentation about static expressions Fabien Potencier 2026-09-25 23:44:47 +02:00
  • 605b1278f7 Reject a Template instance created by another environment when resolving templates Fabien Potencier 2026-09-25 23:34:59 +02:00
  • 40b0349558 Run the attribute function fixtures as regular integration tests Fabien Potencier 2026-09-25 23:31:09 +02:00
  • 6b7dfe3dcc Remove outdated references to older Twig versions Fabien Potencier 2026-09-25 23:31:09 +02:00
  • ea98cfa8c8 Remove the static test container fallback from the extra bundle integration test Fabien Potencier 2026-09-25 23:31:09 +02:00
  • 57ef149e3b Remove the League CommonMark fallback for converters without convert() Fabien Potencier 2026-09-25 23:31:09 +02:00
  • 07b8427e26 Merge branch '3.x' into 4.x Fabien Potencier 2026-09-25 18:04:23 +02:00
  • 2904612341 minor #4949 Skip the property checker call and memoize the class constant probe when reading an object attribute (fabpot) Fabien Potencier 2026-09-25 16:01:04 +02:00
  • ddd9045b5c Skip the property checker call and memoize the class constant probe when reading an object attribute Fabien Potencier 2026-09-24 23:19:18 +02:00
  • cbcfe403a0 bug #4947 Stop looking up a macro twice in its own namespace when it is declared by a parent (fabpot) Fabien Potencier 2026-09-25 15:50:23 +02:00
  • 2558df70b6 Bump version Fabien Potencier 2026-09-25 15:20:29 +02:00
  • 8c737079b7 Prepare the 3.30.0 release v3.30.0 Fabien Potencier 2026-09-25 15:20:01 +02:00
  • 052c7efdde minor #4950 Fetch the escaper runtime once in the constructor of templates that escape (fabpot) Fabien Potencier 2026-09-25 12:45:04 +02:00
  • 3417f483bf Fetch the escaper runtime once in the constructor of templates that escape Fabien Potencier 2026-09-25 08:18:29 +02:00
  • 9e198d7637 minor #4948 Compare the date formatter prototype pattern with the derived one once per pattern (fabpot) Fabien Potencier 2026-09-25 12:41:20 +02:00
  • 22e31198e7 bug #4946 Fix split trailing newline (fabpot) Fabien Potencier 2026-09-25 12:39:42 +02:00
  • 00861d50ab Fix split trailing newline Fabien Potencier 2026-09-25 07:33:47 +02:00
  • 81cc196cae Bump version Fabien Potencier 2026-09-25 07:50:37 +02:00
  • e3f0d6fb4c Stop looking up a macro twice in its own namespace when it is declared by a parent Fabien Potencier 2026-09-25 07:34:36 +02:00
  • 10fe9808bb Compare the date formatter prototype pattern with the derived one once per pattern Fabien Potencier 2026-09-25 07:43:00 +02:00
  • c8d782ea0b Deprecate calling TemplateWrapper::unwrap() without arguments as of 3.30 and list the fix in the CHANGELOG Fabien Potencier 2026-09-25 07:33:53 +02:00
  • 9c3d58e638 Fix coding standards Fabien Potencier 2026-09-25 07:34:01 +02:00
  • 4d073d938a Drop a comment restating the code and clarify the fully named macro call fast path Fabien Potencier 2026-09-25 07:34:01 +02:00
  • 9d33a10324 minor #4945 Speed up adding extensions to an environment (nicolas-grekas) Fabien Potencier 2026-09-24 19:20:19 +02:00
  • d3d13f9b1a Speed up adding extensions to an environment Nicolas Grekas 2026-09-24 18:47:14 +02:00
  • cc16fa8991 feature #4941 Cleanup 4.x - Stop detecting echo and print in compiled nodes (fabpot) Fabien Potencier 2026-09-23 10:50:32 +01:00
  • 3c89f82d4a Cleanup 4.x - Stop detecting echo and print in compiled nodes Fabien Potencier 2026-09-22 22:56:34 +01:00
  • efa368c8d7 minor #4940 Reuse the already resolved callable when compiling call arguments (fabpot) Fabien Potencier 2026-09-23 07:18:00 +01:00
  • 16be8af8f5 Reuse the already resolved callable when compiling call arguments Fabien Potencier 2026-09-22 21:49:25 +01:00
  • 154ae335bb minor #4939 Compile the generator guard as an unreachable yield instead of a yield from (fabpot) Fabien Potencier 2026-09-23 07:16:36 +01:00
  • 4d5d233776 Compile the generator guard as an unreachable yield instead of a yield from Fabien Potencier 2026-09-22 21:30:14 +01:00
  • 10adb67bcf Remove deprecated code Fabien Potencier 2026-09-22 21:17:13 +01:00
  • a38543b5a3 Fix merge conflict resolution Fabien Potencier 2026-09-22 21:14:25 +01:00
  • f3bacf3877 Merge branch '3.x' into 4.x Fabien Potencier 2026-09-22 21:10:53 +01:00
  • c33dd1c473 feature #4938 Speed up loading a template that the environment has already loaded (fabpot) Fabien Potencier 2026-09-22 21:03:17 +01:00
  • 6f94a47ce1 Reuse the template wrapper of an already loaded template Fabien Potencier 2026-09-22 16:56:27 +01:00
  • ff4a1c6575 bug #4937 Stop the escaping safe analysis from retaining every analyzed node (fabpot) Fabien Potencier 2026-09-22 20:42:55 +01:00
  • 8274571d04 Stop the escaping safe analysis from retaining every analyzed node Fabien Potencier 2026-09-22 16:47:34 +01:00
  • a890011699 feature #4936 Allow to call TemplateWrapper::unwrap() without arguments (derrabus) Fabien Potencier 2026-09-22 11:27:53 +01:00
  • bfbe89e3a3 Allow to call TemplateWrapper::unwrap() without arguments Alexander M. Turek 2026-09-21 18:10:25 +02:00
  • 4b7c937485 feature #4934 Expose the escaping strategy a template was compiled with (fabpot) Fabien Potencier 2026-09-21 11:30:14 +01:00
  • 26812ebc0d Expose the escaping strategy a template was compiled with Fabien Potencier 2026-09-19 09:12:49 +01:00
  • ea3258396c minor #4933 Improve macro call performance (fabpot) Fabien Potencier 2026-09-20 21:28:10 +01:00
  • a8ee6dd762 Improve macro call performance macro-call-performance Fabien Potencier 2026-09-18 18:29:34 +01:00