1. Go to this page and download the library: Download nexa/framework library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// Déclencher un événement
Event::dispatch('user.created', $user);
// Écouter un événement
Event::listen('user.created', function($user) {
// Envoyer un email de bienvenue
Mail::send('welcome', $user);
});
// Wildcards
Event::listen('user.*', function($event, $data) {
Log::info("Événement utilisateur: {$event}");
});
// workspace/entities/User.php
#[AutoDiscover, Cache('users'), Validate, Secure]
class User extends Entity
{
#[HasMany(Task::class)]
public function tasks() { return $this->hasMany(Task::class); }
#[Intelligent]
public function getPerformanceScore() {
return $this->ai()->calculateScore();
}
}
// workspace/handlers/UserHandler.php
#[AutoRoute('/api/users'), Middleware('auth'), Cache, Secure]
class UserHandler extends Handler
{
#[Get('/'), Paginate, Cache(300)]
public function index() {
return User::quantum()->paginate();
}
#[Post('/'), Validate(UserRequest::class), Audit]
public function store(UserRequest $request) {
return User::quantum()->create($request->validated());
}
}
// Utilisation des événements prédéfinis
use Nexa\Events\UserRegistered;
use Nexa\Events\UserLoggedIn;
use Nexa\Events\ModelCreated;
// Instancier un événement avec des données
$event = new UserRegistered($user);
// Accéder aux données de l'événement
$userId = $event->user->id;
$email = $event->user->email;
// Événement de connexion
$loginEvent = new UserLoggedIn($user, $request->ip());
// Événement de création de modèle
$modelEvent = new ModelCreated($post, 'Post');
$modelName = $modelEvent->modelType; // 'Post'
// Création d'un job
$job = new \Nexa\Queue\Job('App\Jobs\SendEmail', [
'user_id' => 123,
'subject' => 'Bienvenue!',
'content' => 'Merci de votre inscription.'
]);
// Ajout à la queue pour exécution immédiate
\Nexa\Queue\Queue::push($job);
// Ajout à la queue pour exécution différée (60 secondes)
\Nexa\Queue\Queue::later($job, 60);
bash
# Installation via Composer
composer create-project nexa/framework mon-projet
cd mon-projet
# Configuration de base
cp .env.example .env
php nexa key:generate
# Migration de la base de données
php nexa migrate
# Démarrage du serveur de développement
php nexa serve
bash
# Générer un contrôleur
php nexa make:controller UserController
# Générer un modèle
php nexa make:model User
# Créer une migration
php nexa make:migration create_users_table
# Générer un middleware
php nexa make:middleware AuthMiddleware
bash
# Nouveau projet
composer create-project nexa/framework mon-projet
cd mon-projet
# Configuration
cp .env.example .env
php nexa key:generate
# Base de données (optionnel)
php nexa migrate
# Démarrage
php nexa serve
bash
# Créer un contrôleur avec méthodes CRUD
php nexa make:controller ProductController --resource
# Générer un modèle avec migration
php nexa make:model Product --migration
# Créer un middleware personnalisé
php nexa make:middleware AuthMiddleware
# Générer un handler pour API
php nexa make:handler ApiHandler
bash
# Créer une migration
php nexa make:migration create_products_table
# Exécuter les migrations
php nexa migrate
# Rollback des migrations
php nexa migrate:rollback
# Seeder la base de données
php nexa db:seed
bash
# Démarrer le serveur de développement
php nexa serve
# Nettoyer le cache
php nexa cache:clear
# Optimiser l'application
php nexa optimize
# Lancer les tests
php nexa test