Bonjour,
J'ai utilisé une structure différente pour mon projet symfony. Je me suis inspiré de l'article sur le blog
Ma structure sur Symfony. Un system de domain, infratutures http etc.

Je me suis créer un invité de commande pour géné une classe Enity et le repository dans un domaine sélectionner.

La fonction pour choiosir un domain

protected function selectDomain(SymfonyStyle $io): string
    {
        $domains = [];
        $files = (new Finder())->in("{$this->projectDir}/src/Domain")->depth(0)->directories();
        /** @var SplFileInfo $file */
        foreach ($files as $file) {
            $domains[] = $file->getBasename();
        }

        $q = new Question('Select a domain');
        $q->setAutocompleterValues($domains);

        return $io->askQuestion($q);
    }

La fonction pour lancer la commande make:entity, mais avec ma configuration avec une classe personalisé.

protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $io = new SymfonyStyle($input, $output);
        $domain = $this->selectDomain($io);
        /** @var string $entity */
        $entity = $input->getArgument('entityName');

        /** @var Application $symfonyApp */
        $symfonyApp = $this->getApplication();
        $command = $symfonyApp->find('make:entity');
        $arguments = [
            'command' => 'make:entity',
            'name' => "\\App\\Domain\\$domain\\Entity\\$entity"
        ];

        $greatInput = new ArrayInput($arguments);

        return $command->run($greatInput, $output);

Une fois que je lance la commande create:entity. Il a bien créer l'entity dans le bon répectoir.
created: src/Domain/Blog/Entity/Post.php

mais pour ce qui le ripository class la commande ça fait n'importe quoi. Il rajoute le dossier Reopository avant le namesapce de mon domain.
created: src/Repository/Domain/Blog/Entity/PostRepository.php

Je mattend qui le géenère le dossier Repository dans le même dossier que mon domaine Blog:
created: src/Domain/Blog/Reopository/PostRepository.php

J'ai regarder si il avait des option de la comande make:entity pour faire passer un chemain personalisé où qu il doit placer les différtent fichiers? Je regarde sur la documentation officiel du makerBandle.

Il parle de cette outil php-cs-fixer Je comprend pas très bien. Quelqu un qui peut me donner plus de détail s.v.p

Ps: Je vais mettre mettre Grafikart dans les crédits dans le repository sur Github.

Merci de votre aide.

Aucune réponse