Cette FAQ est organisée en deux sections : les questions générales sur le projet, son positionnement et ses cas d'usage, puis les questions techniques sur l'installation, la configuration et le développement.
Les réponses sont directes et basées sur la documentation officielle de Blackcube. Pour plus de détails sur un sujet spécifique, consulter les pages dédiées.
FAQ Générale
Pourquoi choisir Blackcube plutôt que WordPress ou Drupal ?
Blackcube se positionne différemment. WordPress et Drupal sont excellents pour démarrer rapidement avec un écosystème de plugins. Blackcube offre la liberté architecturale : le CMS gère le contenu structuré, votre équipe code l'application comme elle le souhaite. Pas de contraintes imposées, pas de dépendance à un écosystème de plugins tiers.
Choisir Blackcube si vous avez une équipe de développement et des besoins métier spécifiques. Choisir WordPress ou Drupal pour démarrer vite sans développeur ou avec des besoins standards.
Quel est le coût de Blackcube ?
Blackcube est gratuit. Licence BSD 3 clauses. Pas de version premium, pas de plugins payants, pas de coûts cachés. Le code est open source, vous en faites ce que vous voulez.
Le coût réel est le développement : Blackcube nécessite des développeurs PHP pour créer le front-end et l'architecture. Budget à prévoir pour l'intégration initiale, puis maintenance standard d'une application PHP.
Ai-je besoin d'un développeur spécialisé Blackcube ?
Non. Un développeur PHP qui maîtrise MVC suffit. Blackcube utilise Yii2, mais n'impose pas de patterns complexes. La courbe d'apprentissage est rapide : comprendre les concepts Types, BlocTypes, Nodes. Un développeur Yii2 est opérationnel immédiatement, un développeur PHP standard en quelques jours.
Puis-je migrer depuis WordPress ou Drupal ?
Oui, mais c'est une migration technique complète, pas un simple import. Le contenu peut être importé via l'API Blackcube. Le front-end doit être recodé entièrement. Budgéter cette migration comme un nouveau projet, mais c'est un investissement qui élimine la dette technique accumulée.
Que se passe-t-il si Blackcube disparaît ?
Le code est open source sous licence BSD, hébergé sur GitHub. Si le projet s'arrête demain, votre code continue de fonctionner. Pas de dépendance à un éditeur, pas de verrouillage propriétaire. Maintenance possible de votre propre version du CMS si nécessaire.
Blackcube convient-il pour l'e-commerce ?
Blackcube gère le contenu d'un site e-commerce (pages produits, catégories, contenu éditorial), mais ne fournit pas les fonctionnalités transactionnelles (panier, paiement, stock, livraison). Pour un e-commerce complet, privilégier WordPress avec WooCommerce ou Drupal Commerce qui ont des écosystèmes matures.
Choisir Blackcube si vous développez une solution e-commerce sur mesure et avez besoin d'un CMS uniquement pour la partie éditoriale.
Blackcube impose-t-il des contraintes sur le design ?
Non. Contrôle total du rendu HTML/CSS. Chaque type de page utilise son propre code d'affichage. Blackcube injecte le contenu dans votre controller, vous faites ce que vous voulez avec. Aucune limitation sur la créativité, respect exact des maquettes. Point crucial : ce contrôle permet de garantir l'accessibilité RGAA.
Comment le contenu évolue sans casser le site ?
Blackcube utilise ElasticModel avec JSON Schema. Ajouter un nouveau champ ne nécessite aucune migration de base de données. Modifier le JSON Schema d'un BlocType : les anciens contenus restent valides, les nouveaux champs retournent une valeur vide sur l'ancien contenu. Évolution progressive sans risque.
Quels sont les coûts de maintenance ?
Maintenance standard d'une application PHP. Pas de refonte fréquente nécessaire comme avec certains CMS. Pas de plugins tiers à maintenir. Mises à jour de Blackcube et de Yii2 à gérer, mais pas de surprises. Le code reste sous votre contrôle, pas de dépendance à un écosystème externe qui évolue de façon imprévisible.
Blackcube collecte-t-il des données ?
Non. Blackcube ne collecte aucune donnée. Pas de télémétrie, pas de statistiques d'usage, pas de connexion à des serveurs externes. Le CMS fonctionne entièrement sur votre infrastructure. Conformité RGPD simplifiée.
Quelle est la courbe d'apprentissage pour les contributeurs ?
Interface backoffice intuitive. Les contributeurs assemblent des blocs pour créer leurs pages. Pas besoin de connaissances techniques. Formation rapide : comprendre les types de blocs disponibles et comment les assembler. Interface moderne et accessible.
Blackcube est-il adapté pour un site gouvernemental ou public ?
Choisir Blackcube pour : accessibilité RGAA maîtrisable grâce au contrôle total du HTML, pas de dépendance à des services tiers, code open source auditable. Limite : workflows de validation moins sophistiqués que Drupal nativement, mais codables sur mesure selon les besoins.
FAQ Technique
Quelles sont les dépendances requises ?
PHP 8.3 minimum, MySQL 5.7+ ou MariaDB 10.2+ (PostgreSQL supporté avec réserves), Composer. Extensions PHP : ext-intl, ext-json, ext-mbstring, ext-gd. Dépendances principales : Yii2, Blackcube Core, Blackcube Admin. Redis optionnel pour le cache.
Comment installer Blackcube ?
Installation via Composer dans un projet Yii2 existant. Commandes principales : installer les packages blackcube/core et blackcube/admin, exécuter les migrations, initialiser les droits RBAC, créer le premier administrateur. Installation complète en quelques minutes. Documentation détaillée dans la section Installation.
Comment créer mon premier Type et BlocType ?
Types et BlocTypes se créent dans le backoffice. Un Type définit le controller/action qui rendra le contenu. Un BlocType définit la structure des données via JSON Schema. Lier ensuite le Type aux BlocTypes autorisés. Le controller doit étendre BlackcubeController ou implémenter BlackcubeControllerInterface. Documentation complète dans Types et BlocTypes.
Comment fonctionne le routing ?
Blackcube intercepte toutes les requêtes, cherche un slug correspondant à l'URL, exécute le controller/action défini dans le Type, et injecte automatiquement le contenu dans $this->element. Si le slug n'existe pas, Blackcube passe la main au routing Yii2 classique. Cohabitation parfaite entre CMS et application. Documentation dans Routing.
Comment gérer le multilingue ?
Blackcube fournit la structure : chaque contenu a une languageId, chaque URL est spécifique à une langue. Les slugs gèrent les URLs multilingues via des préfixes ou des domaines différents selon la stratégie internationale. La logique de traduction reste libre : champs personnalisés, services externes, tout est possible. Blackcube ne dicte pas le processus.
Qu'est-ce que Hazel Tree ?
Système d'arborescence ultra-performant basé sur les fractions rationnelles plutôt que les références parent-enfant classiques. Permet de récupérer toute une branche d'arborescence en une seule requête. Navigation instantanée même avec des milliers de pages. Implémentation des travaux de recherche de Dan Hazel. Aucune action nécessaire, tout est automatique.
Qu'est-ce qu'ElasticModel ?
Couche technique qui permet de stocker des données structurées en JSON tout en les manipulant comme des propriétés PHP classiques. Combine flexibilité du JSON avec puissance des ActiveRecord Yii2. Validation automatique via JSON Schema. Permet l'évolution du modèle de données sans migration SQL. Utilisé par les BlocTypes.
Comment gérer le cache ?
Cache automatique et granulaire. Blackcube utilise DbQueryDependency de Yii2 : chaque requête définit ses dépendances (tables à surveiller), le cache s'invalide automatiquement quand une table change. Modification d'un article invalide uniquement le cache de cet article. Configuration via le module : durée de cache, composant de cache personnalisé possible.
Puis-je utiliser Blackcube avec mon architecture existante ?
Oui. Blackcube s'intègre dans n'importe quelle application Yii2. Structure basic, advanced ou personnalisée. Blackcube gère le routing prioritaire pour les URLs CMS, passe la main à Yii2 pour le reste. Cohabitation parfaite : Blackcube pour le contenu éditorial, Yii2 pour les APIs et fonctionnalités techniques.
Comment personnaliser le backoffice ?
Le module admin accepte des templates personnalisés via adminTemplatesAlias et des assets CSS/JS additionnels via additionalAssets. Ajout possible de modules admin pour des fonctionnalités métier spécifiques. Extension complète du backoffice selon les besoins.
Blackcube fonctionne avec PostgreSQL ?
Supporté mais testé principalement sur MySQL/MariaDB. Des erreurs peuvent survenir avec PostgreSQL. Ouvrir une issue GitHub si nécessaire. Pour la production, MySQL ou MariaDB recommandés.
Comment gérer les fichiers uploadés ?
Blackcube utilise Flysystem. Stockage local par défaut, S3 supporté. Les fichiers uploadés ont un préfixe @blackcubefs/ et doivent être traités via Html::cacheFile() pour les documents ou Html::cacheImage() pour les images. Ces helpers résolvent le chemin Flysystem, cachent le fichier, et retournent l'URL publique.
Puis-je utiliser Redis ?
Oui. Configuration dans le container pour utiliser Redis comme cache principal et pour les sessions. Variables d'environnement pour activer Redis. Support complet avec RedisCache et RedisSession. Documentation dans Configuration.
Comment gérer les permissions du backoffice ?
Système RBAC intégré. Permissions granulaires par module (Node, Composite, Tag, etc.) et par action (CREATE, UPDATE, DELETE, VIEW, EXPORT, IMPORT). Gestion via le backoffice dans Utilisateurs. Les permissions contrôlent uniquement l'accès au backoffice, pas le front-end.
Les blocs sont-ils partagés entre contenus ?
Non. Un bloc appartient à un seul contenu. Créer 10 pages avec le même BlocType crée 10 blocs différents. Modifier un bloc n'affecte que son contenu. Pas de blocs partagés entre contenus. Architecture volontaire pour éviter les effets de bord.
Comment optimiser les performances ?
Blackcube est performant par design. Hazel Tree optimise l'arborescence, cache granulaire automatique, ElasticModel évite les migrations. Pour aller plus loin : utiliser Redis pour le cache, optimiser les images via Html::cacheImage(), utiliser les helpers Element pour filtrer les blocs efficacement. Scaling horizontal possible.
Puis-je contribuer au projet ?
Oui. Projet open source sous licence BSD. GitHub ouvert aux contributions : corrections de bugs, nouvelles fonctionnalités, documentation. Respecter la philosophie Blackcube : liberté du développeur, pas d'imposition de patterns.