web-dev-qa-db-fra.com

Comment versionner un composant Joomla

Lors de la création d'un nouveau composant ou module Joomla, l'essentiel du codage et du développement est effectué dans la structure du CMS, le composant étant déjà installé.

- administrator
    - cache
    - components
        - com_component
            - <arquivos do componente>
    - help
    - includes
    - language
    - logs
    - manifests
    - modules
    - templates
- bin
- cache
- cli
- components
    - com_component
        - <arquivos do componente>
- images
- includes
- installation
- language
- layouts
- libraries
- media
- modules
- plugins
- templates
- tmp

Ma question concerne la version des fichiers de projet dans cette structure.

Si j'utilise .gitignore pour ignorer TOUS les autres fichiers Joomla, mon dépôt git ressemble à ceci:

- administrator
    - components
        - com_component
            - <arquivos do componente>
- components
    - com_component
        - <arquivos do componente>

Mais je voudrais que mon référentiel ressemble à un composant prêt à être installé (il suffit de le compresser et de l'installer avec le programme d'installation de joomla)

- admin
    - <arquivos do componente>
- site
    - <arquivos do componente>
- manifest.xml
5
Guilherme

Vous n'avez pas mentionné l'éditeur que vous utilisez. Cependant, la plupart des éditeurs, tels qu'Eclipse, prennent en charge les fichiers de construction ANT et peuvent générer automatiquement chaque modification apportée au code source.

Alors voici comment je fais mon développement.

  • J'utilise un espace de travail séparé pour tous mes projets
  • Je structure mon composant de la même manière que ce que vous avez mentionné dans votre dernier bloc de code, c'est-à-dire uniquement la structure du composant et aucun Joomla! Dossiers.
  • J'utilise le fichier de construction ANT pour créer et envoyer tous les fichiers modifiés dans mon dossier d'installation local Joomla
  • Enfin, lorsque cela est nécessaire, j’utilise le même fichier de construction (avec une cible différente) pour construire mon package final.

Voici ma structure du dossier du paquet:

pkg_extension
  - com_extension
    - site
    - language
    - admin
    - extension.xml
    - script.php
  - plg_someplugin
  - mod_somemod
  - pkg_extension.xml
  - build.xml

Et voici un échantillon de mon build.xml qui ressemble à

<?xml version="1.0" encoding="UTF-8"?>
<project name="Extension" default="copyall" basedir=".">
   <property name="site3" value="d:/xampp/htdocs/joomla/components/com_extension" />
   <property name="admin3" value="d:/xampp/htdocs/joomla/administrator/components/com_extension" />
   <property name="sitelang3" value="d:/xampp/htdocs/joomla/language/" />
   <property name="adminlang3" value="d:/xampp/htdocs/joomla/administrator/language" />
   <target name="copyall">
      <copy todir="${site3}"><fileset dir="com_extension/site"><include name="**"/></fileset></copy>
      <copy todir="${admin3}" ><fileset dir="com_extension/admin"><include name="**" /><exclude name="language/**"/></fileset></copy>
      <copy todir="${sitelang3}"><fileset dir="com_extension/site/language"><include name="**"/></fileset></copy>
      <copy todir="${adminlang3}"><fileset dir="com_extension/admin/language"><include name="**"/></fileset></copy>
   </target>
</project>

Vous n’avez pas besoin d’utiliser la même approche et pouvez écrire un fichier de construction de la manière qui vous convient, ceci est juste un exemple de la façon dont vous pouvez le faire.

3
Nagarjun

Une approche que je lis sur le point de rendre votre composant un format approprié pour la gestion des versions et la compression est la suivante:

  • Prenez une copie de votre composant et installez-le;
  • Supprimez les dossiers de composants installés dans votre installation Joomla (administrator/components/com_component, components/com_component, media/com_component);
  • Créez ensuite des liens symboliques de ces dossiers vers des dossiers au sein d’une copie de votre composant;
  • La copie référencée de votre composant peut être correctement versionnée à l'aide de Git.

S'il y a des modifications dans la base de données (par exemple, les modifications du script d'installation SQL), vous pouvez exécuter certaines commandes (par exemple, ALTER TABLE Ou CREATE TABLE) Pour ajouter les champs ou les tables, si vous ne souhaitez pas réinstaller le fichier. composant.

Une autre option consiste simplement à exécuter le script de désinstallation SQL pour votre base de données, puis à l'exécuter à nouveau, peut-être même via un hook Git ou semi-automatique via un script qui appelle MySQL (ou une autre base de données) pour exécuter le code SQL.

Bien sûr, on peut toujours supprimer le composant de l'installation de Joomla et l'installer à nouveau. Si tel est le cas, le processus décrit ci-dessus doit être répété.

La création de liens symboliques pourrait être automatisée à l'aide d'un script.

Si vous souhaitez que votre composant réside dans le répertoire d'installation de Joomla, cela est également possible, par exemple. Si vous résidez dans _source/components/com_mycomponent, il vous suffit ensuite d’ajouter le dossier _source à votre fichier .gitignore.

Source: http://vdespa.com/joomla-3-getting-started-with-extension-development/

3
Wieger