Professional Documents
Culture Documents
Symfony Notes
Symfony Notes
By HELALI HADIL :d
Introduction Symfony Symfony console make:controller
NomContrôleur
command symfony
Symfony new ProjectName --full
Il ya une configuration pour
2. Pointer sur le projet nouvellement chaque package
créé ( File -> ouvrir -> sélectionner le projet )
Symfony console Dev : l’environement de
developpement
NOTE : vendor doit configurer dans le Cette commande permet
projet / we have to add --full otherwise d’afficher toutes les
the Project created wouldn’t have doctrine, options de la console
template , tests , translations and other files Symfony
Concept de HTTP Root : request /Root
passed in the URL
URI vs URL •A URI is an identifier of
a specific resource. Like a
request Routes : routing
engines (root hethi
page, or book, or a
document. Tji ba3d nom
chkoun eli lehi beha
de domaine el kol
respons
?)
*: pointes to a •A URL is special type of
request
Quick overview of twing
www.example .com/hello_world
response
Kernel Front Controller A Twig template is a text file that can generate
(HTML,JSON,etc
/AppKernel.php Index.php any type of content (HTML, XML, CSV, LaTeX, …).
…)
Twig defines two kinds of delimiters:
*/hello_world •{{ ... }}: like echo
•{% ... %}: Controls the logic of the template;
Routes
/route1 /route2 /…
Controller Action it is used to execute for loops and if statements,
for example
Example de TWING Créer un Controller
Deux manières :
• Manuellement : voir cours
index.html.twig
• Automatiquement : avec la
commande
Symfony console
make:controller
NomContrôleur
En composer json
« require-dev » : les
bibliothèques nécessaires en mode AutoController
développement
4. Git add.
Recupérer les paramètres de la requete Créer une BD NomBD
Commenter celle qui ne l’est pas au niveau de .env
Rooting
Ajouter des contraintes sur les paramètres passées dans le route
On utilise les expressions régulières
Pour générer les expressions régulières :
In the URL : https://regexr.com/
http://127.0.0.1:8000/second?name=Hadil
#Method: “GET”
DATABASE_URL="mysql://root:@127.0.
0.1:3306/NomBD?serverVersion=5.7"
Comment insérer les requirements ?
Twig
Appellation du filtre
To make an entity :
symfony console make:entity
Configuration de l’application
In .env
SELECT | READ
command : Persist(object) : add , update If a query is execute no need to put it in
symfony console If the id exist : update a migration
doctrine:migration:diff Else insert
Same thing as generate Flush() : execute the request
1 quest
Delete a product
Fixtures Il faut tjr persister et flasher !!! Les relations
Order
*
*
Media Product
Queries 1 1
1
*
Category
Exécution de la commande :
php bin/console Yitzedou fil les fonctions mta3 el
doctrine:fixtures:load repository kima findall
We create a
php class of
trait type , then
we add attributs
and callbacks
And at the end
we create and
Démarche : créer une relation migrate the
migration
Then : make:migrations
Traits (~ l’interfaces )
Getters and
setters for the
attributs
callbacks
Les formulaires Adding the form in the controller
In twig.yaml
Create a form
Creating the
twig
“
After adding a list of catalogues in In Media.php Adding products created via the Form to
the data base the database
Solution ?
Adding _toString in Product.php
In Category.php
Class c2 {
Class c1 { Class c3 {
Service1 = new
Module Service1 = new
Service1(param1,param2);
Service2 = new Service2(...);
Service1(param1,param2); service3 = new Service3(...);
service3 ;
} }
}
View Requete
Controller Service3
SOLUTION :
Chef d’orchestre
Service2 ‐ une autre entité qui va s’occuper
de l’instanciation des services :
DAO
Service
Service1
_Contractor(param1, param2);
Dependancy Injection Container
DB Métier
(LoggerInterface $logger)
Partout :
Récupérer la variable :
Security bundle :
Symfony
documentation
Single sign-on server : plusieurs application qui
s’authentifient -> une seule authentification
Profiler : debugger
Lors de la création du projet symfony , on a utilisé
l’option –full qui Install tous y compris le
security bundle
Git Astuce In User entity : every user should have
an array for roles
Exercice
On va utiliser une fixture de groupe pour ne pas modifier
les autres données
LES FIXTURES :
Service de l’encodage de mot de
passe :
UserPasswordEncoderInterface :
‐ Fixture load : lance tous les fixtures
Algorithme : Argon hash genorator | meme s’il s’agit du meme mot de passe on a
deux hash codes différents
FIXTURE GROUP :
ASTUCE : TO DO
Add the interface implements
Anonyme ne
le connait
pas
Login as student
“
In security.yml In UserFixture
Il faut implémenter cette méthode
Fixture Dependancy
“
In the controller : route: /add Autorisation
In Security.yml
30