Download the PHP package eckinox/address-bundle without Composer
On this page you can find all versions of the php package eckinox/address-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download eckinox/address-bundle
More information about eckinox/address-bundle
Files in eckinox/address-bundle
Package address-bundle
Short Description Provides a form type to autocomplete addresses
License proprietary
Informations about the package address-bundle
AddressBundle
Le AddressBundle offre la possibilité d'avoir des champs d'auto-complétion utilisant différentes API pour les formulaires contenant des adresses.
Installation du bundle
-
Installez le bundle via Composer:
- Ajoutez le secret:
Remplacez INSERT_CHOSEN_API_NAME
pour l'API choisi. Les API disponibles sont les suivantes: GOOGLE_PLACES
, ADDRESS_COMPLETE
.
Pour générer votre clé d'API, veuillez vous référer aux articles ci-dessous:
- Ajouter les routes:
Créer un fichiereckinox_address.yaml
dans le dossierconfig/routes
contenant les lignes suivantes:
Comment utiliser Address Bundle
Créer l'entité
Tout d'abord, créer l'entité qui sera utilisée pour enregistrer les adresses. Pour ce faire, vous n'avez qu'à extend la classe abstraite fournie par le bundle comme suis:
Voici la liste des propriétés définies dans AbstractAddress
:
Utiliser l'auto-complete dans les formulaires
Il y a deux manières d'utiliser les adresses dans vos formulaires:
- AddressType: Génère un formulaire complet avec les champs de base de l'entité abstraite
AbstractAddress
. (Fonctionne bien pour une liste d'adresses de base avec leCollectionListType
fourni par eckinox/admin-ui-bundle). - AddressAutocompleteType: Génère un champ de type input, utilisé pour lancer la recherche via l'API choisi et afficher la liste de possibilitées.
Voici comment les utiliser:
AddressType
Pour utiliser le formulaire AddressAutocompleteType
dans vos FormType
, vous devez:
- Ajouter
Eckinox\AddressBundle\Form\Type\AddressType;
dans les use de votre formulaire où vous désirez l'afficher. - Puis, utiliser
AddressType
et passer l'entité d'address
désiré à l'aide du paramètreentry_options
puis lui passer'data_class' => MyAddressClass::class,
(voir l'exemple ci-dessous). - Ajouter, au besoin, l'API désiré avec l'option
api
, l'API de Poste Canada "Address Complete" sera utilisé par défaut.
AddressAutocompleteType
Pour utiliser le champ AddressAutocompleteType
dans vos FormType
, vous devez:
- Ajouter
Eckinox\AddressBundle\Form\Type\AddressAutocompleteType
dans vos use. - Ajouter votre champ
AddressAutocompleteType
comme vous le feriez avec n'importe quel autre champ. - Ajouter les paramètres désirés:
- Il est recommandé de désactiver l'autocomplete du champ pour éviter que les propositions du navigateur passent par-dessus les propositions d'autocomplete. Vous n'avez qu'à ajouter l'attribut suivant au champ:
'autocomplete' => uniqid('noautocomplete')
. - Il est possible de passer un paramètre
api
pour choisir l'API à utiliser. Les choix disponibles sont:addressComplete
ougooglePlaces
. Si aucun API est spécifié, l'api de Poste Canada "Address Complete" sera utilisé par défaut. - Ajouter, au besoin l'option
parent
qui sert à définir un sélecteur JS valide qui sera utilisé à la place duparentNode
. Utile si vous voulez remplir les informations de l'autocomplete sur des champs qui ne sont pas à l'intérieur du parent immédiat. Exemple:.section-wrapper.geo.card
- Il est recommandé de désactiver l'autocomplete du champ pour éviter que les propositions du navigateur passent par-dessus les propositions d'autocomplete. Vous n'avez qu'à ajouter l'attribut suivant au champ:
Voici un exemple:
- Une fois l'auto-complete ajouté au formulaire, il est possible d'utiliser l'event javascript
populate-address
pour remplir les champs avec les détails de l'adresse (qui se retrouvent dansevent.detail
). L'event est déclenché sur l'élément de row du formulaire, donc dans ce cas-ci, sur<tr>
. Voici l'event listener utilisé par la liste par défaut qui peut être redéfini et ajusté pour vos besoins spécifiques:
Fonctionnement
Lorsqu'un champ de type AddressAutocompleteType
est utilisé dans un formulaire, l'input classique est remplacé par un webcomponent d'autocomplete qui contient le champ utilisé pour la rechercher et la liste qui receveras les résultats de l'API.
Une fois qu'un choix est sélectionné, une autre requête à l'API est lancée et les détails de l'adresse sont retournés. Un event javascript est déclenché et les autres champs d'adresse sont alors remplis.
All versions of address-bundle with dependencies
doctrine/orm Version ^2.19
symfony/form Version ^5.4|^6.0
symfony/framework-bundle Version ^5.4|^6.0
symfony/http-client Version ^5.4|^6.0
symfony/serializer Version ^5.4|^6.0
symfony/translation Version ^5.4|^6.0
symfony/validator Version ^5.4|^6.0
twig/twig Version ^3.8