Architecture d'un projet
Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un dossier racine de projet (dossier package). Par exemple :
- MyPackage (project root folder)
Composants
Data
Logs
Settings
Documentation
Plugins
Project
DerivedData
Sources
Trash
Resources
Settings
userPreferences.jSmith
WebFolder
Si votre projet a été converti depuis une base binaire, des dossiers supplémentaires peuvent être présents. See "Converting databases to projects" on doc.4d.com.
Project
folder
La hiérarchie du dossier Project se présente généralement comme suit :
<applicationName>.4DProject
fileSources
Classes
DatabaseMethods
Methods
Formulaires
TableForms
Les Triggers
DerivedData
Trash
(if any)
<applicationName>.4DProject
file
Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par :
- 4D
- 4D Server (read-only, see Opening a remote project)
Dans les projets 4D, le développement est réalisé avec 4D et le développement multi-utilisateurs est géré par des outils de contrôle de version. 4D Server peut ouvrir des fichiers .4DProject à des fins de test.
This text file can also contain configuration keys, in particular "tokenizedText": false
.
Sources
Contenu | Description | Format |
---|---|---|
catalog.4DCatalog | Définit des tables et des champs | XML |
catalog_editor.json | Custom positions and colors of tables, fields, and links in the Structure editor. Depends on a Compatibility setting in converted projects | JSON |
folders.json | Définitions des dossiers de l'Explorateur | JSON |
menus.json | Définit les menus | JSON |
settings.4DSettings | Structure database settings. They are not taken into account if user settings or user settings for data are defined (see also Priority of settings. Warning: In compiled applications, structure settings are stored in the .4dz file (read-only). For deployment needs, it is necessary to enable and use user settings or user settings for data to define custom settings. | XML |
tips.json | Définit les messages d'aide | JSON |
lists.json | Listes définies | JSON |
filters.json | Filtres définis | JSON |
dependencies.json | Names of components to load in the project | JSON |
styleSheets.css | Feuilles de style CSS | CSS |
styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS |
styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS |
DatabaseMethods
Contenu | Description | Format |
---|---|---|
databaseMethodName.4dm | Méthodes base définies dans le projet. Un fichier par méthode base | text |
Methods
Contenu | Description | Format |
---|---|---|
methodName.4dm | Méthodes projet définies dans le projet. Un fichier par méthode | text |
Classes
Contenu | Description | Format |
---|---|---|
className.4dm | Méthode de définition de classe utilisateur, permettant d'instancier des objets spécifiques. Un fichier par classe, le nom du fichier est le nom de la classe | text |
Formulaires
Contenu | Description | Format |
---|---|---|
formName/form.4DForm | Description du formulaire projet | json |
formName/method.4dm | Méthode formulaire projet | text |
formName/Images/pictureName | Image statique du formulaire projet | picture |
formName/ObjectMethods/objectName.4dm | Méthodes objet. Un fichier par méthode objet | text |
TableForms
Contenu | Description | Format |
---|---|---|
n/Input/formName/form.4DForm | Description du formulaire d'entrée de la table (n étant le numéro de table) | json |
n/Input/formName/Images/pictureName | Images statiques du formulaire d'entrée de la table | picture |
n/Input/formName/method.4dm | Méthode du formulaire d'entrée de la table | text |
n/Input/formName/ObjectMethods/objectName.4dm | Méthodes objet du formulaire d'entrée. Un fichier par méthode objet | text |
n/Output/formName/form.4DForm | Description du formulaire de sortie de la table (n étant le numéro de table) | json |
n/Output/formName/Images/pictureName | Images statiques du formulaire de sortie de la table | picture |
n/Output/formName/method.4dm | Méthode du formulaire de sortie de la table | text |
n/Output/formName/ObjectMethods/objectName.4dm | Méthodes objet du formulaire de sortie. Un fichier par méthode objet | text |
Les Triggers
Contenu | Description | Format |
---|---|---|
table_n.4dm | Méthodes trigger définies dans le projet. Un fichier de trigger par table (n étant le numéro de table) | text |
Note: The .4dm file extension is a text-based file format, containing the code of a 4D method. Il est compatible avec les outils de contrôle de version.
Trash
Le dossier Trash contient des méthodes et des formulaires qui ont été supprimés du projet (le cas échéant). Il peut contenir les dossiers suivants :
Methods
Formulaires
TableForms
Dans ces dossiers, les noms des éléments supprimés sont entre parenthèses, par exemple. "(myMethod).4dm". The folder organization is identical to the Sources folder.
DerivedData
Le dossier DerivedData contient des données en cache utilisées en interne par 4D pour optimiser le traitement. Il est automatiquement créé ou recréé si nécessaire. Vous pouvez ignorer ce dossier.
Libraries
Ce dossier n'est utilisé que sur macOS.
The Librairies folder contains the file resulting from a compilation with the Silicon compiler on macOS.
Resources
Le dossier Resources contient tous les fichiers et dossiers de ressources personnalisés du projet. Dans ce dossier, vous pouvez placer tous les fichiers nécessaires à la traduction ou à la personnalisation de l'interface de l'application (fichiers image, fichiers texte, fichiers XLIFF, etc.). 4D utilise des mécanismes automatiques pour manipuler le contenu de ce dossier, notamment pour le traitement des fichiers XLIFF et des images statiques. Pour l'utilisation en mode distant, le dossier Resources vous permet de partager des fichiers entre le serveur et tous les ordinateurs clients. See the 4D Server Reference Manual.
Contenu | Description | Format |
---|---|---|
élément | Fichiers et dossiers de ressources de la base | variés |
Images/Library/item | Images de la bibliothèque d'images sous forme de fichiers séparés(*). Les noms de ces éléments deviennent des noms de fichiers. Si un élément dupliqué existe, un numéro est ajouté au nom. | picture |
(*) uniquement si le projet a été exporté depuis une base binaire .4db.
Data
Le dossier Data contient le fichier de données ainsi que tous les fichiers et dossiers relatifs aux données.
Contenu | Description | Format |
---|---|---|
data.4dd(*) | Fichier de données contenant les données saisies dans les enregistrements et toutes les données appartenant aux enregistrements. Lorsque vous ouvrez un projet 4D, l'application ouvre par défaut le fichier de données courant. If you change the name or location of this file, the Open data file dialog box will then appear so that you can select the data file to use or create a new one | binary |
data.journal | Créé uniquement lorsque la base de données utilise un fichier journal. Le fichier journal est utilisé pour assurer la sécurité des données entre les sauvegardes. Toutes les opérations effectuées sur les données sont enregistrées séquentiellement dans ce fichier. Par conséquent, chaque opération sur les données entraîne deux actions simultanées : la première sur les données (l'instruction est exécutée normalement) et la seconde dans le fichier journal (une description de l'opération est enregistrée). Le fichier journal est construit indépendamment, sans perturber ni ralentir le travail de l'utilisateur. Une base de données ne peut fonctionner qu'avec un seul fichier journal à la fois. Le fichier journal enregistre des opérations telles que des ajouts, des modifications ou des suppressions d'enregistrements, des transactions, etc. Il est généré par défaut lors de la création d'une base de données. | binary |
data.match | (interne) UUID correspondant au numéro de la table | XML |
(*) Lorsque le projet est créé depuis une base binaire .4b, le fichier de données demeure inchangé. Ainsi, il peut être nommé différemment et placé dans un autre emplacement.
Settings
(user data)
This folder contains user settings for data used for application administration.
These settings take priority over user settings and structure settings. See also Priority of settings.
Contenu | Description | Format |
---|---|---|
directory.json | Description des groupes et utilisateurs 4D et de leurs droits d'accès lorsque l'application est lancée avec ce fichier de données. | JSON |
Backup.4DSettings | Database backup settings, used to set the backup options when the database is run with this data file. Keys concerning backup configuration are described in the 4D XML Keys Backup manual. | XML |
settings.4DSettings | Propriétés de la base personnalisées pour ce fichier de données. | XML |
Logs
Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment :
- conversion de base de données,
- requêtes de serveur Web,
- backup/restore activities journal (Backup Journal[xxx].txt, see Backup journal)
- débogage de commandes,
- Requêtes 4D Server (générées sur les postes clients et sur le serveur).
An additional Logs folder is available in the system user preferences folder (active 4D folder, see Get 4D folder command) for maintenance log files and in cases where data folder is read-only.
Settings
(user)
This folder contains user settings used for application administration.
These settings take priority over structure settings file. However, if user settings for data exist, they take priority over the user settings. See also Priority of settings.
Contenu | Description | Format |
---|---|---|
directory.json | Description des groupes et utilisateurs 4D pour l'application, ainsi que leurs droits d'accès | JSON |
Backup.4DSettings | Database backup settings, used to set the backup options) when each backup is launched. This file can also be used to read or set additional options, such as the amount of information stored in the backup journal. Keys concerning backup configuration are described in the 4D XML Keys Backup manual. | XML |
BuildApp.4DSettings | Build settings file, created automatically when using the application builder dialog box or the BUILD APPLICATION command | XML |
settings.4DSettings | Paramètres personnalisés pour ce projet (tous les fichiers de données) | XML |
logConfig.json | Custom log configuration file | json |
userPreferences.<userName>
Ce dossier contient des fichiers qui mémorisent les configurations utilisateur, par exemple la position des points de rupture ou de la fenêtre. Vous pouvez simplement ignorer ce dossier. Il contient par exemple :
Contenu | Description | Format |
---|---|---|
methodPreferences.json | Préférences de l'éditeur de code de l'utilisateur courant | JSON |
methodWindowPositions.json | Position de la fenêtre de l'utilisateur courant pour les méthodes | JSON |
formWindowPositions.json | Position de la fenêtre de l'utilisateur courant pour les formulaires | JSON |
workspace.json | Liste de fenêtres ouvertes : sous macOS, ordre des fenêtres à onglets | JSON |
debuggerCatches.json | Appels vers commandes | JSON |
recentTables.json | Liste ordonée de tables | JSON |
preferences.4DPreferences | Chemin de données courant et position de la fenêtre principale | XML |
CompilerIntermediateFiles | Fichiers intermédiaires résultant de la compilation Apple Silicon | Folder |
Composants
Legacy folder containing components (must be stored at the same level as the Project folder).
It is now recommended to use the dependencies.json and (optionnally) environment4d.json files to declare your components instead of the Components folder.
Plugins
Ce dossier contient les plug-ins qui seront disponibles dans le projet d'application. Il doit être stocké au même niveau que le dossier Project.
Documentation
Ce dossier contient tous les fichiers de documentation (.md) créés pour les éléments du projet, tels que les classes, les méthodes ou les formulaires. Les fichiers de documentation sont gérés et affichés dans l'Explorateur 4D.
For more information, refer to Documenting a project.
WebFolder
Il s'agit du dossier racine par défaut du serveur Web 4D pour les pages, les images, etc. Il est automatiquement créé lors du premier lancement du serveur Web.
.gitignore
file (optional)
Fichier qui spécifie les fichiers qui seront ignorés par git. You can include a gitignore file in your projects using the Create .gitignore file option on the General page of the preferences. To configure the contents of that file, see Create .gitignore
file.