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
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.
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.
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:
administrator/components/com_component
, components/com_component
, media/com_component
);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/