mise en place doctrine
This commit is contained in:
parent
0934124428
commit
3c646640dc
@ -2,4 +2,7 @@
|
||||
|
||||
return [
|
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||
];
|
||||
|
42
config/packages/doctrine.yaml
Normal file
42
config/packages/doctrine.yaml
Normal file
@ -0,0 +1,42 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
url: '%env(resolve:DATABASE_URL)%'
|
||||
|
||||
# IMPORTANT: You MUST configure your server version,
|
||||
# either here or in the DATABASE_URL env var (see .env file)
|
||||
#server_version: '13'
|
||||
orm:
|
||||
auto_generate_proxy_classes: true
|
||||
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
||||
auto_mapping: true
|
||||
mappings:
|
||||
App:
|
||||
is_bundle: false
|
||||
dir: '%kernel.project_dir%/src/App/Composant'
|
||||
prefix: 'App\Composant'
|
||||
alias: App
|
||||
|
||||
when@test:
|
||||
doctrine:
|
||||
dbal:
|
||||
# "TEST_TOKEN" is typically set by ParaTest
|
||||
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
|
||||
|
||||
when@prod:
|
||||
doctrine:
|
||||
orm:
|
||||
auto_generate_proxy_classes: false
|
||||
query_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.system_cache_pool
|
||||
result_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.result_cache_pool
|
||||
|
||||
framework:
|
||||
cache:
|
||||
pools:
|
||||
doctrine.result_cache_pool:
|
||||
adapter: cache.app
|
||||
doctrine.system_cache_pool:
|
||||
adapter: cache.system
|
6
config/packages/doctrine_migrations.yaml
Normal file
6
config/packages/doctrine_migrations.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
doctrine_migrations:
|
||||
migrations_paths:
|
||||
# namespace is arbitrary but should be different from App\Migrations
|
||||
# as migrations classes should NOT be autoloaded
|
||||
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
||||
enable_profiler: '%kernel.debug%'
|
@ -19,6 +19,9 @@ services:
|
||||
- '../src/DependencyInjection/'
|
||||
- '../src/Entity/'
|
||||
- '../src/Kernel.php'
|
||||
App\Controller\:
|
||||
resource: '../src/App/Controller'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
# add more service definitions when explicit configuration is needed
|
||||
# please note that last definitions always *replace* previous ones
|
||||
|
0
migrations/.gitignore
vendored
Normal file
0
migrations/.gitignore
vendored
Normal file
@ -2,10 +2,28 @@
|
||||
|
||||
namespace App\Composant\User\Domain;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="users")
|
||||
*/
|
||||
class User
|
||||
{
|
||||
|
||||
private string $lastname, $firstname;
|
||||
/**
|
||||
* @ORM\Id()
|
||||
* @ORM\GeneratedValue()
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private int $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=255)
|
||||
*/
|
||||
private string $lastname;
|
||||
|
||||
//finir le reste xD
|
||||
private string $firstname;
|
||||
private int $roleId;
|
||||
private float $kwhPrice, $hourlyCost;
|
||||
|
||||
@ -93,4 +111,20 @@ class User
|
||||
$this->firstname = $firstname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getId(): int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*/
|
||||
public function setId(int $id): void
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
}
|
@ -5,13 +5,28 @@ namespace App\Composant\User\Infrastructure;
|
||||
use App\Composant\User\Domain\User;
|
||||
use App\Composant\User\Domain\UserDataMapper;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Exception;
|
||||
|
||||
|
||||
class DoctrineUser implements UserDataMapper
|
||||
class DoctrineUser extends ServiceEntityRepository implements UserDataMapper
|
||||
{
|
||||
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, User::class);
|
||||
}
|
||||
|
||||
public function findById(int $id): User
|
||||
{
|
||||
// TODO: Implement findById() method.
|
||||
$entityManager = $this->getEntityManager();
|
||||
$User = $entityManager->getRepository(User::class)->find($id);
|
||||
if (!$User) {
|
||||
throw new Exception(
|
||||
'L\'utilisateur n\'existe pas'
|
||||
);
|
||||
}
|
||||
|
||||
return $User;
|
||||
}
|
||||
|
||||
public function findAll(): array
|
||||
|
@ -4,11 +4,12 @@ namespace App\Controller;
|
||||
|
||||
use App\Composant\User\Domain\User;
|
||||
use App\Composant\User\Infrastructure\DoctrineUser;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class test
|
||||
class test extends AbstractController
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
@ -25,12 +26,13 @@ class test
|
||||
* expressions can also include configuration parameters:
|
||||
* condition: "request.headers.get('User-Agent') matches '%app.allowed_browsers%'"
|
||||
*/
|
||||
public function index(): Response
|
||||
public function index(ManagerRegistry $registry): Response
|
||||
{
|
||||
$DoctrineUser = new DoctrineUser();
|
||||
$DoctrineUser->findById(1);
|
||||
$DoctrineUser = new DoctrineUser($registry);
|
||||
$User = $DoctrineUser->findById(1);
|
||||
dd($User);
|
||||
return new Response(
|
||||
'Content',
|
||||
"",
|
||||
Response::HTTP_OK,
|
||||
['content-type' => 'text/html']
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user