Création d’un projet Symfony

(si les commandes symfony et composer ne sont pas installer, aller au 2/ Installation de “composer” et “symfony”(commande) sur les machines de l’iut )

Choix d’une version : https://symfony.com/roadmap


symfony new S2tp1 --full --no-git 
cd S2tp1 
composer require  orm-fixtures --dev
composer require  admin

#  symfony check:requirements  # en cas d'erreurs


tester la commande ci-dessous :

symfony serve
#
symfony server:start --no-tls

symfony open:local  # ouvre le navigateur
# arrêt  Ctrl+c   ou dans un autre terminal
symfony server:stop


En cas de problème, utiliser la version LTS

symfony new my_project_name --version=lts


Installation de “composer” et “symfony”(commande) sur les machines de l’iut

Installation de la commande “symfony”

Dans la documentation, on peut lire qu’il faut installer 2 programmes qui permettent d’appeler les commandes “composer” et “symfony”


La version de PHP doit être supérieure à 7.x, vérifier dans un terminal la version de PHP :
php -v et paquets
php -m |grep -E "ctype|iconv|json|prce|session|simpleXML|tokeniser"
dpkg -l |grep php


Pour la commande “symfony”, taper la commande :

wget https://get.symfony.com/cli/installer -O - | bash

(sur windows, installer le programme dans l’onglet “windows”)

symfony
symfony check:requirements

installation de composer de façon globale à l’iut

Installation de composer Dans un terminal

Dans un terminal

mkdir ~/bin
cd ~/bin
curl -sS https://getcomposer.org/installer | php
mv composer.phar composer

Dans un terminal

subl ~/.bashrc

Dans sublim text, ajouter à la fin du fichier .bashrc le code ci-dessous :


PATH=$PATH:~/bin
PATH="$HOME/.symfony/bin:$PATH"
if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi
TMP=$TMPDIR
TEMP=$TMPDIR
export TMPDIR TMP TEMP


redémarrer votre session

tester la commande composer dans un terminal

composer


La version de PHP doit être supérieure à 7.2.4, vérifier dans un terminal avec la commande php -v

symfony local:php:list

PhpStorm

Lanceur sur “PhpStorm”


intégration du plugin Symfony

Option machine IUT : Commande dans le terminal : PhpStorm

ln -s /opt/PhpStorm/bin/phpstorm.sh   ~/bin/phpstorm

Ouvrir PhpStorm

première configuration

DATABASE_URL=mysql://votreLogin:votreMotDePasse@serveurmysql:3306/BDD_votreLogin
# ou de préférence
DATABASE_URL=mysql://votreLogin:votreMotDePasse@serveurmysql:3306/BDD_votreLogin_orm













ANNEXES (inutiles, uniquement pour information ou projet)

installation

ATTENTION : Sur vos machines perso., il faut depuis un terminal être capable de lancer mysql sans être dans le bon dossier :

git

/.idea/

# mettre en commentaire le dossier /public
git init
git status
git add -A .
git commit -m "Premier Commit : structure de symfony"

git add -A .
git commit -m "second Commit : .env"
git config --global user.name "votreLogin"
git config --global user.email "votreLogin@@edu.univ-fcomte.fr"
git remote add origin https://gitlab.com/votreLogin/tp1.git
git push -u origin master

Pour informations : structure et affichage de la première vue



Remarque : Si vous passez la variable APP_ENV à la valeur prod (plus d’affichage d’erreurs), on aura une erreur 404 car il n’y a pas de route associée à /.


Important :



configuration PHPStorm

source : https://knpuniversity.com/screencast/symfony

http://www.phpbenchmarks.com/fr/comparator/frameworks.html

3 plugins sur phpStorm



ref https://knpuniversity.com/screencast/symfony/micro-app-phpstorm#play

raccourci pour ajouter les “namespaces”



erreur

=> erreur webprofilerbundle
composer require profiler --dev

créer dans le dossier bin

un fichier symfony avec les droits d’éxécution

#!/bin/sh
TMPDIR=$(mktemp -d /tmp/$USER.XXXXXXXXXX) || exit
export TMPDIR
exec $HOME/.symfony/bin/symfony $@  

dans le fichier ~/.bashrc

PATH=$PATH:~/bin