Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (12)

Наибольший вклад в теги

Все теги (88)

Лучшие ответы пользователя

Все ответы (367)
  • Что изучать начинающему Bitrix-разработчику?

    prototype_denis
    @prototype_denis
    Symfony
    Выкинуть Bitrix и 19 дней сидеть исключительно тут не менее 5 часов. На 20-ый день вернуться на Тостер с новым вопросом, где в тексте вашего вопроса будет что-то вроде
    ... PHP (Уже получше). Что посоветуете почитать?
    .
    Вам ответят ссылками вроде этой. В день XYZ снова скачать Bitrix, вернуться на Тостер и задать вопросы уже конкретно Bitrix'а.
    Ответ написан
  • Какой микро модульный php движок посоветуете для изучения внутренностей?

    prototype_denis
    @prototype_denis
    Symfony
    Позвольте вас отправить в google со слегка изменённым вопросом, руководствуясь следующими аргументом, что 90% задач решаются с помощью шаблонов и тратить время на велосипедостроение даже в целях самообучения, крайне не рекомендуется, потому что изучая архитектуру в общем - вы решите больше задач и построете свой "микродвижок" уже через пару дней, после понимания основ дизайна.

    Взглянуть на микродвижок
    <?php
    
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    class Extension1
    {
        public function renderContent()
        {
            return "Hello";
        }
    }
    
    class Extension2
    {
        public function renderContent()
        {
            return "Word!";
        }
    }
    
    
    class MicroApp
    {
        private $extensions;
    
        public function __construct($extensions)
        {
            foreach ($extensions as $extension) {
                $this->extensions[] = new $extension();
            }
        }
    
        public function run()
        {
            echo "<!DOCTYPE html>";
            foreach ($this->extensions as $extension) {
                echo htmlspecialchars($extension->renderContent(), ENT_COMPAT, 'UTF-8', true) . " ";
            }
            echo "</html>";
        }
    }
    
    
    $app = new MicroApp([
        'Extension1',
        'Extension2',
    ]);
    
    $app->run();

    Ответ написан
  • Откуда растут ноги у простоты в использовании Twig?

    prototype_denis
    @prototype_denis
    Symfony
    {#- /views/header.twig -#}
    <div>
        <div class="left">
            {% include "/views/header/left" %}
        </div>
        <div class="right">
            {% include "/views/header/right" %}
        </div>
    </div>
    
    {#- /views/header/left.twig -#}
    <ul>
        <li><a href="#!">Link</a></li>
        <li><a href="#!">Link 2</a></li>
    </ul>
    
    
    {#- /views/header/right.twig -#}
    <p class="text-left">Right</p>
    
    
    {#- /views/base.twig -#}
    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>{% block title %}Hello!{% endblock %}</title>
        </head>
        <body>
            <div class="row">
                <div class="col-md-2">
                    {% include "/views/header.twig" %}
                </div>
                <div class="col-md-10">
                    {% block content %}{% endblock %}
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    {% block footer %}{% endblock %}
                </div>
            </div>
        </body> 
    </html> 
    
    
    {#- /views/ajax.twig -#}
    {% block content %}{% endblock %}
    
    
    
    
    {#- /views/pages/base.twig -#}
    {% extends "/views/base.twig" %}
    {% block title %}
        Welcome.
    {% endblock %}
    {% block content %}{% endblock %}
    {% block footer %} (c) 2015 {% endblock %}
    
    
    
    
    {#- /views/pages/blog/index.twig -#}
    {% extends app.isAjax() ? "/views/pages/ajax.twig" : "/views/pages/base.twig" %}
    {% block title %}
        {{ parent() }} This best blog.
    {% endblock %}
    {% block content %}
        <h1>Header</h1>
        <p>Content text</p>
    {% endblock %}
    {% block footer %}{#- remove parent -#}{% endblock %} 
    
    
    Что тут происходит.
    При рендере /views/pages/blog/index.twig 
    шаблонизатор будет подниматься вверх.
    
    В нём переопределяем footer, дополняем title.
    title  = "??? This best blog."
    footer = ""
    content = "<h1>...."
    
    index (проверка переменной) +-> ajax.twig -> вывод
                                |
                                | or
                                |
                                +-> page/base.twig + 
                                                   |
          +----------------------------------------+
          |      Тут по пути уже к базовому шаблону переопределяем footer и title
          |      title  = "Welcome. This best blog."
          |      footer = ""
          |      content = "<h1>...."
          |
          v                 А тут уже include
          base.twig - - - > header.twig - + - - > left.twig
          |                               + - - > right.twig
          v
        вывод
    
    
    +---------------------------------------+
    | +-----------------------------------+ |
    | |                                   | |
    | | +--------------+ +--------------+ | |
    | | | left         | | right        | | | header
    | | +--------------+ +--------------+ | |
    | |                                   | |
    | +-----------------------------------+ |
    | |                                   | |
    | | +----------------------------+    | | base | ajax
    | | | Welcome. This best blog.   |    | | title
    | | +----------------------------+    | |
    | |                                   | |
    | | +----------------------------+    | |
    | | |  Header                    |    | | content
    | | |  Content text              |    | |
    | | +----------------------------+    | |
    | |                                   | |
    | +-----------------------------------+ |
    +---------------------------------------+


    Помимо простой иерархии блоков, в шаблонизаторе очень много интересного.
    Только и успевай документацию читать...

    ЗЫ. По умолчанию тут почему-то html подсветка. (бред)
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (4)