Symfony

Installation:

Pour un nouveau projet, après avoir installer composer et scoop (par PC, pas par projet)

  • https://getcomposer.org/download/
  • https://scoop.sh/

utiliser powershell:

copier/coller les 2 lignes de commandes suivante

        
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
        Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
        
    

Installer symfony-cli par scoop avec choix de version symfony

        
            scoop install symfony-cli
        
    

(il est possible d'installer nodejs via scoop)

        
            - scoop install nodejs
            

version spécifique

- scoop install nodejs@14 - node -v

(il est possible d'installer nodejs via powershell et chocolatey)

        
            - choco install nodejs --version="18.20.3"
            - node -v

            ou encore le prebuilt de normalizer_get_raw_decomposition
            
        
    

quelques commandes npm

        
            - npm view nom-du-paquet versions
            - npm info nom-du-paquet versions
        
    

quelques commandes composer

        
        $ composer diagnose
        $ composer self-update    =>  Upgrading to version 2.7.6 (stable channel).
        $ composer self-update --rollback     => downgrade and to return to version 2.5.8
        $ composer clear-cache
        
    

installer git bash depuis powershell

        
            - winget install --id Git.Git -e --source winget
        
    

Commencer un nouveau projet avec choix de version de symfony par projet!

            
            symfony new my_project_directory --version="6.3" --webapp (6.3 étant un exemple)
            
        

Créer première Entity avec ces propriétées

  • symfony console make:entity
  • choisir nom_propriété, type, taille, nullable...(répéter pour chaque propriétée, chaque entité)
  • Créer les relation, de la même manière en modifiant l'entité de départ vers celle que l'on vas.Par le nom de l'entité: ex:Entreprise
  • symfony console make:entity Entreprise (il est possible de ne pas indiquer le nom de l'entité dans la ligne de commande, mais par la suite)
  • S'agissant d'une relation il faut nomé la Collection d'objet, dans notre ex: employes.
  • Pour le type de données, choisir ' ? ' puis entrer, pour voir tous les type et choisir ' relation '
  • Indiquer le nom de la table vers laquelle on veux joindre la relation, dans notre exemple Ex: Employe
  • Choisir dans le menu suivant le type de relation que l'on souhaite Ex: OneToMany
  • Indiquer nom du champ dans employe ex: entreprise
  • Clé étrangère si nullable ou pas, ex: no
  • Voulez-vous supprimer automatiquement les orphelins de l'entit Employe? (si l'on supprimer une entreprise, souhaite-t-on que tous les employés de l'entreprise soient supprimer également?) répondre: yes
  • Voulez vous créer une nouvelle propriété? no puis entrer

Définir dans le fichier .env la ligne sql pour la connexion à la base de données

# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"

DATABASE_URL="mysql://root@127.0.0.1:3306/sfentreprise" <- nom_projet
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8" ###< doctrine/doctrine-bundle ### * créer première entity et ces propriétés, et comme ceci pour chaque entity symfony console make:entity * créer les relations

Utiliser la ligne de commande suivante pour créer la base de données (vide)

        
            symfony console doctrine:database:create
        
    

Effectuer la migration de base de données

  • Préparer la migration
  • Effectuer la migration
        
            symfony console make:migration
            symfony console doctrine:migrations:migrate
        
    

(En cours de projet si besoin) Mettre à jour la base de données après ajout d'une propriété dans une entité

        
            symfony console doctrine:schema:update --force
        
    

Créer un Controller

            
            symfony console make:controller
            
        

Créer un form

            
            symfony console make:form
            
        
  • Dans notre exemple nous donnerons le nom de ' EmployeType '
  • Puis nous indiquerons que nous voulons travailler dans la Class Employe
  • Si le form que nous créeons n'appartient pas à une entité nous laissons le ' champ vide, comme indiqué par symfony
  • Et nous recommençons pour un second formulaire ex:entreprise
  • Dans notre exemple nous donnerons le nom de ' EntrepriseType '
  • text-fields

Cache clear

            
            symfony console cache:clear