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 relationsUtiliser 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