Accéder au contenu principal

Tout ce que tes parents t'ont dit sur les cookies est un mensonge!

Au cas où vous n'auriez pas regardé votre calendrier ces derniers temps, nous sommes arrivés à 2025... ⁇ et c'est excitant non seulement parce que Joomla va bientôt fêter ses 20 ans ⁇ , mais aussi parce que le World Wide Web est définitivement un peu plus intéressant qu'au début...

La page d'accueil du site Apple dans un format à 2 colonnes - époque des années 1990

La page d'accueil d'Apple au milieu des années 90...


Mais en dehors de l'apparence et des styles de navigation, beaucoup d'autres choses ont changé. Au cours des dernières années, en particulier, certains de ces changements ont pris la forme de mises à jour sur la protection de la vie privée et les droits des consommateurs et des utilisateurs...

En 2025, si vous n'avez pas la bonne compréhension de ce que sont les cookies, vous risquez de vous mettre en difficulté... pas seulement dans l'Union européenne où les politiques du RGPD sont en vigueur.

De nombreuses autres parties du monde commencent à prendre une position sérieuse en ce qui concerne les droits des consommateurs et la vie privée:

California Consumer Privacy Act (CCPA/CPRA) - États-Unis
Loi sur la protection des renseignements personnels (PIPL) - Chine
Lei Geral de Proteção de Dados (LGPD) - Brésil
Loi sur la protection des données personnelles numériques (DPDPA) - Inde
Loi sur la protection des renseignements personnels (POPIA) - Afrique du Sud
Loi sur la protection des données personnelles (PDPA) - Singapour
Loi révisée sur la protection des données (RGPD) - Royaume-Uni
Loi suisse sur la protection des données (révisée en 2023) - Suisse
Loi sur la protection des renseignements personnels et les documents électroniques (LPRPDE) - Canada
Loi sur la protection des renseignements personnels (APPI) - Japon
Loi sur la protection des renseignements personnels (PIPA) - Corée du Sud

(et bien sûr, pour les violations, ils sont fondamentalement tous passibles d'amendes).

À un titre ou à un autre, tous les règlements/lois ci-dessus contiennent des dispositions plus ou moins strictes concernant les cookies... et ces cookies ⁇ ne vous donneront pas un taux de sucre élevé ou ne causeront pas de caries ⁇ — alors plongeons-nous dans ce que sont tous ces différents types de cookies - (je me concentrerai sur le RGPD, car il s’agit du cadre de protection de la vie privée le plus répandu, le plus complet et le plus strict actuellement ).

Les cookies peuvent être catalogués selon différents critères: Source, Fonctionnalité, même Attributs de sécurité entre autres.

Par source

  • Cookies de première partie: créé lors de la visite d'un site Web pour mémoriser les préférences (c'est-à-dire les éléments du panier, les détails de connexion ou les paramètres de langue). Ceux-ci expirent lorsque le navigateur se ferme et sont généralement basés sur la session.
  • Cookies tiers: placés par des partenaires/domaines externes (c’est-à-dire des outils d’analyse, des annonceurs, etc.) pour suivre le comportement intersite à des fins d’analyse et d’annonces ciblées. Celles-ci soulèvent des préoccupations en matière de protection de la vie privée et persistent plus longtemps...

Par fonctionnalité

  • Cookies strictement nécessaires: requis pour la fonctionnalité de base d'un site Web (c'est-à-dire le panier d'achat, la connexion, etc.). ✅
  • Performance/Analytics Cookies: suit les interactions des utilisateurs (c'est-à-dire les visites de pages, les taux de rebond) principalement pour optimiser les performances d'un site. ⚠ ⁇ Le RGPD requiert le consentement.
  • Cookies fonctionnels: permet des fonctionnalités non essentielles (c'est-à-dire l'enregistrement des préférences). ⚠ ⁇ Le RGPD requiert le consentement.
  • Ciblage des cookies: utilisé pour la personnalisation de l'annonce. ⚠ ⁇ Le RGPD nécessite un consentement explicite.

Par attributs de sécurité

  • Cookies sécurisés: pour empêcher l'interception, ceux-ci ne sont transmis que via HTTPS.
  • Cookies HTTP uniquement: ils protègent les données sensibles et bloquent l'accès au script côté client
  • Cookies du même site: pour atténuer les attaques CSRF, ils restreignent le partage entre sites.


- Le consentement n'est pas requis en vertu du RGPD.

⚠ ⁇ - RGPD nécessite un consentement – dans certains cas, un consentement explicite avant utilisation.

Si vous commencez à penser que cela se complique rapidement, vous auriez raison.

Juste avec RGPD et CCPA/CPRA, il y a beaucoup de subtilités et c'est sans ajouter de nuances nationales ou régionales comme les Français CNIL (Autorité de régulation française indépendante chargée de la protection des données et des droits à la vie privée) ou de l'Allemagne Loi sur la protection des données dans les télécommunications et les télémédias (TTDSG) et Autorités allemandes de protection des données (DPA) qui ajoute une couche de règles au-delà RGPD et la Directive ePrivacy (ePD) de l'UE.

Alors, que pouvez-vous faire avec toutes ces différentes réglementations et ce paysage de la vie privée en constante évolution?

Le plus facile L'approche consiste à fournir une déclaration claire et transparente des cookies de votre site Web utilisations et d'exiger le consentement pour tout ce qui n'est pas Cookies strictement nécessaires.

Et quand il s'agit de Joomla (depuis v3.9+), vous avez une aide intégrée du noyau:

Suite d'outils de confidentialité comprend:

  • Suivi du consentement pour les utilisateurs enregistrés.
  • Flux de travail des demandes de données avec accès, exportation et suppression.
  • API de base pour la communication des données collectées pour les extensions.

Limitations actuelles de la suite: Il manque de blocage automatique, de catégorisation granulaire des cookies ou de personnalisation granulaire des bannières – caractéristiques requises pour une conformité totale au RGPD/ePrivacy.Malheureusement, de nombreuses extensions ou services ne répondent toujours pas aux normes de conformité nécessaires aujourd'hui, laissant des lacunes dans l'adhésion de votre site aux dernières réglementations...Puisque vous avez besoin de plus de capacités que ce que Joomla 5 fournit intégré, vous voudrez peut-être consulter l'une de ces extensions de qualité pour compléter les fonctionnalités intégrées, en voici quelques-unes à considérer (sans ordre particulier):

Gratuit uniquement Options gratuites et payantes Payé uniquement
n3t Consentement aux cookies Cookies CK Joomla! Composante du RGPD
Directive de l'UE relative à la vie privée et aux communications électroniques Web357 Politique de cookies Notification Bar

Mention honorable:
Extension de JA Joomla GDPR (actuellement manque de certaines caractéristiques importantes/requises, mais devrait être admissible à l'avenir).NOTE:
Je réalise qu'il existe également des solutions en ligne tierces comme CookieBot, Osano, Iubenda, Enzuzo, OneTrust et plusieurs autres. Cependant, ces solutions ne sont souvent pas natives de Joomla ou n'offrent pas d'extension Joomla. Ils ne sont généralement pas gratuits sans limitations ou sont des options payantes, nécessitant souvent un abonnement mensuel.


En conclusion:

Semblable à l'idée que tous Les sites Web devraient être accessibles, et bien que de nombreuses exigences relatives aux cookies puissent sembler inclure l'Union européenne et le RGPD, j'exhorte tous les créateurs de sites web d'inclure une bannière / gestion des cookies sur leur site Web. Cela aide à protéger la vie privée des utilisateurs et fournit une approche plus transparente du traitement de leurs données, ce qui est bénéfique pour l'ensemble d'Internet et pour tous ceux qui l'utilisent. ⁇

Certains articles publiés sur le Joomla Community Magazine représentent l'opinion personnelle ou l'expérience de l'auteur sur le sujet spécifique et peuvent ne pas être alignés sur la position officielle du projet Joomla.

Connexion de bibliothèques PHP tierces dans Joomla

Lors du développement de sites Web ou d'extensions pour Joomla, des tâches qui ont déjà été résolues par quelqu'un surviennent parfois. Dans le monde du développement, ces solutions sont conçues comme des bibliothèques - des ensembles de fichiers et de classes qui permettent simplement de les brancher dans votre script et d'utiliser du code écrit et bien testé par d'autres développeurs. Il peut s'agir de bibliothèques php pour le traitement d'images, le travail avec PDF, la connexion à des services tiers via l'API REST, et bien plus encore.

Les bibliothèques PHP sont pratiques car elles sont accessibles depuis n'importe où dans l'application: à partir d'un plugin, d'un modèle de composant, d'un module, etc. Cet article explique comment connecter correctement un SDK PHP tiers à votre projet.

Compositeur

Joomla ne supporte pas de travailler directement avec Composer. Pour utiliser la bibliothèque dans votre travail, vous devez l'envelopper dans un type d'extension Joomla bibliothèque et l'installer. Dans les projets sérieux, l'approche de fixation des versions de toutes les composantes du projet est adoptée: le code a été vérifié plus d'une fois, testé et autorisé à travailler dans la production.

Vous créez un package avec votre bibliothèque, l'installez partout où vous en avez besoin. Au fur et à mesure que de nouvelles versions de la bibliothèque sont publiées, vous mettez à jour votre wrapper et bénéficiez de tous les avantages de travailler avec les extensions Joomla: mettre à jour les extensions de manière standard, y compris via la CLI.Voir le Changelog de l'extension dans la zone d'administration AVANT la mise à jour, etc.

Afficher l'extension Changelog dans la zone d'administration AVANT la mise à jour vers Joomla 5.

Joomla, PSR, Symfony

Joomla est conforme aux normes PSR, il est donc pratique de travailler avec elle à cet égard. Certains paquets Symfony sont inclus dans le noyau Joomla (console, ficelle, vardumper, yaml, Gestionnaire d'erreurs et d'autres), donc si vous voulez soudainement en ajouter plus, ils s'intégreront et fonctionneront bien. Vous pouvez voir ce qu'il y a d'autre dans Joomla en plus des composants Symfony dans bibliothèques/fournisseurs.

Comment envelopper une bibliothèque PHP tierce dans une extension Joomla?

Rien de compliqué. Les fichiers de la bibliothèque sont généralement situés dans le src dossier. À côté de ce dossier, vous devez créer un manifeste XML de l'extension Joomla en fonction de la documentation (manuel.joomla.org). Ensuite, nous emballons tout dans une archive zip et c'est tout! Il peut être installé.

Si vous avez besoin de vos propres tables dans la base de données pour que la bibliothèque fonctionne, vous devez ajouter les fichiers nécessaires avec des requêtes SQL lors de l'installation ou de la mise à jour. Comme Joomla 4+ fonctionne avec des espaces de noms, il est important de spécifier cet espace de noms dans le manifeste XML de l'extension. Voici un exemple abrégé d'un manifeste XML pour la bibliothèque Joomla.

<?xml version="1.0" encoding="UTF-8" ?>

<extension type="library" method="upgrade"> </fichiers> <nom>Bibliothèque WebTolk AmoCRM</nom> </extension> <nom de la bibliothèque>Webtolk/Amocrm</nom de la bibliothèque> Le<version>1.2.1</version> tag signifie que le ... le dossier de notre archive sera copié dans <namespace path="src">Webtolk\Amocrm</namespace> . Dans le <fichiers> section, nous indiquons ce qui doit être rempli à partir de l'archive. Et <folder>src</folder> dit que l'espace de noms<nom du fichier>amocrm.xml</nom du fichier>

doit être enregistré pour le

src <fichiers> JPATH_SITE/bibliothèques/Webtolk/Amocrm dossier dans <namespace path="src">Webtolk\Amocrm</namespace> . Webtolk\Amocrm <nom de la bibliothèque> src

<espace de nommage> JPATH_SITE/bibliothèques/Webtolk/Amocrm onAfterInitialize Des notes importantes! JLoader Par conséquent, il était nécessaire d'ajouter un plugin système au paquet de bibliothèque qui enregistrerait l'espace de noms sur le À partir de Joomla 4.2.7, il a été corrigé et vous pouvez vous passer du plugin. événement (Event Dispatcher) en utilisant Autrement dit, l'extension est supprimée et installée. Cette décision a été prise quelque part dans les profondeurs des versions de Joomla 3.x. Pourquoi? - caché sous les montagnes de PR. Des recherches supplémentaires sont nécessaires pour trouver les raisons de prendre une telle décision. classe. En conséquence, il était nécessaire de construire un paquet à partir de la bibliothèque et du plugin. Parce que lors de l'installation d'une extension, une entrée est créée dans le "registre" des extensions - dans la base de donnéesAvant Joomla 4.2.7, en fait, le tag table. Ce tableau comporte 2 colonnes de typedu manifeste XML n'a pas fonctionné.

-

et Pourquoi est-ce important? . Et cela, vous devez l'admettre, est une quantité considérable de données. Si vous stockez des paramètres de bibliothèque dans une base de données en utilisant #__extensionsEnsuite, vous devez prendre en compte ce comportement de l'installateur et pré-enregistrer, puis ajouter les paramètres enregistrés au script d'installation de l'extension lors de la mise à jour de la bibliothèque. TEXTE Jusqu'à présent, mettre à jour la bibliothèque = réinstaller.

custom_data params

utiliser Joomla\CMS\Helper\LibraryHelper; Joomla\CMS\Helper\LibraryHelper utiliser Joomla\CMS\Cache\Cache; <?php

Connexion de bibliothèques PHP tierces dans Joomla

Lors du développement de sites Web ou d'extensions pour Joomla, des tâches qui ont déjà été résolues par quelqu'un surviennent parfois. Dans le monde du développement, ces solutions sont conçues comme des bibliothèques - des ensembles de fichiers et de classes qui permettent simplement de les brancher dans votre script et d'utiliser du code écrit et bien testé par d'autres développeurs. Il peut s'agir de bibliothèques php pour le traitement d'images, le travail avec PDF, la connexion à des services tiers via l'API REST, et bien plus encore.

Les bibliothèques PHP sont pratiques car elles sont accessibles depuis n'importe où dans l'application: à partir d'un plugin, d'un modèle de composant, d'un module, etc. Cet article explique comment connecter correctement un SDK PHP tiers à votre projet.

Compositeur

Joomla ne supporte pas de travailler directement avec Composer. Pour utiliser la bibliothèque dans votre travail, vous devez l'envelopper dans un type d'extension Joomla bibliothèque et l'installer. Dans les projets sérieux, l'approche de fixation des versions de toutes les composantes du projet est adoptée: le code a été vérifié plus d'une fois, testé et autorisé à travailler dans la production.

Vous créez un package avec votre bibliothèque, l'installez partout où vous en avez besoin. Au fur et à mesure que de nouvelles versions de la bibliothèque sont publiées, vous mettez à jour votre wrapper et bénéficiez de tous les avantages de travailler avec les extensions Joomla: mettre à jour les extensions de manière standard, y compris via la CLI.Voir le Changelog de l'extension dans la zone d'administration AVANT la mise à jour, etc.

Afficher l'extension Changelog dans la zone d'administration AVANT la mise à jour vers Joomla 5.

Joomla, PSR, Symfony

Joomla est conforme aux normes PSR, il est donc pratique de travailler avec elle à cet égard. Certains paquets Symfony sont inclus dans le noyau Joomla (console, ficelle, vardumper, yaml, Gestionnaire d'erreurs et d'autres), donc si vous voulez soudainement en ajouter plus, ils s'intégreront et fonctionneront bien. Vous pouvez voir ce qu'il y a d'autre dans Joomla en plus des composants Symfony dans bibliothèques/fournisseurs.

Comment envelopper une bibliothèque PHP tierce dans une extension Joomla?

Rien de compliqué. Les fichiers de la bibliothèque sont généralement situés dans le src dossier. À côté de ce dossier, vous devez créer un manifeste XML de l'extension Joomla en fonction de la documentation (manuel.joomla.org). Ensuite, nous emballons tout dans une archive zip et c'est tout! Il peut être installé.

Si vous avez besoin de vos propres tables dans la base de données pour que la bibliothèque fonctionne, vous devez ajouter les fichiers nécessaires avec des requêtes SQL lors de l'installation ou de la mise à jour. Comme Joomla 4+ fonctionne avec des espaces de noms, il est important de spécifier cet espace de noms dans le manifeste XML de l'extension. Voici un exemple abrégé d'un manifeste XML pour la bibliothèque Joomla.

<?xml version="1.0" encoding="UTF-8" ?>

<extension type="library" method="upgrade"> </fichiers> <nom>Bibliothèque WebTolk AmoCRM</nom> </extension> <nom de la bibliothèque>Webtolk/Amocrm</nom de la bibliothèque> Le<version>1.2.1</version> tag signifie que le ... le dossier de notre archive sera copié dans <namespace path="src">Webtolk\Amocrm</namespace> . Dans le <fichiers> section, nous indiquons ce qui doit être rempli à partir de l'archive. Et <folder>src</folder> dit que l'espace de noms<nom du fichier>amocrm.xml</nom du fichier>

doit être enregistré pour le

src <fichiers> JPATH_SITE/bibliothèques/Webtolk/Amocrm dossier dans <namespace path="src">Webtolk\Amocrm</namespace> . Webtolk\Amocrm <nom de la bibliothèque> src

<espace de nommage> JPATH_SITE/bibliothèques/Webtolk/Amocrm onAfterInitialize Des notes importantes! JLoader Par conséquent, il était nécessaire d'ajouter un plugin système au paquet de bibliothèque qui enregistrerait l'espace de noms sur le À partir de Joomla 4.2.7, il a été corrigé et vous pouvez vous passer du plugin. événement (Event Dispatcher) en utilisant Autrement dit, l'extension est supprimée et installée. Cette décision a été prise quelque part dans les profondeurs des versions de Joomla 3.x. Pourquoi? - caché sous les montagnes de PR. Des recherches supplémentaires sont nécessaires pour trouver les raisons de prendre une telle décision. classe. En conséquence, il était nécessaire de construire un paquet à partir de la bibliothèque et du plugin. Parce que lors de l'installation d'une extension, une entrée est créée dans le "registre" des extensions - dans la base de donnéesAvant Joomla 4.2.7, en fait, le tag table. Ce tableau comporte 2 colonnes de typedu manifeste XML n'a pas fonctionné.

-

et Pourquoi est-ce important? . Et cela, vous devez l'admettre, est une quantité considérable de données. Si vous stockez des paramètres de bibliothèque dans une base de données en utilisant #__extensionsEnsuite, vous devez prendre en compte ce comportement de l'installateur et pré-enregistrer, puis ajouter les paramètres enregistrés au script d'installation de l'extension lors de la mise à jour de la bibliothèque. TEXTE Jusqu'à présent, mettre à jour la bibliothèque = réinstaller.

custom_data params

utiliser Joomla\CMS\Helper\LibraryHelper; Joomla\CMS\Helper\LibraryHelper utiliser Joomla\CMS\Cache\Cache; <?php

Connexion de bibliothèques PHP tierces dans Joomla

Lors du développement de sites Web ou d'extensions pour Joomla, des tâches qui ont déjà été résolues par quelqu'un surviennent parfois. Dans le monde du développement, ces solutions sont conçues comme des bibliothèques - des ensembles de fichiers et de classes qui permettent simplement de les brancher dans votre script et d'utiliser du code écrit et bien testé par d'autres développeurs. Il peut s'agir de bibliothèques php pour le traitement d'images, le travail avec PDF, la connexion à des services tiers via l'API REST, et bien plus encore.

Les bibliothèques PHP sont pratiques car elles sont accessibles depuis n'importe où dans l'application: à partir d'un plugin, d'un modèle de composant, d'un module, etc. Cet article explique comment connecter correctement un SDK PHP tiers à votre projet.

Compositeur

Joomla ne supporte pas de travailler directement avec Composer. Pour utiliser la bibliothèque dans votre travail, vous devez l'envelopper dans un type d'extension Joomla bibliothèque et l'installer. Dans les projets sérieux, l'approche de fixation des versions de toutes les composantes du projet est adoptée: le code a été vérifié plus d'une fois, testé et autorisé à travailler dans la production.

Vous créez un package avec votre bibliothèque, l'installez partout où vous en avez besoin. Au fur et à mesure que de nouvelles versions de la bibliothèque sont publiées, vous mettez à jour votre wrapper et bénéficiez de tous les avantages de travailler avec les extensions Joomla: mettre à jour les extensions de manière standard, y compris via la CLI.Voir le Changelog de l'extension dans la zone d'administration AVANT la mise à jour, etc.

Afficher l'extension Changelog dans la zone d'administration AVANT la mise à jour vers Joomla 5.

Joomla, PSR, Symfony

Joomla est conforme aux normes PSR, il est donc pratique de travailler avec elle à cet égard. Certains paquets Symfony sont inclus dans le noyau Joomla (console, ficelle, vardumper, yaml, Gestionnaire d'erreurs et d'autres), donc si vous voulez soudainement en ajouter plus, ils s'intégreront et fonctionneront bien. Vous pouvez voir ce qu'il y a d'autre dans Joomla en plus des composants Symfony dans bibliothèques/fournisseurs.

Comment envelopper une bibliothèque PHP tierce dans une extension Joomla?

Rien de compliqué. Les fichiers de la bibliothèque sont généralement situés dans le src dossier. À côté de ce dossier, vous devez créer un manifeste XML de l'extension Joomla en fonction de la documentation (manuel.joomla.org). Ensuite, nous emballons tout dans une archive zip et c'est tout! Il peut être installé.

Si vous avez besoin de vos propres tables dans la base de données pour que la bibliothèque fonctionne, vous devez ajouter les fichiers nécessaires avec des requêtes SQL lors de l'installation ou de la mise à jour. Comme Joomla 4+ fonctionne avec des espaces de noms, il est important de spécifier cet espace de noms dans le manifeste XML de l'extension. Voici un exemple abrégé d'un manifeste XML pour la bibliothèque Joomla.

<?xml version="1.0" encoding="UTF-8" ?>

<extension type="library" method="upgrade"> </fichiers> <nom>Bibliothèque WebTolk AmoCRM</nom> </extension> <nom de la bibliothèque>Webtolk/Amocrm</nom de la bibliothèque> Le<version>1.2.1</version> tag signifie que le ... le dossier de notre archive sera copié dans <namespace path="src">Webtolk\Amocrm</namespace> . Dans le <fichiers> section, nous indiquons ce qui doit être rempli à partir de l'archive. Et <folder>src</folder> dit que l'espace de noms<nom du fichier>amocrm.xml</nom du fichier>

doit être enregistré pour le

src <fichiers> JPATH_SITE/bibliothèques/Webtolk/Amocrm dossier dans <namespace path="src">Webtolk\Amocrm</namespace> . Webtolk\Amocrm <nom de la bibliothèque> src

<espace de nommage> JPATH_SITE/bibliothèques/Webtolk/Amocrm onAfterInitialize Des notes importantes! JLoader Par conséquent, il était nécessaire d'ajouter un plugin système au paquet de bibliothèque qui enregistrerait l'espace de noms sur le À partir de Joomla 4.2.7, il a été corrigé et vous pouvez vous passer du plugin. événement (Event Dispatcher) en utilisant Autrement dit, l'extension est supprimée et installée. Cette décision a été prise quelque part dans les profondeurs des versions de Joomla 3.x. Pourquoi? - caché sous les montagnes de PR. Des recherches supplémentaires sont nécessaires pour trouver les raisons de prendre une telle décision. classe. En conséquence, il était nécessaire de construire un paquet à partir de la bibliothèque et du plugin. Parce que lors de l'installation d'une extension, une entrée est créée dans le "registre" des extensions - dans la base de donnéesAvant Joomla 4.2.7, en fait, le tag table. Ce tableau comporte 2 colonnes de typedu manifeste XML n'a pas fonctionné.

-

et Pourquoi est-ce important? . Et cela, vous devez l'admettre, est une quantité considérable de données. Si vous stockez des paramètres de bibliothèque dans une base de données en utilisant #__extensionsEnsuite, vous devez prendre en compte ce comportement de l'installateur et pré-enregistrer, puis ajouter les paramètres enregistrés au script d'installation de l'extension lors de la mise à jour de la bibliothèque. TEXTE Jusqu'à présent, mettre à jour la bibliothèque = réinstaller.

custom_data params

utiliser Joomla\CMS\Helper\LibraryHelper; Joomla\CMS\Helper\LibraryHelper utiliser Joomla\CMS\Cache\Cache; <?php

Connexion de bibliothèques PHP tierces dans Joomla

Lors du développement de sites Web ou d'extensions pour Joomla, des tâches qui ont déjà été résolues par quelqu'un surviennent parfois. Dans le monde du développement, ces solutions sont conçues comme des bibliothèques - des ensembles de fichiers et de classes qui permettent simplement de les brancher dans votre script et d'utiliser du code écrit et bien testé par d'autres développeurs. Il peut s'agir de bibliothèques php pour le traitement d'images, le travail avec PDF, la connexion à des services tiers via l'API REST, et bien plus encore.

Les bibliothèques PHP sont pratiques car elles sont accessibles depuis n'importe où dans l'application: à partir d'un plugin, d'un modèle de composant, d'un module, etc. Cet article explique comment connecter correctement un SDK PHP tiers à votre projet.

Compositeur

Joomla ne supporte pas de travailler directement avec Composer. Pour utiliser la bibliothèque dans votre travail, vous devez l'envelopper dans un type d'extension Joomla bibliothèque et l'installer. Dans les projets sérieux, l'approche de fixation des versions de toutes les composantes du projet est adoptée: le code a été vérifié plus d'une fois, testé et autorisé à travailler dans la production.

Vous créez un package avec votre bibliothèque, l'installez partout où vous en avez besoin. Au fur et à mesure que de nouvelles versions de la bibliothèque sont publiées, vous mettez à jour votre wrapper et bénéficiez de tous les avantages de travailler avec les extensions Joomla: mettre à jour les extensions de manière standard, y compris via la CLI.Voir le Changelog de l'extension dans la zone d'administration AVANT la mise à jour, etc.

Afficher l'extension Changelog dans la zone d'administration AVANT la mise à jour vers Joomla 5.

Joomla, PSR, Symfony

Joomla est conforme aux normes PSR, il est donc pratique de travailler avec elle à cet égard. Certains paquets Symfony sont inclus dans le noyau Joomla (console, ficelle, vardumper, yaml, Gestionnaire d'erreurs et d'autres), donc si vous voulez soudainement en ajouter plus, ils s'intégreront et fonctionneront bien. Vous pouvez voir ce qu'il y a d'autre dans Joomla en plus des composants Symfony dans bibliothèques/fournisseurs.

Comment envelopper une bibliothèque PHP tierce dans une extension Joomla?

Rien de compliqué. Les fichiers de la bibliothèque sont généralement situés dans le src dossier. À côté de ce dossier, vous devez créer un manifeste XML de l'extension Joomla en fonction de la documentation (manuel.joomla.org). Ensuite, nous emballons tout dans une archive zip et c'est tout! Il peut être installé.

Si vous avez besoin de vos propres tables dans la base de données pour que la bibliothèque fonctionne, vous devez ajouter les fichiers nécessaires avec des requêtes SQL lors de l'installation ou de la mise à jour. Comme Joomla 4+ fonctionne avec des espaces de noms, il est important de spécifier cet espace de noms dans le manifeste XML de l'extension. Voici un exemple abrégé d'un manifeste XML pour la bibliothèque Joomla.

<?xml version="1.0" encoding="UTF-8" ?>

<extension type="library" method="upgrade"> </fichiers> <nom>Bibliothèque WebTolk AmoCRM</nom> </extension> <nom de la bibliothèque>Webtolk/Amocrm</nom de la bibliothèque> Le<version>1.2.1</version> tag signifie que le ... le dossier de notre archive sera copié dans <namespace path="src">Webtolk\Amocrm</namespace> . Dans le <fichiers> section, nous indiquons ce qui doit être rempli à partir de l'archive. Et <folder>src</folder> dit que l'espace de noms<nom du fichier>amocrm.xml</nom du fichier>

doit être enregistré pour le

src <fichiers> JPATH_SITE/bibliothèques/Webtolk/Amocrm dossier dans <namespace path="src">Webtolk\Amocrm</namespace> . Webtolk\Amocrm <nom de la bibliothèque> src

<espace de nommage> JPATH_SITE/bibliothèques/Webtolk/Amocrm onAfterInitialize Des notes importantes! JLoader Par conséquent, il était nécessaire d'ajouter un plugin système au paquet de bibliothèque qui enregistrerait l'espace de noms sur le À partir de Joomla 4.2.7, il a été corrigé et vous pouvez vous passer du plugin. événement (Event Dispatcher) en utilisant Autrement dit, l'extension est supprimée et installée. Cette décision a été prise quelque part dans les profondeurs des versions de Joomla 3.x. Pourquoi? - caché sous les montagnes de PR. Des recherches supplémentaires sont nécessaires pour trouver les raisons de prendre une telle décision. classe. En conséquence, il était nécessaire de construire un paquet à partir de la bibliothèque et du plugin. Parce que lors de l'installation d'une extension, une entrée est créée dans le "registre" des extensions - dans la base de donnéesAvant Joomla 4.2.7, en fait, le tag table. Ce tableau comporte 2 colonnes de typedu manifeste XML n'a pas fonctionné.

-

et Pourquoi est-ce important? . Et cela, vous devez l'admettre, est une quantité considérable de données. Si vous stockez des paramètres de bibliothèque dans une base de données en utilisant #__extensionsEnsuite, vous devez prendre en compte ce comportement de l'installateur et pré-enregistrer, puis ajouter les paramètres enregistrés au script d'installation de l'extension lors de la mise à jour de la bibliothèque. TEXTE Jusqu'à présent, mettre à jour la bibliothèque = réinstaller.

custom_data params

utiliser Joomla\CMS\Helper\LibraryHelper; Joomla\CMS\Helper\LibraryHelper utiliser Joomla\CMS\Cache\Cache; <?php

Plus d'articles...

1
2
3
4
5
6
7
EventSchedule
February Customize Backend
February Email Template
February Joomla Academy
February Mywoodlot
February Recover Article
February Web Development II
February Write Tutorial
February JQuery 2
Gets SiteView
JCB
JCB1 Custom Admin View
JCB2 Basis
January Components
January Connecting Third Party Libraries
January Floating Labels
January Happy 2025
January Web Development
March Blog Joomla
March Case Study
March Disaster
MySqlTab
SitViewCodeSuggestions
TutorialKing
Admin Tabs Custom Code
Article Menu Item
ClassDescriptionGitea
Diagram Selection Process
Joomla Extension Changlog View
Menu Templates
Selection Process Current
Starttime
EventSchedule3
Chrome OvkmdodwV6
Dashboard 01 Custom Css Example
Dashboard 02 Disable Core Extensions
Dashboard 03 Edit Layout
Dashboard 04 Images
Dashboard 05 User Dashboard
Dashboard 06 Custom Quick Icons
Dashboard 07 Admin Checklist
Fimage1
Fimage10
Fimage11
Fimage12
Fimage13
Fimage2
Fimage3
Fimage4
Fimage5
Fimage6
Fimage7
Fimage8
Fimage9
Image 20250114112645473
Image1
Image10
Image11
Image12
Image13
Image1a
Image2
Image3
Image4
Image4a
Image5 1
Image5
Image5a
Image6
Image6a
Image7
Image8
Image9
Junction Table