studiometa / drupal-project
A Composer project template to kickstart your Drupal project ⚡
Installs: 17
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 9
Forks: 0
Open Issues: 3
Type:project
Requires
- php: ~8.0
- cocur/slugify: ^4.2
- composer/installers: ^1.9
- cweagans/composer-patches: ^1.7
- drupal/admin_toolbar: ^3.1
- drupal/ckeditor_entity_link: ^1.2
- drupal/core-composer-scaffold: ^9.4
- drupal/core-project-message: ^9.4
- drupal/core-recommended: ^9.4
- drupal/editor_advanced_link: ^2.0
- drupal/field_group: ^3.2
- drupal/gin: ^3.0@beta
- drupal/gin_login: ^1.0
- drupal/gin_toolbar: ^1.0@beta
- drupal/metatag: ^1.19
- drupal/paragraphs: ^1.13
- drupal/paragraphs_asymmetric_translation_widgets: ^1.0@beta
- drupal/pathauto: ^1.9
- drupal/redirect: ^1.7
- drupal/twig_tweak: ^3.1
- mikehaertl/php-shellcommand: ^1.6
- satesh/phpcs-gitlab-report: ^1.0
- seld/cli-prompt: ^1.0
- sentry/sdk: ^3.2
- studiometa/ui: ^0.2.8
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.1
- drupal/coder: ^8.3
- drupal/console: ^1.9
- drupal/devel: ^4.1
- drupal/devel_generate: ^4.1
- drush/drush: ^10.6
- ergebnis/composer-normalize: ^2.20
- mglaman/drupal-check: 1.3.1
- mglaman/phpstan-drupal: ^1.1
- pheromone/phpcs-security-audit: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.8
- phpstan/phpstan-deprecation-rules: ^1.0
- roave/security-advisories: dev-latest
Conflicts
This package is auto-updated.
Last update: 2023-05-26 12:00:58 UTC
README
Installation
Cloner le dépôt :
git clone <%= repository %>
Installer les dépendances nécessaires :
# Installer les dépendances Composer avec PHP 8.0 php8.0 $(which composer) install # Installer les dépendances NPM avec Node 16 nvm use 16 npm install
Développement
Commandes disponibles
NPM
Commande | Description |
---|---|
npm run dev |
Démarre le serveur de compilation des fichiers SCSS et JS du thème. |
npm run build |
Build les fichiers SCSS, JS et Vue du thème. |
npm run lint |
Lint les fichiers SCSS, JS, Vue et Twig du thème avec ESLint, Stylelint et Prettier. |
npm run lint:scipts |
Lint les fichiers JS et Vue du thème avec ESLint et Prettier. |
npm run lint:styles |
Lint les fichiers SCSS et Vue du thème avec Stylelint et Prettier. |
npm run lint:templates |
Lint les fichiers Twig avec Prettier. |
npm run fix |
Formate les fichiers SCSS, JS, Vue et Twig du thème avec ESLint, Stylelint et Prettier. |
npm run fix:scipts |
Formate les fichiers JS et Vue du thème avec ESLint et Prettier. |
npm run fix:styles |
Formate les fichiers SCSS et Vue du thème avec Stylelint et Prettier. |
npm run fix:templates |
Formate les fichiers Twig du thème Prettier. |
Composer
Commande | Description |
---|---|
composer phpcs |
Lint les fichiers PHP du thème et des modules customs |
composer phpstan |
Analyse de manière statiques les fichiers PHP du thème et des modules customs |
vendor/bin/phpcbf |
Corrige les erreurs de linter des différents fichiers, les même que les commandes phpcs et phpstan |
Ajouter des modules
Pour ajouter des extensions tiers, utilisez Composer. Par exemple, pour ajouter le plugin Search API, vous pouvez procéder comme suit :
composer require drupal/search_api
Activer les modules avec drush
drush en search_api
Modules Custom Studio Meta
studiometa_blocks_manager
pour la gestion des blocks customs.studiometa_display_currentbranch
pour afficher la branche git courante sur les preproductions uniquement.studiometa_pages_manager
pour la gestion des pages de configuration customs.studiometa_paragraphs_builder_manager
pour la gestion des blocks du page-builder et des paragraphs concernés.studiometa_twig_extensions
pour la gestion des extensions Twig.
Twig
- @studiometa/ui est utilisé sur le projet
// Pour importer un atom présent dans le theme (fallback sur le package si non existant) {% include '@ui/atoms/Button/Button.twig' %} // Pour importer un atom du package @studiometa/ui {% include '@ui-pkg/atoms/Button/Button.twig' %}
- @studiometa/twig-toolkit est configuré pour le projet.
- Les fichiers de templates de block suivent la nommenclature suivante: pour
HeroBlock.php
le template serablock--meta-hero.html.twig
. - Ajouter en début de chaque fichier .twig un commentaire docblock comprenant toutes les variables disponibles dans ce fichier.
{# /** * @file * Name of the File * * @param {string} title * @param {string} description * @param {array} image */ #}
Filtres Twig
// Clean une variable des balises pouvant provoquer des attaques XSS
{{ var|meta_sanitize }}