impulsephp / core
The core of the ImpulsePHP framework: component engine, rendering system, state management, etc.
v1.0.0-beta
2025-08-03 09:20 UTC
Requires
- php: >=8.2
- ext-dom: *
- ext-libxml: *
- ext-openssl: *
- illuminate/view: ^12.18
- scssphp/scssphp: ^2.0
- symfony/console: ^7.3
- symfony/process: ^7.3
- twig/twig: ^3.21
Requires (Dev)
- phpunit/phpunit: ^12.2.1
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2026-04-11 17:12:40 UTC
README
impulsephp/core est le socle du framework ImpulsePHP. Il fournit :
- le bootstrap de l'application ;
- le conteneur de services ;
- les providers ;
- la couche HTTP ;
- les pages, composants et layouts ;
- les renderers ;
- le cache HTML ;
- les collecteurs d'assets, logs et profils.
Installation
composer require impulsephp/core
Configuration minimale
<?php return [ 'template_engine' => null, 'template_path' => 'views', 'providers' => [], 'middlewares' => [], 'locale' => 'fr', 'supported' => ['fr', 'en'], 'cache' => [ 'enabled' => true, 'ttl' => 600, ], 'devtools' => false, ];
Démarrage rapide
use Impulse\Core\App; require_once __DIR__ . '/vendor/autoload.php'; App::boot();
Exemple de page
namespace App\Page; use App\Layout\DefaultLayout; use Impulse\Core\Attributes\PageProperty; use Impulse\Core\Component\AbstractPage; #[PageProperty( route: '/', name: 'home', title: 'Accueil', layout: DefaultLayout::class )] final class HomePage extends AbstractPage { public function template(): string { return <<<HTML <h1>Accueil</h1> HTML; } }
Exemple de composant
namespace App\Component; use Impulse\Core\Attributes\Action; use Impulse\Core\Component\AbstractComponent; final class CounterComponent extends AbstractComponent { public function setup(): void { $this->state('count', 0); } #[Action] public function increment(): void { $this->count++; } public function template(): string { return <<<HTML <button>{$this->count}</button> HTML; } }
HTTP
Redirection simple
use Impulse\Core\Http\Response; return Response::redirect('/login');
Redirection par nom de page
return Response::redirectToPage('login');
Message flash
return Response::redirectToPage('login') ->withFlash('registered', '1');
Puis sur la requête suivante :
$registered = $request->getFlash('registered');
DevTools provider
Pour initialiser les DevTools dans un projet :
return [ 'env' => 'dev', 'devtools' => [ 'enabled' => true, 'address' => 'tcp://127.0.0.1:9567', ], 'providers' => [ Impulse\Core\Provider\DevToolsProvider::class, ], ];
Documentation détaillée
La documentation détaillée est disponible dans docs/.
Principaux guides :
- Architecture et cycle de vie
- Configuration
- Pages, composants et routage
- Layouts
- HTTP, Request, Response et middleware
- Conteneur et providers
- Providers
- Renderers
- Événements, store et DevTools
- Cache et performances
- CLI
bin/impulse
Tests
composer test
Licence
MIT