• Проблема с контроллером и видом?

    @MadridianFox
    Web-программист, многостаночник
    Ваша "кнопка", которая ссылка, на самом деле указывает на страницу about/view, а не на blog/view, но в контроллере AboutController нет такого экшена.

    Вообще не помешало бы показать код ссылки и код контроллера. А ещё надо указать какой фреймворк вы используете.
    Ответ написан
  • Как пронумеровать переменные в переборе?

    @MadridianFox
    Web-программист, многостаночник
    Используйте массив
    Ответ написан
    Комментировать
  • Как вы используете docker при разработке и поставке?

    @MadridianFox
    Web-программист, многостаночник
    Можно.
    Копирование кода в контейнер используется при деплое на боевые сервера, а во время разработки обычно пробрасывается volume.
    Ответ написан
    8 комментариев
  • Как выполнить php файл из php функции?

    @MadridianFox
    Web-программист, многостаночник
    Вам по хорошему надо вынести код сохранения из компонента, так чтобы он не был завязан на http-запрос, а принимал данные как параметры. И этот код надо вызывать из компонента и из вашей функции.

    Ну а по сути вопроса - надо не подключать файл, а делать http-запрос на эту страницу. В новых версиях Битрикса есть такая штука как HttpClient. На крайняк всегда можно для этой задачи использовать curl.
    Ответ написан
    Комментировать
  • Как сделать нумерацию записей в wordpress?

    @MadridianFox
    Web-программист, многостаночник
    Для вывода порядкового номера в списке можно просто умножить номер страницы на количество постов на странице и прибавить номер итерации вашего цикла, который выводит посты на страницу.
    Ответ написан
    Комментировать
  • Кто нибудь делил приложение Node.JS на несколько частей?

    @MadridianFox
    Web-программист, многостаночник
    Годно
    Ответ написан
    Комментировать
  • Как это объединить в один запрос MySQL?

    @MadridianFox
    Web-программист, многостаночник
    Не помню, разрешён ли group by во вложенных запросах, но если да, то вот так.
    SELECT * FROM `cpl_city` WHERE `title` IN (
      select t.title from (
        SELECT COUNT(*) as `col`, `title` FROM `cpl_city` GROUP BY `title`
      ) as t where t.col > 1
    )
    Ответ написан
    Комментировать
  • Почему в абстрактном классе ServiceProvider нет ни одного абстрактного метода?

    @MadridianFox
    Web-программист, многостаночник
    Не скажу за конкретно этот класс, с laravel не работал, но вообще а этом есть смысл.
    Абстрактный класс вынуждает нас создавать его дочерние классы, но ещё и содержит какой-то обобщенный код. Сам по себе абстрактный класс как экземпляр бесполезен, т.к. не содержит конкретного кода.
    Так вот, когда мы хотим из обобщённого кода вызвать какой-то конкретный код, мы объявляем абстрактный метод.
    Но! Когда логика алгоритма подразумевает вызов обобщённого кода из конкретного, абстрактный метод не нужен. Более того, мы заранее не можем сказать какой метод(ы) будет создан. Получается абстрактный класс, с protected методами, который не содержит абстрактных методов.
    Делать такой класс не абстрактным, а его методы публичными не вариант, т.к. это провоцирует нарушение инкапсуляции.
    Ответ написан
    Комментировать
  • Организация index.php в проекте?

    @MadridianFox
    Web-программист, многостаночник
    Да, вы можете проверить существование класса. А если его нет то что? Будете использовать другой класс? Наверное нет, потому что в 99% случаев такого в нормальной ситуации не бывает. Нет класса - фатал эррор. Всё-равно продолжать бессмысленно. Ошибка сама запишется в лог, остаётся только настроить веб-сервер чтобы на 500 ошибку выдавал станицу с вашим стилем.
    Всё остальное решается использованием системы внедрения зависимостей.
    Ответ написан
  • Как записать html+php шаблон в переменную?

    @MadridianFox
    Web-программист, многостаночник
    Почитайте про функции ob_start(), ob_get_clean() и подобные. Они захватывают вывод в буфер, и этот буфер можно получить в виде строки.
    Ответ написан
    Комментировать
  • Что должен знать Frontend разработчик чтобы зарплата у него была > 100к?

    @MadridianFox
    Web-программист, многостаночник
    Что должен уметь обычно пишут в описании вакансии.
    Ответ написан
  • Вопрос по scss. Почему такая вложенность?

    @MadridianFox
    Web-программист, многостаночник
    В первом варианте получается что элемент с классом wr может быть как угодно глубоко внутри хедера.
    Во втором - только непосредственно в хедере, но не в дочерних элементах хедера.

    Возможно начинать вложенный элемент с > нельзя, но это не точно.

    А вообще тут вопрос уже к автору этого кода, потому что рабочих вариантов много, и первый тоже будет работать, но автор дополнительно задал такое ограничение, причём возможно просто перестраховался.
    Ответ написан
    1 комментарий
  • Как убрать НДС из корзины Битрикс?

    @MadridianFox
    Web-программист, многостаночник
    Насколько мне известно товар в корзину можно положить указав собственную цену. Там ещё при создании BasketItem надо установить флаг CUSTOM_PRICE.
    Кроме того, при получении цены товара возвращается массив, где кроме обычных цен ещё указаны цены с налогом.

    Остаётся только в обработчике добавления товара в корзину добавить проверку группы пользователя и в определённом случае элементу корзины назначать цену без налога.
    Ответ написан
    Комментировать
  • Есть средство которое позволяет измерить скорость скрипта php на разных участках кода?

    @MadridianFox
    Web-программист, многостаночник
    Проще всего использовать расширение xdebug. Оно помимо отладки позволяет профилировать код. Работает это так: добавляете в адресной строке специальный параметр (лучше использовать специальное расширение для браузера) и при отработке вашего php скрипта дополнительно будет создан файл, куда будет записано какая функция сколько раз распускалась и сколько времени выполнялась.
    Этот файл можно открыть специальной программой, которая позволяет сортировать функции по времени выполнения, а так же смотреть на дерево вызовов.
    Ответ написан
    Комментировать
  • Почему if в lambda работает нестандартно?

    @MadridianFox
    Web-программист, многостаночник
    Всё в порядке. Просто в питоне вместо тернарного оператора используется конструкция
    variable = value_1 if test else value_2
    Что аналогично традиционному тернарного оператору
    variable = test ? value_1 : value_2
    Работает это не только в лямбдах, а везде.
    Ответ написан
    Комментировать
  • Как реализовать комментарии на сайте на ООП с помощью MVC?

    @MadridianFox
    Web-программист, многостаночник
    Традиционно комментарии на сайтах относятся к чему-то. Например к статье, новости, файлу и т.д.
    Это значит, что комментарии обычно находятся на странице с комментируемым объектом. Т.е. комментарии это не отдельный раздел и даже не самостоятельная страница, а лишь часть страницы.

    С другой стороны MVC - это даже не шаблон проектирования, а нечто большее - это способ организации структуры программы. Обычно ВСЕЙ программы.

    Таким образом, сделать по MVC только часть сайта... да что там сайта, часть страницы! не очень то возможно, т.к. традиционно одна страница - это один контроллер (Page Controller, который часто выражен методом определённого класса, тоже называемого контроллером).

    Вы всё ещё можете создать модель комментариев. Даже можете красиво отделить представление комментариев. Но вот отдельный контроллер комментариев... это вряд-ли.

    Но на самом деле всё зависит от используемого фреймворка и от технологий, с помощью которых вы эти комментарии будете делать.
    Вдруг сайт написан на Symfony, а комментарии вы хотите подгружать по ajax? Тогда конечно и контроллер отдельный можно чисто для комментариев сделать.
    Ответ написан
    Комментировать
  • Взаимодействие контроллера и модели?

    @MadridianFox
    Web-программист, многостаночник
    1) Вы пишете что модель сама берёт данные из post. Зачем тогда вам контроллер? Это плохая модель, она зависит от способа передачи данных . Контроллер должен получать данные и передавать их модели. А методы должны называться в соответствии с тем что они делают. Могут называться и одинаково, тут вопрос не к названию, а к содержимому.
    2) то же самое. Модель должна вернуть данные, а уже контроллер дальше положит их куда надо.
    3) подумайте сколько раз за один http-запрос будет создан лишний объект. Если это количество само по себе велико или зависит от обрабатываемых данных (например по одному лишнему объекту на выводимый на странице комментарий пользователя) то это плохо. Если один раз, то зависит от способа создания объекта. Если в конструкторе выполняются ресурсоёмкие операции, то... Это само по себе плохо. Конструктор не должен содержать кода (с некоторыми допущениями)
    4) в третий раз повторяю - модель должна вернуть значение. Прервать выполнение программы она может в одном случае - возникла ошибка, такая что дальше работать бессмысленно. Для этого есть исключения. Контроллер должен поймать исключении и завершить выполнение, а лучше показать сообщение - "ой, возникла ошибка".
    Во всех других случаях модель делает return, управление передаётся контроллеру и уже он, если необходимо делает die().
    Хотя само по себе использование die() чаще всего является костылём.
    Ответ написан
  • Как работает этот js код?

    @MadridianFox
    Web-программист, многостаночник
    Переменные создаются заново, но их содержимое перекидывается туда-сюда и в итоге сохраняется и даже "увеличивается".
    Представьте себе переливание воды из ведра в ведро. Вы берёте второе ведро, выливаете в него воду из первого ведра, а потом, добавив в пустое первое ведро кружку спирта, заливаете туда воду обратно из первого ведра.
    При этом вы можете выкидывать пустое ведро после того как вылили из него воду и каждый раз покупать новое ведро чтобы налить в него воду.
    Ответ написан
  • Что сегодня подразумевается под веб-компонентами?

    @MadridianFox
    Web-программист, многостаночник
    Веб-компоненты - обобщающее название нескольких технологий, позволяющих создавать собственные элементы с инкапсулированными структурой, стилями и поведением.
    Т.е. вы создаёте один-два файла в какой-нибудь папочке, описываете в них разметку, стили и js-код и вызовом некоторых api-функций говорите браузеру - "вот мой собственный элемент с именем my-element, если встретишь тэг , то наполни его вот этим, стилизуй вот так и по событиям выполняй этот код".
    Технологии, которые это позволяют постепенно появляются в браузерах, но как обычно не полностью и не везде. Нужны полифилы.

    И да, веб-компонент мужского рода)
    Ответ написан
    1 комментарий
  • Как измерить скорость записи одной ячейки Json в базу MongoDb?

    @MadridianFox
    Web-программист, многостаночник
    Можно написать на своём любимом языке программирования простую программу, которая подключается к СУБД, берёт точное время, выполняет сотню тысяч запросов и снова берёт время. Вычитает одно время из другого и делит на количество запросов.
    Ответ написан
    8 комментариев