2017 © Pedro PelĂĄez
 

symfony-bundle geographie-bundle

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

image

lyssal/geographie-bundle

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  • Sunday, May 1, 2016
  • by Lyssal
  • Repository
  • 2 Watchers
  • 3 Stars
  • 368 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 4 Forks
  • 1 Open issues
  • 10 Versions
  • 1 % Grown

The README.md

LyssalGeographieBundle

LyssalGeographieBundle permet la manipulation de différentes données géographiques et des langues., (*1)

SensioLabsInsight, (*2)

Entités

Toutes les entités possÚdent leur manager et leur gestion administrative (optionnelle) si vous utilisez Sonata., (*3)

Les entités sont : * Pays * Region * Departement * Ville * CodePostal * Langue, (*4)

Utilisation

Vous devez créer un bundle héritant LyssalGeographieBundle :, (*5)

namespace Acme\GeographieBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeGeographieBundle extends Bundle
{
    public function getParent()
    {
        return 'LyssalGeographieBundle';
    }
}

Ensuite, vous devez créer dans votre bundle les entités héritant celles de LyssalGeographieBundle et redéfinir certaines propriétés :, (*6)

namespace Acme\GeographieBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Lyssal\GeographieBundle\Entity\Pays as BasePays;
use Doctrine\ORM\Mapping\UniqueConstraint;

/**
 * Pays du monde.
 * 
 * @ORM\Entity()
 * @ORM\Table
 * (
 *     name="acme_pays",
 *     uniqueConstraints=
 *     {
 *         @UniqueConstraint(name="CODE_ALPHA_2", columns={ "pays_code_alpha_2" }),
 *         @UniqueConstraint(name="CODE_ALPHA_3", columns={ "pays_code_alpha_3" })
 *     }
 * )
 */
class Pays extends BasePays
{
    /**
     * @var array<\Acme\GeographieBundle\Entity\Region>
     * 
     * @ORM\OneToMany(targetEntity="Region", mappedBy="pays")
     */
    protected $regions;
}

```php namespace Acme\GeographieBundle\Entity;, (*7)

use Doctrine\ORM\Mapping as ORM; use Lyssal\GeographieBundle\Entity\Region as BaseRegion;, (*8)

/** * RĂ©gion d'un pays. * * @ORM\Entity() * @ORM\Table(name="acme_region") */ class Region extends BaseRegion { /** * @var \Acme\GeographieBundle\Entity\Pays * * @ORM\ManyToOne(targetEntity="Pays", inversedBy="regions") * @ORM\JoinColumn(name="pays_id", referencedColumnName="pays_id", nullable=false, onDelete="CASCADE") */ protected $pays;, (*9)

/**
 * @ORM\OneToMany(targetEntity="Departement", mappedBy="region")
 */
protected $departements;

}, (*10)

```php
namespace Acme\GeographieBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Lyssal\GeographieBundle\Entity\Departement as BaseDepartement;
use Doctrine\ORM\Mapping\UniqueConstraint;

/**
 * Département d'une région.
 * 
 * @ORM\Entity(repositoryClass="\Lyssal\GeographieBundle\Repository\DepartementRepository")
 * @ORM\Table
 * (
 *     name="acme_departement",
 *     uniqueConstraints=
 *     {
 *         @UniqueConstraint(name="REGION_CODE", columns={ "region_id", "departement_code" })
 *     }
 * )
 */
class Departement extends BaseDepartement
{
    /**
     * @var \Acme\GeographieBundle\Entity\Region
     * 
     * @ORM\ManyToOne(targetEntity="Region", inversedBy="departements")
     * @ORM\JoinColumn(name="reg_id", referencedColumnName="reg_id", nullable=false, onDelete="CASCADE")
     */
    protected $region;

    /**
     * @var array<\Acme\GeographieBundle\Entity\Ville>
     * 
     * @ORM\OneToMany(targetEntity="Ville", mappedBy="departement")
     */
    protected $villes;
}

```php namespace Acme\GeographieBundle\Entity;, (*11)

use Doctrine\ORM\Mapping as ORM; use Lyssal\GeographieBundle\Entity\Ville as BaseVille;, (*12)

/** * Ville. * * @ORM\Entity() * @ORM\Table(name="acme_ville") */ class Ville extends BaseVille { /** * @var \Acme\GeographieBundle\Entity\Departement * * @ORM\ManyToOne(targetEntity="Departement", inversedBy="villes") * @ORM\JoinColumn(name="dep_id", referencedColumnName="dep_id", nullable=false, onDelete="CASCADE") */ protected $departement; }, (*13)

```php
namespace Acme\GeographieBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Lyssal\GeographieBundle\Entity\CodePostal as BaseCodePostal;

/**
 * Code postal.
 * 
 * @ORM\Entity()
 * @ORM\Table(name="acme_code_postal", uniqueConstraints={@ORM\UniqueConstraint(name="UNIQUE_VILLE_CODE", columns={"ville_id", "code_postal_code"})})
 */
class CodePostal extends BaseCodePostal
{

}

```php namespace Acme\GeographieBundle\Entity;, (*14)

use Lyssal\GeographieBundle\Entity\Langue as BaseLangue; use Doctrine\ORM\Mapping as ORM;, (*15)

/** * Langue. * * @ORM\Entity() * @ORM\Table(name="acme_langue") */ class Langue extends BaseLangue {, (*16)

}, (*17)


Vous devez ensuite redéfinir les paramÚtres suivants : * `lyssal.geographie.entity.departement.class` : Acme\GeographieBundle\Entity\Departement * `lyssal.geographie.entity.pays.class` : Acme\GeographieBundle\Entity\Pays * `lyssal.geographie.entity.region.class` : Acme\GeographieBundle\Entity\Region * `lyssal.geographie.entity.ville.class` : Acme\GeographieBundle\Entity\Ville * `lyssal.geographie.entity.code_postal.class` : Acme\GeographieBundle\Entity\CodePostal * `lyssal.geographie.entity.langue.class` : Acme\GeographieBundle\Entity\Langue Exemple avec sur `Acme/GeographieBundle/Resources/config/services.xml` : ```xml <?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="lyssal.geographie.entity.ville.class">Acme\GeographieBundle\Entity\Ville</parameter> <parameter key="lyssal.geographie.entity.code_postal.class">Acme\GeographieBundle\Entity\CodePostal</parameter> <parameter key="lyssal.geographie.entity.departement.class">Acme\GeographieBundle\Entity\Departement</parameter> <parameter key="lyssal.geographie.entity.region.class">Acme\GeographieBundle\Entity\Region</parameter> <parameter key="lyssal.geographie.entity.pays.class">Acme\GeographieBundle\Entity\Pays</parameter> <parameter key="lyssal.geographie.entity.langue.class">Acme\GeographieBundle\Entity\Langue</parameter> </parameters> </container>

Vous devez paramétrer `` :, (*18)

Dans votre AppKernel.php :, (*19)

new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),

Exemple dans votre config.yml :, (*20)

doctrine:
    # ...
    orm:
        # ...
        mappings:
            translatable:
                type: annotation
                alias: Gedmo
                prefix: Gedmo\Translatable\Entity
                dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"

stof_doctrine_extensions:
    default_locale: "%locale%"
    orm:
        default:
            translatable: true
            sluggable: true

Managers

Les services sont : * lyssal.geographie.manager.departement * lyssal.geographie.manager.pays * lyssal.geographie.manager.region * lyssal.geographie.manager.ville * lyssal.geographie.manager.code_postal * lyssal.geographie.manager.langue, (*21)

Exemple d'utilisation

Dans votre contrĂŽleur :, (*22)

$tousLesPays = $this->container->get('lyssal.geographie.manager.pays')->findAll();

Utiliser vos managers hérités de LyssalGeographieBundle

Si vous utilisez vos propres managers héritant des managers de LyssalGeographieBundle, vous pouvez redéfinir les paramÚtres suivants : * lyssal.geographie.manager.departement.class * lyssal.geographie.manager.pays.class * lyssal.geographie.manager.region.class * lyssal.geographie.manager.ville.class * lyssal.geographie.manager.code_postal.class * lyssal.geographie.manager.langue.class, (*23)

Exemple en XML d'un manager personnalisé :, (*24)

<parameters>
    <parameter key="lyssal.geographie.manager.departement.class">Acme\GeographieBundle\Manager\DepartementManager</parameter>
</parameters>

SonataAdmin

Les entités seront automatiquement intégrées à SonataAdmin si vous l'avez installé., (*25)

Si vous souhaitez redéfinir les classes Admin, il suffit de surcharger les paramÚtres suivants : * lyssal.geographie.admin.departement.class * lyssal.geographie.admin.pays.class * lyssal.geographie.admin.region.class * lyssal.geographie.admin.ville.class * lyssal.geographie.admin.code_postal.class * lyssal.geographie.admin.langue.class, (*26)

Installation

LyssalTourismeBundle utilise StofDoctrineExtensions que vous devrez paramétrer pour les traductions (gedmo_translatable)., (*27)

  1. Mettez Ă  jour votre composer.json :
"require": {
    "lyssal/geographie-bundle": "*"
}
  1. Installez le bundle :
php composer.phar update
  1. Mettez Ă  jour AppKernel.php :
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
new Lyssal\StructureBundle\LyssalStructureBundle(),
new Lyssal\GeographieBundle\LyssalGeographieBundle(),
new Acme\GeographieBundle\AcmeGeographieBundle(),
  1. Mettez Ă  jour votre config.yml :
doctrine:
    orm:
        auto_mapping: true
        mappings:
            translatable:
                type: annotation
                alias: Gedmo
                prefix: Gedmo\Translatable\Entity
                dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"

stof_doctrine_extensions:
    default_locale: "%locale%"
    orm:
        default:
            translatable: true
            sluggable: true
  1. Créez les tables en base de données :
php app/console doctrine:schema:update --force

Commandes

Importer des données

Vide et importe des données :, (*28)

php app/console lyssal:geographie:database:import

Attention : Les tables seront automatiquement vidées lors de l'appel de cette commande., (*29)

Le remplissage de la base concerne :, (*30)

  • Tous les pays avec nom en français et anglais
  • Les rĂ©gions de France avec nom en français
  • Les dĂ©partements de France avec nom en français
  • Les villes de France avec nom en français et codes postaux

CSV

Pour remplir la base de données, LyssalGeographieBundle utilise les CSV de sql.sh pour les pays, les départements et les villes., (*31)

Ce(tte) oeuvre de http://sql.sh est mise Ă  disposition selon les termes de la licence Creative Commons Attribution – Partage dans les MĂȘmes Conditions 4.0 International(http://creativecommons.org/licenses/by-sa/4.0/)., (*32)

The Versions

01/05 2016

dev-master

9999999-dev

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

01/05 2016

0.1.4

0.1.4.0

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

29/04 2016

0.1.3.4

0.1.3.4

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

01/02 2016

0.1.3.3

0.1.3.3

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

18/09 2015

0.1.3.2

0.1.3.2

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

15/09 2015

0.1.3.1

0.1.3.1

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

09/09 2015

0.1.3

0.1.3.0

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

14/06 2015

0.1.2

0.1.2.0

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

08/06 2015

0.1.1

0.1.1.0

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays

12/03 2015

0.1

0.1.0.0

Bundle permettant de gérer des lieux (villes, départements, régions, pays)

  Sources   Download

proprietary

The Requires

 

ville region departement geographie pays