За последние 24 часа нас посетили 17611 программистов и 1733 робота. Сейчас ищут 1003 программиста ...

Шаблонизатор

Тема в разделе "PHP для новичков", создана пользователем Вероломство, 27 авг 2022.

  1. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    Ну вот смотрите, в Twig или Blade у нас в views/home.php - вид, а в views/latouts/guest.php - шаблон, теперь чтобы это всё зарендерить, то делаем что-то вроде:

    PHP:
    1. echo $this->view->render('guest.home');
    А вот например у меня есть CRUD-контроллер, и мне нужно на все 4 действия отдельно отрендерить страницу, то есть у меня должны быть страницы сгруппированы в папке views/ПАПКА:

    views/post/create.php
    views/post/read.php
    views/post/update.php
    views/post/delete.php

    а как мне теперь рендерить их?

    Вот так?

    PHP:
    1. echo $this->view->render('guest.post.create');
    2. echo $this->view->render('guest.post.read');
    3. echo $this->view->render('guest.post.update');
    4. echo $this->view->render('guest.post.delete');
    То есть шаблонизатор поймёт, что вторая нотация - это ПАПКА?

    я просто их не юзал никогда так баловался посмотреть
     
  2. Androbim

    Androbim Активный пользователь

    С нами с:
    17 июн 2021
    Сообщения:
    49
    Симпатии:
    9
    $this->view, это ведь зависимость, свойство объекта Controller, в котором находится объект класса View, так? У класса View есть метод render, который и вызывается, в него передаётся параметром путь к шаблону. Нужно просто посмотреть документацию фреймворка, который используете, в каком виде этот параметр можно передать: через слеши, или там точки...
     
    Вероломство нравится это.
  3. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    сделал через слеш

    views/layouts/user.php - шаблон
    views/user/post/create.php - вид

    собираем

    PHP:
    1. $this->view->render('user.post/create');
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    940
    Симпатии:
    145
    так и не понял, в чём вопрос, тут как хочется, так и делается.
     
    Вероломство нравится это.
  5. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    у меня самописька, думал подскажут, как реализовано в топах :)

    то есть я сделал: имя файла шаблона - это в свою очередь И имя папки, где хранятся виды этого шаблона, ну а вид по слешу подключаю к нужной папке, соответствующей контроллеру, если там несколько экшенов

    то есть вопрос звучит как бы так: нужно ли имя вида проверять на точку и дополнительно разбивать по ней чтобы получить путь к виду
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ларка вполне понимает, дот нотация, точка - папка.
     
    Вероломство нравится это.
  7. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    ок, надо будет как-то повозиться что ли