• Есть ли бандл markdown editor для symfony?

    AmberLEX
    @AmberLEX Автор вопроса
    BoShurik, смотрел, тоже нужно пробовать, ну я так понял он левый, 4 года назад обновлялся.
    Я ж поэтому и спрашивал вопрос, может есть готовое уже сразу работающее. Думаю неужели никто не делает что-то с редактором поддерживающим markdown и нужно вручную все подключать и разбираться и в итоге какой-то костыль получится.
  • Есть ли бандл markdown editor для symfony?

    AmberLEX
    @AmberLEX Автор вопроса
    BoShurik, ну как раз это и смотрю, хотя почему-то FOS\CKEditorBundle ставит версию "ckeditor": "^4.12.1", Буду пробовать, может чет и выйдет
  • Есть ли бандл markdown editor для symfony?

    AmberLEX
    @AmberLEX Автор вопроса
    FanatPHP, Да это понятно и так. Я же описал проблему, бандл CKEditor не устраивает. Я в курсе, что симфони это фреймворк и блог уже на нем написан.
  • Как получить опубликованные посты по тегу с активной категорией и пользователем?

    AmberLEX
    @AmberLEX Автор вопроса
    BoShurik,
    бывают посты без категории и автора?
    Нет

    Обычными запросами это все решается гораздо проще
    Так там тоже писать sql и джоины.

    Не знаю почему удален предыдущий ответ
    Ссллка с того коммента у меня есть.
  • Как получить опубликованные посты по тегу с активной категорией и пользователем?

    AmberLEX
    @AmberLEX Автор вопроса
    BoShurik, чтоб в списке постов для каждого выводить категорию, теги категории, пользователя поста. Будет один запрос, но жрет памяти больше, ну и столько джоинов тоже как-то нехорошо. Если без джоинов, то будет n+1 запрос. Или как это правильно решить, может как-то подзапросами?
  • Репозиторий, как правильно организовать однотипные запросы?

    AmberLEX
    @AmberLEX Автор вопроса
    а зачем так переключать запросы в контроллере?

    Ну тут смысла нет, можно и по методу на каждый выделить. Просто смотрю глобальнее чтоб понять, а если там 5 параметров будет или типа того.

    Ну логику то я уже перенес в сервис
    #[Route('', name: 'index', methods: ['GET'])]
    public function index(PostService $postService, Request $request, PaginatorInterface $paginator): Response
    {
        $posts = $postService->findAllFiltered(
            $request->query->getInt('category'),
            $request->query->getInt('tag')
        );
    
        $posts = $paginator->paginate($posts, $request->query->getInt('page', 1));
    
        return $this->render('admin/blog/post/index.html.twig', compact('posts'));
    }

    class PostService
    {
        public function __construct(
            private PostRepository $postRepository,
            private CategoryRepository $categoryRepository,
            private TagRepository $tagRepository,
        ) {
        }
    
        public function findAllFiltered(?int $category, ?int $tag): mixed
        {
            if ($category) {
                $category = $this->categoryRepository->find($category);
                $posts = $category ? $category->getPosts() : $this->postRepository->findAllOrderedByNewest();
            } elseif ($tag) {
                $tag = $this->tagRepository->find($tag);
                $posts = $tag ? $tag->getPosts() : $this->postRepository->findAllOrderedByNewest();
            } else {
                $posts = $this->postRepository->findAllOrderedByNewest();
            }
    
            return $posts;
        }
    }

    Ну это так сделал потому, что связь один-ко-многим и много-ко-многим, и можно пользоваться $category->getPosts() и $tag->getPosts(). Сортировку можно в Entity указывать для этих методов (хотя она тогда будет всегда и везде такая при вызове, например $tag->getPosts())

    Тут как бы вопрос больше о PostRepository(). Репозиторий будет отдавать разные наборы данных, будет гора однотипных методов с MySQL запросами записанными синтаксисом билдера. Эти же $category->getPosts() и $tag->getPosts() можно написать mysql-ем в репозитории синтаксисом билдера с джоинами и т.п и вызывать нужный метод из репозитория. Вот и интересует как это вообще делают или подобное. Просто смущает такая гора кода на элементарные обычно стандартные действия (еще немного и прям как обычным PDO пользуешься). А если сложнее проект, то ваще завал? :)
  • Исходники каких PHP-проектов лучше поизучать для примера отличного PHP-кода?

    AmberLEX
    @AmberLEX
    Алгоритмы, архитектуры бд и т.д. закидывать не лзя, это читайте.
    я долго думал...