Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Latte Laravel Package

latte/latte

Latte is a secure, fast PHP templating engine for clean, readable templates with powerful macros, automatic escaping, inheritance, and easy integration. Ideal for building maintainable views in PHP apps, including Laravel or standalone projects.

View on GitHub
Deep Wiki
Context7

☕ Latte: the intuitive and fast template engine for those who want the most secure PHP sites. Introduces context-sensitive escaping.

Frequently asked questions about Latte
Can I use Latte as a direct replacement for Laravel Blade in my existing project?
Latte can replace Blade but requires adjustments. Blade directives like `@if` or `@foreach` don’t exist in Latte (use `{if}` or `{foreach}` instead), and template files must be renamed from `.blade.php` to `.latte`. For a smooth transition, consider a hybrid approach or custom extensions to bridge syntax gaps.
How does Latte’s security model compare to Laravel Blade’s auto-escaping?
Latte’s auto-escaping is stricter and context-aware by default, reducing XSS risks more aggressively than Blade. It escapes HTML, JS, and CSS automatically unless explicitly marked as safe with `|raw`. Blade’s escaping is opt-in for some cases, while Latte’s is opt-out, making it a stronger choice for security-focused Laravel apps.
Will Latte work with Laravel’s service container and dependency injection?
Yes, Latte integrates seamlessly with Laravel’s container. You can bind the `Engine` class as a service in your `AppServiceProvider` and inject it anywhere, just like Laravel’s `View` facade. Example: `app()->bind('latte', function () { return new Engine(__DIR__.'/../resources/views'); });`
Does Latte support Laravel’s caching system (e.g., `storage/framework/views`)?
Latte supports caching but requires manual configuration. Set the cache directory to Laravel’s storage path using `setCacheDirectory(storage_path('framework/views/latte'))`. This ensures compiled templates align with Laravel’s view caching, though Latte’s compiled output is PHP classes, not Blade’s cached files.
Are there performance benchmarks comparing Latte to Blade in Laravel?
Latte’s compiled templates often outperform Blade due to its ahead-of-time compilation into PHP classes, reducing runtime overhead. Benchmarks show Latte can render templates **20–50% faster** in high-traffic scenarios, especially with caching enabled. Test in your staging environment to compare with Blade’s pre-compiled views.
How do I handle Laravel’s form helpers (e.g., `Form::text()`, CSRF tokens) in Latte?
Laravel’s form helpers won’t work out-of-box with Latte. Create a facade or middleware to wrap them, or use Latte’s `TranslatorExtension` for localization and custom filters for validation errors. For CSRF, use Laravel’s `@csrf` meta tag or a Latte macro. Example: `{include 'partials/csrf'}` with a dedicated Latte template.
What Laravel versions and PHP versions does Latte officially support?
Latte requires **PHP 8.2+** and is compatible with Laravel **10.x and 11.x** (LTS versions). While it works with older Laravel versions, PHP 8.2+ features like named arguments and enums are leveraged for better performance. Always check the [Latte GitHub](https://github.com/nette/latte) for the latest compatibility notes.
Can I use Latte’s macros or filters to extend functionality like Blade directives?
Yes, Latte’s macros and filters let you create custom syntax. For example, you can define a macro to mimic Blade’s `@stack` using `{layout}` and `{block}` in Latte. Filters (e.g., `|upper`) or custom functions (e.g., `{myCustomFunction}`) can replace Blade’s `@php` or `@component` logic. Document these in your team’s style guide.
How do I debug Latte templates in development (e.g., syntax errors, missing variables)?
Latte provides detailed error messages by default, including line numbers and context. Enable `debugMode(true)` in your `Engine` configuration to see full stack traces. For IDE support, configure PHPStorm/WebStorm to recognize `.latte` files as PHP templates. Latte’s exceptions integrate with Laravel’s error handler for consistent logging.
Are there alternatives to Latte for Laravel that offer similar security and performance?
Blade is Laravel’s native alternative, but for stricter security and performance, consider **Twig** (via `symfony/twig-bridge`) or **PHP-Template** (for minimalism). Latte stands out for its **scoped loop variables**, **smart HTML attributes**, and **null-safe filters**, which are harder to replicate in other engines. If you need Blade-like syntax, explore **Latte extensions** or hybrid setups.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium