Bonjour,
Je cherche une solution pour mettre mes propres classes dans le dossier vendor en utilisant composer mais sans les mettre sur un serveur spécialisé. Est-ce possible? Comment?
Bonjour,
Je cherche une solution pour mettre mes propres classes dans le dossier vendor en utilisant composer mais sans les mettre sur un serveur spécialisé. Est-ce possible? Comment?
Tu peux par exemple utiliser un serveur Git (Gitlab, Bitbucket, Github, ...) et dans ton composer.json ajouter les repositories.
Exemple avec un serveur Gitlab :
Code x : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 { "name": "monprojet", ... "repositories": [ {"type": "gitlab", "url": "git@tonserveurgitlab.com:tonmodule.git"} ], "config": { "gitlab-token": { "tonserveurgitlab.com": "xxxxxxx" }, "gitlab-domains": ["tonserveurgitlab.com"], }, "require": { ... "tasociete/tonmodule": "^1.0" }, ... }
Merci. Je testerai quand j'aurai fini mon travail en cours. Il faudra aussi que je regarde l'utilité de composer.lock.
Il faudra aussi que je vérifie l'autoload.
Salut,
Tu peux aussi utiliser repository de type «path» dans lequel tu indiques le chemin de ta librairie sur ton disque.
Voilà, je m'y mets. J'ai regardé ce tuto et ces explications.
Rappel de ma question initiale:J'ai enregistré ma classe dans /vendor/moimp/setlang/ et j'ai créé manuellement deux fichiers composer.json l'un à la racine du site et l'autre dans /vendor/moimp/setlang/... mais sans les mettre sur un serveur spécialisé. Est-ce possible? Comment?
A l'utilisation, j'obtiens une erreurLe premier fichier json à la racine du site contient:Class "SetLang" not foundLe fichier json dans /vendor/moimp/setlang/ contient:
Code json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 { "require": { "rawsrc/phpecho": "^6.1", "moimp/setLang": "^2.0" } }Je vous donne également le début et la fin de ma classe:
Code json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 { "name": "moimp/setlang", "description": "Choose a prefered language from availables", "keywords": ["choose language"], "authors": [ { "name": "moimp (Marc Paris)", "email": "moimp3.orange.fr", "role": "Creator" } ], "autoload": { "psr-4": { "moimp\\setlang\\": "" } }, "require": { "php": ">=8.0", "ext-mbstring": "*", "ext-ctype": "*" }, "minimum-stability": "stable" }Et le fichier d'utilisation contient:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php namespace SetLang; class SetLang { // ... } class_alias('SetLang\SetLang', 'SetLang', false);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php declare(strict_types=1); require_once 'config.php'; require_once 'define.php'; require_once DIR_ROOT.'vendor'.DIRECTORY_SEPARATOR.'autoload.php'; require_once 'language.php'; // C'est dans ce fichier que se produit l'erreur et qu'est définie la variable $language utilisée ci-après. require_once DIR_ROOT.'lang'.DIRECTORY_SEPARATOR.$language.'.php'; // ...
Le dossier vendor est un dossier totalement dispensable : tu le supprimes sans occasionner la moindre perte. Ce dossier est géré par composer (install ou update).
En clair : tu fais fausse route et tu n'as pas suivi les bons tuto ni les propositions faites ci-dessus.
Partager