Skip to content

Instantly share code, notes, and snippets.

View rkueny's full-sized avatar

R.Kueny rkueny

View GitHub Profile
@rkueny
rkueny / Interview back-end developer
Created December 5, 2023 16:38 — forked from jpchateau/Interview back-end developer
Entretien développeur back : PHP / Symfony / MySQL
Cible : Développeur PHP / Symfony / MySQL
Niveau : Senior
Ce document propose des questions classiques, sans piège, à poser lorsque vous désirez valider un candidat pour un poste de développeur back.
J'utilise personnellement cette trame de questions, libre à vous de vous en inspirer, d'ajouter vos propres questions, et de déterminer lesquelles sont éliminatoires à vos yeux.
Veille technologique
Quelle est la version actuelle de PHP ?
> http://php.net/supported-versions.php

Evènements Doctrine

Dans cet exercice, nous allons nous servire des évènements Doctrine pour modifier automatiquement nos entités.

Mise en place du contexte

Vous pouvez travailler sur un nouveau projet, dans AppBundle

Créez une nouvelle entité Invoice (en français facture) qui possède les propriétés suivantes :

Evènements Symfony

Dans cet exercice, nous allons créer une service symfony qui va centraliser l'envoi des emails de notre application.

Mise en place du contexte

Vous pouvez travailler dans AppBundle

<?php
namespace AppBundle\Entity;
class Issue
{
/**
* @var string
*
* @ORM\Id
<?php
use Symfony\Component\HttpFoundation\Response;
// ...
public function index()
{
// somehow create a Response object, like by rendering a template
$response = $this->render('blog/index.html.twig', []);
<?php
namespace App\Twig;
use App\Twig\AppRuntime;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
class AppExtension extends AbstractExtension
{
<?php
namespace App\Twig;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class AppExtension extends AbstractExtension
{
public function getFunctions()
<?php
// ...
public function getCacheDir()
{
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
return '/app-cache';
}
"config": {
"sort-packages": true,
"bin-dir": "bin",
"vendor-dir": "/app-vendor"
},