forxer/fontawesome-migrator
Composer 安装命令:
composer require forxer/fontawesome-migrator
包简介
Package Laravel pour automatiser la migration de Font Awesome 5 vers Font Awesome 6 (Free et Pro)
README 文档
README
⚠️ Disclaimer
Ce code a été largement généré avec Claude Code (claude.ai/code) à des fins d'apprentissage et pédagogiques. Bien que fonctionnel, je n'ai pas entièrement confiance en l'IA - j'ai dû corriger de nombreuses erreurs et imprécisions tout au long du développement. Utilisez ce package avec prudence et testez soigneusement avant usage en production.
Prérequis
- PHP 8.4+
- Laravel 12.0+
Fonctionnalités
🎯 Migration multi-versions des icônes
- ✅ Migration progressive automatique : Détection intelligente et exécution séquence complète (ex: 4→5→6 en un clic)
- ✅ Architecture multi-versions : FA4 → FA5 → FA6 → FA7 avec MigrationVersionManager
- ✅ Mappings complets officiels : 270 (4→5) + 310 (5→6) + 13 (6→7) icônes
- ✅ Détection automatique de la version source dans votre code
- ✅ Support complet Pro (Light, Duotone, Thin, Sharp) avec fallbacks Free
- ✅ Configuration JSON : Mappings externalisés avec ConfigurationLoader et cache
- ✅ Mappers spécialisés : FontAwesome4To5Mapper, FontAwesome5To6Mapper, FontAwesome6To7Mapper
- ✅ Interface web interactive avec sélecteur de versions temps réel
- ✅ Mapping intelligent des icônes renommées et dépréciées avec fallbacks
🎨 Migration des assets
- ✅ CDN URLs : Migration automatique des liens CDN (toutes versions)
- ✅ Package managers : NPM, Yarn, pnpm (package.json avec extension .json)
- ✅ Build tools : webpack.mix.js avec support des fichiers JS individuels
- ✅ Imports JavaScript : ES6 imports, CommonJS require, dynamic imports
- ✅ Feuilles de style : CSS, SCSS, SASS (@import, URLs)
- ✅ Support Pro & Free : Détection automatique selon la licence
- ✅ Composants Vue/React : Migration complète des templates et scripts
🛠️ Interface et outils avancés
- ✅ Configurateur multi-versions : Interface web
/testsavec sélecteur interactif FA4→5→6→7 - ✅ Validation dynamique : Vérification des migrations supportées en temps réel
- ✅ Aperçu de compatibilité : Breaking changes et recommandations par migration
- ✅ Interface web complète : Dashboard, rapports, migrations avec navigation moderne
- ✅ Documentation centralisée : Documentation simplifiée et intégrée
- ✅ Architecture JSON : Configuration externalisée avec ConfigurationLoader et fallbacks
- ✅ Mode dry-run : Prévisualisation des changements avant application
- ✅ Rapports détaillés : HTML interactifs et JSON avec métadonnées complètes
- ✅ Traçabilité complète : Origine CLI/Web, migrations avec short IDs
- ✅ Design system Bootstrap 5 : Interface moderne, responsive et accessible
Installation
composer require forxer/fontawesome-migrator --dev
Le package sera automatiquement enregistré grâce à la découverte automatique de Laravel.
Une interface sera alors consultable à l'adresse /fontawesome-migrator
🚀 Installation interactive (recommandée)
php artisan fontawesome:install
Cette commande interactive vous guide à travers :
- Configuration personnalisée : Licence (Free/Pro), chemins de scan, options
- Instructions : Prochaines étapes et commandes utiles
- Configuration optimisée : Seules les valeurs modifiées sont sauvegardées
Note pour les membres de AXN-Informatique
La plupart des applications à ce jour (10/09/2025) utilisent webpack via laravel-mix.
Il est donc nécessaire si le projet s'y prète d'ajouter le fichier package.json aux fichiers qui doivent êtres scannés.
Installation manuelle
Si vous préférez configurer manuellement :
php artisan vendor:publish --tag=fontawesome-migrator-config
Configuration
🎯 Configuration optimisée
Le package utilise un système de configuration intelligent : seules les valeurs que vous modifiez sont sauvegardées dans config/fontawesome-migrator.php. Cela simplifie la maintenance et les mises à jour.
Exemple de fichier généré après installation interactive :
<?php return [ /* | Ce fichier contient uniquement les paramètres personnalisés. | Les valeurs par défaut sont définies dans le package. */ 'license_type' => 'pro', 'scan_paths' => [ 'resources/views', 'resources/js', 'resources/css', 'public/css', 'public/js', 'custom/path' // Chemin ajouté ], 'auto_detect_version' => true, 'supported_versions' => [ 'from' => [4, 5, 6], 'to' => [5, 6, 7] ] ];
📋 Configuration complète
Pour voir toutes les options disponibles, publiez la configuration complète :
php artisan vendor:publish --tag=fontawesome-migrator-config-full
Cela créera config/fontawesome-migrator-full.php avec toutes les options documentées :
return [ // Type de licence: 'free' ou 'pro' 'license_type' => env('FONTAWESOME_LICENSE', 'free'), // Configuration multi-versions 'auto_detect_version' => true, 'supported_versions' => [ 'from' => [4, 5, 6], 'to' => [5, 6, 7] ], // Style de fallback si Pro non disponible 'fallback_strategy' => 'solid', // Chemins à analyser 'scan_paths' => [ 'resources/views', 'resources/js', 'resources/css', 'public/css', 'public/js', ], // Extensions de fichiers supportées 'file_extensions' => [ 'blade.php', 'php', 'html', 'vue', 'js', 'ts', 'css', 'scss', 'sass', 'less', ], // Sauvegarde automatique 'backup_files' => true, 'backup_path' => storage_path('fontawesome-migrator/backups'), ];
Utilisation
🚀 Migration automatique (recommandée)
# Mode interactif avec détection automatique de version php artisan fontawesome:migrate # Mode classique (non-interactif) php artisan fontawesome:migrate --no-interactive
⚡ Migration progressive automatique (NOUVEAU v2.1.0)
Par défaut, le système détecte toutes les versions présentes et exécute automatiquement la séquence complète :
# Exemple : vous avez FA4 + FA5, vous voulez FA6 php artisan fontawesome:migrate --from=5 --to=6 # ✨ Résultat automatique : # 1. Détection : FA4 présent → Migration progressive activée # 2. Étape 1/3 : FA4 → FA5 (70 icônes migrées) # 3. Étape 2/3 : FA5 → FA6 (1125 icônes migrées) # 4. Étape 3/3 : FA6 → FA7 (0 icônes - normal) # 5. Total : 1195 modifications complètes FA4→7 !
Avantages :
- 🎯 Un seul clic migre tout (ex: 4→5→6→7 automatiquement)
- 🔍 Détection intelligente des versions mixtes
- 📊 Statistiques cumulées pour toutes les étapes
- ✅ Garantit la cohérence (pas de versions sautées)
# Désactiver la migration progressive (mode manuel)
php artisan fontawesome:migrate --from=5 --to=6 --no-progressive
🎯 Migrations spécifiques par version
# Migration FA4 → FA5 (révolution des préfixes) php artisan fontawesome:migrate --from=4 --to=5 # Migration FA5 → FA6 (modernisation des noms) php artisan fontawesome:migrate --from=5 --to=6 # Migration FA6 → FA7 (13 simplifications + optimisations comportementales) php artisan fontawesome:migrate --from=6 --to=7 # Aperçu des changements (dry-run) php artisan fontawesome:migrate --from=5 --to=6 --dry-run
Le mode interactif détecte automatiquement votre version FontAwesome et vous guide :
- 🎯 Détection automatique : FA4, FA5, FA6 ou FA7 dans votre code
- 📋 Sélection du type : Complète, icônes uniquement, assets uniquement
- 👁️ Mode prévisualisation : Dry-run avec confirmation
- 📂 Chemins personnalisés : Analyse de dossiers spécifiques
- 📊 Génération de rapports : Rapports automatiques dans les métadonnées
- 💾 Configuration des sauvegardes : Forcées, désactivées ou par défaut
🎛️ Modes de migration
# Prévisualisation sans modification (dry-run) php artisan fontawesome:migrate --dry-run # Migration icônes uniquement php artisan fontawesome:migrate --icons-only # Migration assets uniquement (CSS, JS, CDN) php artisan fontawesome:migrate --assets-only # Mode non-interactif (sans confirmations) php artisan fontawesome:migrate --no-interactive # Désactiver la migration progressive automatique php artisan fontawesome:migrate --no-progressive
🔧 Gestion avancée de la configuration
# Commande de configuration interactive php artisan fontawesome:config # Afficher la configuration actuelle php artisan fontawesome:config --show # Réinitialiser aux valeurs par défaut php artisan fontawesome:config --reset
Fonctionnalités de la gestion de configuration :
- 👁️ Affichage structuré : Vue claire de toute la configuration
- ✏️ Modification granulaire : Licence, chemins, extensions, exclusions
- 🔍 Validation : Vérification automatique des chemins et cohérence
- 💾 Sauvegarde : Backup automatique avant modifications importantes
- 🔄 Réinitialisation : Retour aux valeurs par défaut avec confirmation
Avantages pour les gros projets :
- Configuration rapide de chemins personnalisés multiples
- Gestion simplifiée des extensions de fichiers
- Patterns d'exclusion avancés (tests, legacy, backups)
- Configuration Pro granulaire (Light, Duotone, Thin, Sharp)
```bash
# Migration d'un dossier spécifique
php artisan fontawesome:migrate --path=resources/views
# Migration avec rapport détaillé
php artisan fontawesome:migrate --verbose
🤝 Travail collaboratif (NOUVEAU v2.1.0)
Les migrations sont maintenant versionnables pour faciliter la collaboration :
Workflow d'équipe :
- Développeur A lance une migration réelle
- Les fichiers sont automatiquement organisés :
metadata.json: Toujours versionné (détails complets de la migration)- Backups : Versionnés en mode réel (traçabilité et rollback possible)
- Développeur B peut alors :
- Consulter exactement ce qui a été migré
- Accéder aux backups pour comparer ou restaurer
- Poursuivre la migration depuis l'état actuel
Gestion intelligente du .gitignore :
- Mode dry-run : Seul
metadata.jsonest versionné (backups ignorés) - Mode réel :
metadata.json+ backups versionnés pour traçabilité complète
Avantages :
- ✅ Traçabilité : Historique complet des migrations dans Git
- ✅ Réversibilité : Rollback possible même par un autre développeur
- ✅ Revue de code : Les migrations apparaissent dans les Pull Requests
- ✅ Synchronisation : L'équipe entière voit l'avancement
Options disponibles
| Option | Description |
|---|---|
--dry-run |
Prévisualise les changements sans les appliquer |
--path= |
Chemin spécifique à analyser |
--icons-only |
Migre uniquement les classes d'icônes |
--assets-only |
Migre uniquement les assets (CSS, JS, CDN) |
--backup |
Force la création de sauvegardes |
--no-backup |
Désactive les sauvegardes |
--verbose |
Mode verbeux avec détails |
📖 Documentation
Toute la documentation est intégrée dans ce README pour simplifier la maintenance.
🚀 Architecture Multi-Versions (v2.0)
Le package supporte maintenant les migrations multi-versions avec:
FontAwesome 4 ──→ FontAwesome 5 ──→ FontAwesome 6 ──→ FontAwesome 7
(270) (310) (13)
Ampleur des migrations :
- 4→5 : 270 mappings (refonte majeure, préfixes et suffixes)
- 5→6 : 310 mappings (restructuration sémantique complète)
- 6→7 : 13 mappings (simplifications mineures, fixed-width par défaut)
Interface web interactive
Accédez au configurateur multi-versions via:
http://votre-app.local/fontawesome-migrator/tests
Fonctionnalités:
- ✅ Sélecteur de versions : Dropdown pour choisir source/cible
- ✅ Validation dynamique : Vérification des combinaisons supportées
- ✅ Aperçu compatibilité : Breaking changes et recommandations
- ✅ Lancement direct : Exécution des migrations depuis l'interface
Configuration JSON avancée
config/fontawesome-migrator/mappings/
├── 4-to-5/
├── 5-to-6/
└── 6-to-7/
Migration par versions
# FA4 → FA5 : Révolution des préfixes php artisan fontawesome:migrate --from=4 --to=5 # FA5 → FA6 : Modernisation des noms php artisan fontawesome:migrate --from=5 --to=6 # FA6 → FA7 : Optimisations comportementales php artisan fontawesome:migrate --from=6 --to=7
Exemples de conversions
FA4 → FA5 : Révolution des préfixes
<!-- Font Awesome 4 --> <i class="fa fa-home"></i> <i class="fa fa-envelope-o"></i> <i class="fa fa-star-o"></i> <!-- Font Awesome 5 --> <i class="fas fa-house"></i> <i class="far fa-envelope"></i> <i class="far fa-star"></i>
FA5 → FA6 : Modernisation des styles
<!-- Font Awesome 5 --> <i class="fas fa-home"></i> <i class="far fa-user"></i> <i class="fal fa-star"></i> <i class="fad fa-heart"></i> <!-- Font Awesome 6 --> <i class="fa-solid fa-house"></i> <i class="fa-regular fa-user"></i> <i class="fa-light fa-star"></i> <i class="fa-duotone fa-heart"></i>
FA6 → FA7 : Simplifications (13 mappings)
<!-- Font Awesome 6 --> <i class="fa-solid fa-user-large"></i> <i class="fa-solid fa-headphones-simple"></i> <i class="fa-solid fa-handshake-simple"></i> <i class="fa-solid fa-film-simple"></i> <i class="fa-solid fa-vector-square"></i> <i class="fa-solid fa-fw fa-icon"></i> <div class="sr-only">Texte caché</div> <!-- Font Awesome 7 --> <i class="fa-solid fa-user"></i> <i class="fa-solid fa-headphones"></i> <i class="fa-solid fa-handshake"></i> <i class="fa-solid fa-film"></i> <i class="fa-solid fa-draw-square"></i> <i class="fa-solid fa-icon"></i> <!-- fa-fw supprimé (fixed-width par défaut) --> <div aria-label="Texte caché"></div> <!-- sr-only → aria-label -->
Migration des assets (tous versions)
CDN URLs
<!-- FA4 → FA5 --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> ↓ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> <!-- FA5 → FA6 --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> ↓ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.15.4/css/all.min.css"> <!-- FA6 → FA7 --> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.15.4/css/all.min.css"> ↓ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css">
NPM Packages (package.json)
// Avant { "dependencies": { "@fortawesome/fontawesome-free": "^5.15.4", "@fortawesome/fontawesome-free-solid": "^5.15.4" } } // Après { "dependencies": { "@fortawesome/fontawesome-free": "^6.15.4", "@fortawesome/free-solid-svg-icons": "^6.15.4" } }
JavaScript Imports
// Avant - ES6 imports import { faHome } from "@fortawesome/fontawesome-free-solid"; const icons = require("@fortawesome/fontawesome-free-regular"); // Après import { faHome } from "@fortawesome/free-solid-svg-icons"; const icons = require("@fortawesome/free-regular-svg-icons");
webpack.mix.js
// Avant - Laravel Mix avec FontAwesome 5 mix.scripts([ 'node_modules/@fortawesome/fontawesome-free/js/solid.js', 'node_modules/@fortawesome/fontawesome-free/js/fontawesome.js' ], 'public/js/fontawesome.js'); // Après - Laravel Mix avec FontAwesome 6 mix.scripts([ 'node_modules/@fortawesome/fontawesome-free/js/solid.js', 'node_modules/@fortawesome/fontawesome-free/js/fontawesome.js' ], 'public/js/fontawesome.js');
SCSS Imports
// Avant @import "~@fortawesome/fontawesome-free/scss/fontawesome"; @import "~@fortawesome/fontawesome-free/scss/solid"; // Après (structure identique, packages mis à jour) @import "~@fortawesome/fontawesome-free/scss/fontawesome"; @import "~@fortawesome/fontawesome-free/scss/solid";
Support Pro
// Assets Pro FA5 import { faHome } from "@fortawesome/fontawesome-pro-solid"; const lightIcons = require("@fortawesome/fontawesome-pro-light"); // Migrés vers FA6 Pro import { faHome } from "@fortawesome/pro-solid-svg-icons"; const lightIcons = require("@fortawesome/pro-light-svg-icons");
Support des composants Vue/React
<!-- Avant --> <font-awesome-icon icon="fas fa-user" /> <!-- Après --> <font-awesome-icon icon="fa-solid fa-user" />
Support universel des styles
Le package reconnaît et convertit TOUS les styles FontAwesome (solid, regular, light, duotone, thin, sharp) indépendamment de votre licence :
🎯 Comportement intelligent :
-
Reconnaissance complète : Tous les styles FA5 sont convertis vers leur équivalent FA6
fal fa-star→fa-light fa-star(toujours)fad fa-heart→fa-duotone fa-heart(toujours)
-
Fallback selon la licence : Les styles Pro sont adaptés selon votre licence
- Licence Pro : Styles Pro conservés (
fa-light,fa-duotone) - Licence Free : Fallback vers styles gratuits (
fa-solid,fa-regular)
- Licence Pro : Styles Pro conservés (
📝 Exemple avec licence Free :
# Input (FA5) <i class="fal fa-star"></i> # Light style <i class="fad fa-heart"></i> # Duotone style # Output (FA6 avec fallback) <i class="fa-solid fa-star"></i> # Fallback vers solid <i class="fa-solid fa-heart"></i> # Fallback vers solid
📝 Exemple avec licence Pro :
# Input (FA5) <i class="fal fa-star"></i> # Light style <i class="fad fa-heart"></i> # Duotone style # Output (FA6 Pro) <i class="fa-light fa-star"></i> # Style Pro conservé <i class="fa-duotone fa-heart"></i> # Style Pro conservé
Configuration du fallback
# Exemple avant migration
FONTAWESOME_LICENSE=free php artisan fontawesome:migrate --dry-run
Rapports
Le package génère automatiquement des rapports détaillés :
Rapport HTML
- Vue d'ensemble visuelle des changements
- Statistiques détaillées par type
- Liste des fichiers modifiés
- Avertissements et recommandations
Rapport JSON
- Format programmable pour l'automatisation
- Métadonnées de migration
- Détails techniques complets
Accès aux rapports
Les rapports sont automatiquement sauvegardés dans storage/app/public/fontawesome-migrator/reports/ et accessibles directement via votre navigateur :
# Après migration, la commande affiche : 📊 Rapport généré automatiquement : • Migration : migration_abc123 • Métadonnées : metadata.json • Interface web : http://localhost/fontawesome-migrator/migrations
🎛️ Interface web complète
Le package inclut une interface web moderne avec plusieurs sections :
🏠 Dashboard principal (/fontawesome-migrator/)
- 📊 Statistiques : Vue d'ensemble des migrations et migrations
- 🚀 Actions rapides : Liens vers les fonctionnalités principales
- 📈 Activité récente : Dernières migrations et rapports
🧪 Configurateur multi-versions (/fontawesome-migrator/tests)
- 🎯 Sélecteur interactif : Dropdown pour choisir versions source/cible
- ✅ Validation dynamique : Vérification des migrations supportées
- 📋 Aperçu compatibilité : Breaking changes et recommandations
- 🚀 Lancement direct : Exécution des migrations depuis l'interface
📊 Gestion des rapports (/fontawesome-migrator/reports)
- 📋 Liste complète : Tous les rapports avec métadonnées
- 🔍 Accès direct : Liens vers HTML et JSON de chaque rapport
- 🗑️ Gestion : Suppression individuelle ou nettoyage automatique
Note : Assurez-vous que le lien symbolique public/storage existe :
php artisan storage:link
🔧 Fonctionnalités de l'interface
L'interface de gestion des rapports offre :
📊 Vue d'ensemble
- Liste complète des rapports avec date, heure et taille
- Tri automatique par date (plus récent en premier)
- Compteur total des rapports disponibles
🔗 Accès direct
- Boutons "Voir HTML" et "Voir JSON" pour chaque rapport
- Ouverture dans de nouveaux onglets pour consultation facile
- URLs directes pour partage et intégration
🗑️ Gestion avancée
- Suppression individuelle avec confirmation
- Nettoyage automatique des rapports anciens (30+ jours)
- Notifications temps réel des actions
🔄 Interface dynamique
- Actualisation AJAX sans rechargement de page
- Bootstrap Icons 1.13.1 : Icônes cohérentes sur toute l'interface
- Classes utilitaires Bootstrap : Espacement, couleurs et typographie
- Performance améliorée : Pas de dépendances CSS/JS externes
🎨 Design Bootstrap 5 moderne
L'interface a été entièrement migrée vers Bootstrap 5.3.7 :
- Composants Bootstrap natifs : Cards, Tables, Navbar, Breadcrumbs
- Design system cohérent : Classes Bootstrap sur toute l'application
- Performance optimisée : Suppression de Chart.js, CSS/JS inline
- Navigation moderne : Navbar sticky avec breadcrumbs intégrés
- Responsive mobile-first : Grilles Bootstrap adaptatives
- États vides informatifs : Messages clairs avec suggestions d'actions
🧪 Panneau de Debug (Nouveau v2.0)
Le package inclut un panneau de debug interactif pour faciliter la validation et le débogage :
🚀 Accès au panneau
Accessible à /fontawesome-migrator/test/panel depuis l'interface de gestion des rapports.
🎯 Fonctionnalités du panneau
📊 Dashboard des migrations
- Statistiques en temps réel des migrations de migration
- Nombre total de migrations et sauvegardes
- Taille totale utilisée et dernière activité
- Aperçu visuel de l'activité de migration
🔬 Exécution interactive
# Types de migrations disponibles via l'interface : 🔍 Dry-Run # Migration de prévisualisation 🎯 Icônes seulement # Migration des icônes uniquement 🎨 Assets seulement # Migration des assets uniquement ⚡ Migration réelle # Migration complète (attention !)
📋 Gestion des migrations
- Liste complète des migrations de migration créées
- Inspection détaillée avec visualiseur JSON intégré
- Métadonnées complètes : durée, type, fichiers sauvegardés
- Navigation fluide entre migrations
🧹 Nettoyage intelligent
- Suppression des migrations anciennes (> 7 jours ou > 1 jour)
- Nettoyage automatique avec confirmation
- Statistiques de nettoyage en temps réel
🏗️ Architecture par migrations
La v2.0 utilise une nouvelle organisation des sauvegardes :
storage/app/fontawesome-backups/
├── migration-migration_66ba1234abcd5678/
│ ├── .gitignore
│ ├── metadata.json
│ ├── resources_views_file1.blade.php
│ └── public_css_file2.css
└── migration-migration_66ba9876efgh9012/
├── .gitignore
├── metadata.json
└── resources_js_file3.js
Avantages :
- ⚡ Traçabilité parfaite : 1 migration = 1 répertoire avec toutes ses sauvegardes
- 📋 Métadonnées intégrées : Fichier
metadata.jsondans chaque migration - 🔗 Liaison directe : Correspondance exacte métadonnées ↔ sauvegardes
- 🧹 Nettoyage facilité : Suppression par migration complète
- 🔍 Inspection avancée : Exploration détaillée via interface web
💡 Cas d'usage
🧑💻 Pour les développeurs :
- Exécution rapide sans ligne de commande
- Débogage visuel des problèmes de migration
- Validation des configurations avant production
👥 Pour les équipes :
- Formation et démonstration des migrations
- Validation collaborative des résultats
- Partage des migrations de migration
🏢 Pour la production :
- Validation avant déploiement
- Audit des migrations effectuées
- Nettoyage automatique des données temporaires
Sauvegardes
Avant chaque modification, le package peut créer une sauvegarde :
// Dans config/fontawesome-migrator.php 'backup_files' => true, 'backup_path' => storage_path('fontawesome-migrator/backups'),
Restauration depuis sauvegarde
# Les sauvegardes sont organisées par timestamp ls storage/fontawesome-migrator/backups/resources/views/ # -> welcome.blade.php.backup.2024-01-15_14-30-25
Support des fichiers
Le package analyse intelligemment :
- Templates Blade (
*.blade.php) - JavaScript/TypeScript (
*.js,*.ts) - Feuilles de style (
*.css,*.scss,*.sass,*.less) - Fichiers HTML (
*.html)
Icônes supportées
Icônes renommées (exemples)
fa-external-link→fa-external-link-altfa-times→fa-xmarkfa-home→fa-housefa-trash-o→fa-trash-can
Icônes dépréciées
fa-glass→fa-martini-glass-emptyfa-star-o→fa-starfa-close→fa-xmark
Nouveaux styles FA6 Pro
fa-thin(ultra-fin)fa-sharp(angles nets)
Dépannage
Icônes non reconnues
Si une icône n'est pas dans les mappings :
- Vérifiez la documentation Font Awesome 6
- Consultez le rapport généré pour les suggestions
- Ajoutez manuellement les mappings personnalisés
Problèmes de performance
Pour les gros projets :
# Analyser un dossier à la fois
php artisan fontawesome:migrate --path=resources/views
php artisan fontawesome:migrate --path=resources/js
Exclusion de fichiers
Modifiez exclude_patterns dans la configuration :
'exclude_patterns' => [ 'node_modules', 'vendor', '*.min.js', '*.min.css', 'my-custom-exclude-pattern' ],
Développement
Workflow de développement
Environnement standard
# 1. Cloner le projet git clone https://github.com/forxer/fontawesome-migrator.git cd fontawesome-migrator # 2. Installer les dépendances composer install # 3. Vérifier la qualité du code composer quality
Environnement Docker (avec d-packages-exec)
Note : d-packages-exec est un environnement Docker propriétaire à la société AXN Informatique. Si vous n'utilisez pas cet environnement, adaptez les commandes selon votre configuration Docker.
Si vous utilisez Docker avec d-packages-exec php84 :
⚠️ Important : Utilisez votre terminal WSL Ubuntu (pas le terminal VSCode)
# 1. Cloner le projet git clone https://github.com/forxer/fontawesome-migrator.git cd fontawesome-migrator # 2. Exécuter les commandes manuellement d-packages-exec php84 composer install d-packages-exec php84 composer quality ### Scripts Composer disponibles #### Environnement standard ```bash # Qualité de code composer pint # Formatter le code (Laravel Pint) composer pint-test # Vérifier le style sans corriger composer rector # Moderniser le code (Rector) composer rector-dry # Prévisualiser les modernisations composer quality # Contrôle qualité complet (style + rector)
Environnement Docker (AXN Informatique)
# Qualité de code avec d-packages-exec (environnement propriétaire AXN) d-packages-exec php84 composer pint # Formatter le code d-packages-exec php84 composer pint-test # Vérifier le style sans corriger d-packages-exec php84 composer rector # Moderniser le code d-packages-exec php84 composer rector-dry # Prévisualiser les modernisations d-packages-exec php84 composer quality # Contrôle qualité complet
Avant de soumettre une PR
Environnement standard
- Style de code : Formatez le code avec Pint
composer pint
- Modernisation : Appliquez les améliorations Rector
composer rector
- Contrôle complet : Exécutez le contrôle qualité global
composer quality
Environnement Docker (AXN Informatique)
Méthodes disponibles avec d-packages-exec :
d-packages-exec php84 composer pint # Style d-packages-exec php84 composer rector # Modernisation d-packages-exec php84 composer quality # Contrôle complet
Contribution
Les contributions sont les bienvenues ! Veuillez :
- Fork le projet
- Créer une branche feature (
git checkout -b feature/nouvelle-fonctionnalite) - Développer en suivant le workflow ci-dessus
- Commit vos changements (
git commit -am 'Ajout nouvelle fonctionnalité') - Push vers la branche (
git push origin feature/nouvelle-fonctionnalite) - Créer une Pull Request
Version 2.0.0 - En développement 🚧
État actuel : Architecture multi-versions implémentée, optimisations en cours
Fonctionnalités implémentées
- ✅ Architecture multi-versions : MigrationVersionManager + mappers FA4→5→6→7
- ✅ Configuration JSON : ConfigurationLoader avec mappings externalisés et cache
- ✅ Interface web avancée : Configurateur multi-versions interactif
/tests - ✅ Documentation centralisée : Documentation simplifiée et intégrée
- ✅ Injection de dépendances modernisée dans les commandes Laravel
- ✅ Système de métadonnées centralisé avec gestion des migrations
- ✅ Interface web reorganisée avec contrôleurs spécialisés
- ✅ Navigation fluide entre rapports, migrations et tests
- ✅ Migration Bootstrap 5 : Design system moderne et cohérent
- ✅ Traçabilité complète : Origine CLI/Web dans métadonnées et rapports
Prochaines étapes
- 🕒 Optimisation CSS : Consolidation des 1782 lignes de partials CSS
- 🕒 Tests automatisés : Refonte pour les nouveaux composants multi-versions
- 🕒 Migrations chaînées : Support 4→5→6→7 en une commande (optionnel)
Objectif : Package Laravel professionnel avec architecture multi-versions complète
Licence
Ce package est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Changelog
Voir CHANGELOG.md pour l'historique des versions.
Support
forxer/fontawesome-migrator 适用场景与选型建议
forxer/fontawesome-migrator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 169 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 07 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「migration」 「laravel」 「icons」 「FontAwesome」 「font-awesome-5」 「font-awesome-6」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 forxer/fontawesome-migrator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 forxer/fontawesome-migrator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 forxer/fontawesome-migrator 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A simple library of SVG page type icons for enhancing your SilverStripe CMS interface.
A Filament plugin that integrates tabler icons, allowing you to use them seamlessly across Filament forms, tables, actions, and more.
Lets you add foreign keys in a swift! Foreign key adder in laravel migration.
Craft CMS Twig extension to include SVGs from the Feather and Zondicons SVG icon libraries directly in your templates.
Manage PostgreSQL schemas in Laravel applications
Render small SVG icons to monochrome ANSI for terminal UIs (Laravel/Prompts, Symfony Console, plain CLI).
统计信息
- 总下载量: 169
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-24