astral-php / astral-twide
Moteur de templates compilé et composant optionnel d’intégration pour Astral PHP.
Requires
- php: ^8.3
- astral-php/astral-core: ^2.0
- astral-php/astral-utilities: ^0.1.0
Requires (Dev)
- phpunit/phpunit: ^10.5 || ^11.0
Suggests
- ext-mbstring: Requis pour le filtre truncate de UtilitiesExtension
Provides
None
Conflicts
None
Replaces
None
README
Moteur de templates compilé, extensible, opt-in pour Astral MVC. Syntaxe dédiée (.twide) — les apps officielles Astral restent sur les vues PHP natives.
1.0.0 — feuille 2.x (
PHP ^8.3,astral-core ^2). Packagist :composer require astral-php/astral-twide.
- Paquet :
astral-php/astral-twide - Namespace :
Astral\Twide\ - PHP :
^8.3 - Core :
astral-php/astral-core:^2.0 - Utilities :
astral-php/astral-utilities:^0.1.0
Compatibilité
| Contrainte | Valeur |
|---|---|
| PHP | ^8.3 |
| astral-core | ^2.0 |
| Provider | TwideServiceProvider (optionnel) |
Installation
Local (path) :
"repositories": [{ "type": "path", "url": "../astral-twide" }]
composer require astral-php/astral-twide:@dev
Packagist :
composer require astral-php/astral-twide
Développement du dépôt :
composer install
composer test
UtilitiesExtension s’appuie sur astral-utilities. Le filtre truncate nécessite ext-mbstring.
Démarrage rapide
use Astral\Twide\Twide; $twide = new Twide([ 'views' => __DIR__ . '/views', 'cache' => __DIR__ . '/../storage/cache/views', ]); $html = $twide->render('users', [ 'title' => 'Utilisateurs', 'users' => [['name' => 'Ada'], ['name' => 'Lin']], ]);
views/users.twide :
<h1>{{ title }}</h1>
@for(user in users)
<p>{{ loop.index }}. {{ user.name }}</p>
@endfor
Intégration Astral MVC 2.x
Enregistrer le provider dans config/dependencies.php, puis rendre via $this->twide(...) (opt-in explicite, sans remplacer render() PHP).
Voir docs/ASTRAL-MVC-INTEGRATION.md et le guide des vues docs/ASTRAL-TWIDE-GUIDE-VUES.md.
Syntaxe (implémentée)
- Sorties
{{ }}(échappées) et{! !}(brutes) - Commentaires
{{-- --}} @if/@elseif/@else/@endif@for/@endfor(loop.*)- Composition :
@extends,@section,@yield,@include - Composants :
@component,@slot - Piles :
@push,@stack - Extensions / filtres (dont Utilities)
- Cache compilé +
TwideViewAdapter
Extension Utilities
use Astral\Twide\Extension\UtilitiesExtension; $twide->addExtension(new UtilitiesExtension());
Filtres : slug, truncate, excerpt, ascii, date, diff_for_humans, arr_get, … — docs/EXTENSIONS.md.
Sécurité
{{ }}échappe ;{! !}seulement pour HTML de confiance- Pas d’exécution PHP arbitraire dans les templates
- Cache sous
storage/cache/views: non public, droits d’écriture PHP
Détails : docs/SECURITY.md.
Documentation
| Doc | Rôle |
|---|---|
docs/ASTRAL-TWIDE-GUIDE-VUES.md |
Référence auteur de vues (P1–P5) |
docs/ASTRAL-MVC-INTEGRATION.md |
Provider + contrôleur |
docs/INSTALLATION.md |
Install |
docs/EXTENSIONS.md |
Extensions |
docs/SECURITY.md |
Sécurité |
docs/DEBUG.md |
Messages d’erreur / debug |