ironflow / framework
Un framework PHP moderne, performant et modulaire
Requires
- php: ^8.2
- cboden/ratchet: ^0.4.4
- doctrine/inflector: ^2.0
- fakerphp/faker: ^1.23
- intervention/image-symfony: ^1.2
- league/oauth2-client: ^2.8
- monolog/monolog: ^3.0
- nesbot/carbon: ^3.8
- phpoffice/phpspreadsheet: ^1.29
- phpunit/phpunit: ^10.0
- ratchet/pawl: ^0.4.1
- react/event-loop: ^1.5
- spyc/spyc: ^0.6.3
- symfony/console: ^6.0
- symfony/http-foundation: ^6.0
- symfony/process: ^6.0
- symfony/routing: ^6.0
- symfony/translation: ^7.2
- symfony/var-dumper: ^6.0
- twig/twig: ^3.0
- vlucas/phpdotenv: ^5.5
Requires (Dev)
- phpdocumentor/phpdocumentor: ^3.3
- phpunit/phpunit: ^10.0
- symfony/var-dumper: ^6.0
This package is not auto-updated.
Last update: 2025-04-24 08:59:29 UTC
README
📋 Table des matières
- Présentation
- Fonctionnalités
- Prérequis
- Installation
- Configuration
- Utilisation
- Migrations
- Développement
- Tests
- Contribuer
- License
À propos
IronFlow est un framework PHP moderne, performant et modulaire, conçu pour simplifier le développement d'applications web tout en offrant une base solide et extensible. Il combine puissance et simplicité pour accélérer votre développement.
Caractéristiques principales
- Architecture MVC moderne et flexible
- Système de routage intuitif et performant
- ORM puissant avec relations fluides
- Système de templates Twig
- Gestion avancée des sessions et du cache
- Système d'authentification robuste
- Validation des données complète
- Gestion des événements et des listeners
- Support multi-langues
- Système de migrations de base de données
- Console CLI puissante
- Support des WebSockets
- Panneau d'administration intégré (CraftPanel)
🌟 Fonctionnalités Clés
Performance
- Architecture légère et optimisée
- Système de cache intégré
- Chargement différé des composants
- Optimisation automatique des requêtes
Sécurité
- Protection CSRF intégrée
- Validation des données robuste
- Échappement automatique des sorties
- Gestion sécurisée des sessions
Développement
- ORM puissant avec relations fluides
- Système de routage intuitif
- Gestionnaire de dépendances intégré
- Support natif des tests unitaires
Extensibilité
- Architecture modulaire
- Système de plugins
- Hooks et événements personnalisables
- Support multi-drivers
📋 Prérequis Système
- PHP 8.2 ou supérieur
- Composer 2.0+
- Extensions PHP requises :
- PDO
- JSON
- Mbstring
- OpenSSL
- Tokenizer
- XML
- Une base de données MySQL, PostgreSQL ou SQLite
- Un serveur web (Apache, Nginx, etc.)
🚀 Installation Rapide
Via Composer
# Création du projet composer create-project ironflow/framework mon-projet # Configuration cd mon-projet cp .env.example .env # Génération de la clé d'application php forge key:generate # Installation des dépendances composer install # Configuration des permissions chmod -R 777 storage bootstrap/cache
Manuellement
-
Cloner le repository:
git clone https://github.com/ironflow/framework.git cd framework
-
Installer les dépendances:
composer install
-
Configurer l'environnement:
cp .env.example .env php forge key:generate
-
Lancer le serveur:
php forge serve
Votre application est maintenant accessible à l'adresse http://localhost:8000
📁 Architecture du Projet
mon-projet/
├── app/ # Code de l'application
│ ├── Controllers/ # Contrôleurs
│ ├── Models/ # Modèles
│ ├── Middleware/ # Middleware
│ └── Providers/ # Providers
├── config/ # Fichiers de configuration
├── database/ # Migrations et seeders
├── public/ # Point d'entrée public
├── resources/ # Ressources (vues, assets)
├── routes/ # Définition des routes
├── src/ # Code source du framework
├── storage/ # Fichiers générés
├── tests/ # Tests unitaires et fonctionnels
└── vendor/ # Dépendances
⚙️ Configuration
Base de données
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ironflow DB_USERNAME=root DB_PASSWORD=password
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=587 MAIL_USERNAME=username MAIL_PASSWORD=password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=hello@example.com
Cache
CACHE_DRIVER=file CACHE_PREFIX=ironflow_ CACHE_TTL=3600
🛠️ Commandes Forge
Génération de Code
# Création de contrôleurs php forge make:controller UserController # Création de modèles php forge make:model User # Création de migrations php forge make:migration create_users_table # Création de seeders php forge make:seeder UserSeeder
Base de données
# Exécution des migrations php forge migrate # Annulation des migrations php forge migrate:rollback # Exécution des seeders php forge db:seed # Réinitialisation de la base de données php forge migrate:fresh --seed
Maintenance
# Nettoyage du cache php forge cache:clear # Optimisation php forge optimize # Vérification de l'état php forge status
🛠️ Exemple d'utilisation
Créer une route
// routes/web.php Route::get('/accueil', [HomeController::class, 'index']); Route::post('/articles', [ArticleController::class, 'store']); Route::resource('users', 'UserController');
Créer un contrôleur
php forge make:controller HomeController
// app/Controllers/HomeController.php namespace App\Controllers; use IronFlow\Http\Controller; use IronFlow\Http\Request; use IronFlow\Http\Response; class HomeController extends Controller { public function index(Request $request) { return $this->view('home.index', [ 'title' => 'Accueil' ]); } }
Créer un modèle
php forge make:model Article
// app/Models/Article.php namespace App\Models; class Article extends Model { protected $table = 'articles'; protected $fillable = ['title', 'content', 'author_id']; protected $casts = [ 'created_at' => 'datetime', 'updated_at' => 'datetime' ]; public function author() { return $this->belongsTo(User::class, 'author_id'); } }
🗃️ Migrations
Créer une migration
php forge make:migration create_articles_table
// database/migrations/2023_01_15_create_articles_table.php public function up() { Schema::createTable('articles', function (Anvil $table) { $table->id(); $table->string('title'); $table->text('content'); $table->foreignId('author_id')->constrained('users'); $table->timestamps(); }); } public function down() { Schema::dropTableIfExists('articles'); }
Exécuter les migrations
php artisan migrate
📚Documentation
La documentation complète est disponible sur https://ironflow.dev/docs
Sections principales
🤝 Contribution
Nous accueillons chaleureusement les contributions ! Voici comment participer :
- Fork le projet
- Créez une branche (
git checkout -b feature/AmazingFeature
) - Committez vos changements (
git commit -m 'Add some AmazingFeature'
) - Poussez vers la branche (
git push origin feature/AmazingFeature
) - Ouvrez une Pull Request
Standards de Code
- Suivez les standards PSR-12
- Ajoutez des tests unitaires
- Mettez à jour la documentation
- Respectez notre Guide de Contribution
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
👥 Équipe
- Aure Dulvresse - Lead Developer
- Autre Membre - Core Developer
📞 Support
- Documentation : https://ironflow.dev/docs
- Issues : GitHub Issues
- Discussions : GitHub Discussions
- Email : ironflow.framework@gamil.com
🙏 Remerciements
- PHP - Le langage de programmation
- Composer - Gestionnaire de dépendances
- PDO - Extension de base de données
- Symfony Components - Composants réutilisables
- Laravel - Inspiration pour certaines fonctionnalités
- Ruby On Rail - Inspiration pour certaines fonctionnalités
- Django - Inspiration pour certaines fonctionnalités