Деревья в PHP + Twig 2.0

Предположим, есть задачка, вывести дерево.

Под рукой PHP, а как view — Twig.

Пусть структура данных на backend будет такой:

$tree = [

            [
                'name' => 'foo',
                'children' => [
                    [
                        'name' => 'bar',
                        'children' => [
                            [
                                'name' => 'baz',
                                'children' => [

                                ],
                            ],

                            [
                                'name' => 'baz',
                                'children' => [

                                ],
                            ],


                        ]
                    ]
                ]
            ]

        ];

Тогда простроить дерево можно так:

{% macro makeTree(node) %}
    {% import _self as self %}
    
  • {{ node.name }} {% if node.children|length %}
      {% for child in node.children %} {{ self.makeTree(child) }} {% endfor %}
    {% endif %}
  • {% endmacro %} {% from _self import makeTree %} {% if tree %}
      {% for node in tree %} {{ makeTree(node) }} {% endfor %}
    {% endif %}

    Получится вложенный список из ul и li.

    Как определить квартал из даты в PHP

    Функции для работы с датой и временем, которые поставляются с PHP прекрасны для форматирования дат, однако отсутствует простой способ определить квартал для timestamp или объекта DateTime.

    Вот тут маленькая функция, которая умеет возвращать квартал из DateTime:

    /**
     * Return the quarter for a timestamp.
     * @returns integer
     */
    function quarter(\DateTime $dateTime){
       return (int) ceil($dateTime->format('n') / 3);
    }