• Где начинающему разработчику подглядеть примеры неговнокода?

    serginhold
    @serginhold
    даже если я выучу Лару, принципы SOLID и прочие красивые слова, моего уровня не хватит на позицию джуниора

    поверь, если ты хотя бы две буквы из SOLID понимаешь и используешь, то тебя точно возьмут на работу,
    вообще на джуна особо знать ничего не нужно, если опыта нет совсем,
    надо уметь гуглить информацию, уметь искать код в проекте (этот вопрос решает нормальная IDE), понимать что такое join в sql и правильно им пользоваться (а то некоторые с несколькими годами опыта почему-то везде left рукожопят),
    ну и т.к. скорее всего будут первые задачу что-то на страничке поправить, понимать html и что теги нужно закрывать :)

    mvc это вообще просто на колесо, т.к. в php как бы и нет полноценного mvc, потому что приложение помирает на окончании запроса (один хит) и дальше все заново грузится.
    есть action в который приходит запрос, берешь из запроса параметры и передаешь их в какой-то сервис, сервис выдает данные, которые ты отправляешь в шаблон, всё,
    т.к. веcь mvc в php - это action -> service -> view
    // вкратце как-то так
    class Controller
    {
        public function catalog() // action
        {
            $filter = $request->getQueryParams();
            $data = (new CatalogService())->filter($filter)->getData();
            return (new VIew())->render('views/index.php', $data); // в файле views/index.php не должно быть запросов к базе, всяких калькуляторов, объединений массивов и т.п.; просто вывод данных, foreach и if/else, всё
        }
    }


    и если по твоим описываемым навыкам велосипедировании все правда, просто размещай резюме, пройди несколько собеседований и пойми где ты проваливаешься
  • Где начинающему разработчику подглядеть примеры неговнокода?

    serginhold
    @serginhold
    Obolduy, если хочешь не просрать многие годы жизни, работая не пойми с чем и не пойми где, изучай симфони и ищи работу на этом фреймворке, пусть даже с меньшей з\п, в будущем офигеть как окупится, даже если в будущем будешь работать с чем-то другим.
    А laravel это просто современный yii, говнокода и магии там не меньше. И т.к. это фреймворки обычно используются чтобы что-то собрать по быстрому и запуститься, со временем конечное качество кода проекта не сильно лучше любой древней cms.
  • Что в среднем должен уметь младший Web-разработчик за 20 000 рублей в месяц?

    serginhold
    @serginhold
    20 тыс, если 5\2 работать, это копье какое-то, а не деньги,

    чисто для статистики, в 13 году когда учился на 5 курсе и нечего не умел, первая работа как раз была за 20тр, удаленно, 2-3 дня в неделю, не более 4х часов в день, по мелочи всякую фигню правил.
    через 3 месяца ушел в другое место на 5\2 сразу за 40тр. Это блин был 2013 год, сейчас 2020, какие 20 тысяч.. реально ничего не нужно уметь, кроме как пользоваться интернетом и гуглить проблему
  • Как сделать правильный urlrewrite?

    serginhold
    @serginhold
    Иван,
    https://regexr.com/59rla
    ^\/uslugi\/([a-zA-Z0-9\.\-_]+)\/(\?.*)?
    это в CONDITION,
    в SECTION_CODE только $1

    или
    ^\/uslugi\/([a-zA-Z0-9\.\-_]+)\/(\?(.*))?
    https://regexr.com/59rlm

    В ядре регурлярку preg_replace() обрабатывает https://dev.1c-bitrix.ru/api_help/main/general/url...

    конфликта между ними страницы секции и страницы с детальным описанием

    регуляка для детальной должна быть выше в массиве этих настроек
  • Получить название таблицы MySql?

    serginhold
    @serginhold
    FanatPHP, ну то что можно любое значение в select подсунуть он не знал )
    а то что способ хранения весьма спорный, это уже другой вопрос
  • Получить название таблицы MySql?

    serginhold
    @serginhold
    Написал же, укажи в select название таблицы

    select
      id,
      name,
      'table1' as `table`
    from table1
    
    union 
    тоже самое из второй таблицы
  • Структура каталога на 1с битрикс?

    serginhold
    @serginhold
    Кирилл Горелов, еще какой колхоз, причем тут меню вообще, кто запрещает в меню подсунуть динамические ссылки разделов
  • Как узнать есть ли число в массиве?

    serginhold
    @serginhold
    потому что

    1. надо сравнивать $num === $arr[$i]

    2. return 0; убери под for {}, иначе при первой проверке вернется что не найдено, если первый элемент !== $num

    p.s. есть in_array()
  • Как убрать php-врезки из html?

    serginhold
    @serginhold
    Игорь Воротнёв,
    <?= $var ?>
    эта конструкция не относится к опции short tags
  • Почему запрос GET приходит именно в таком виде?

    serginhold
    @serginhold
    Dim, в обычном здоровом php данные в get и request должны быть уже декодированы, код ты так и не привел, который ты в битриксе используешь
  • Перебор JSON и запись?

    serginhold
    @serginhold
    по этой причине надо программирование начинать изучить не через php, а через любой нормальный строгий язык.
    ты в файл записываешь массив $taskListIn, который ты не объявил заранее и который ты не чистишь после каждой итерации, в итоге в этот массив попадают вообще все данные, да и еще с повторением.
    в общем, просто напиши $taskListIn = [], в начале каждой итерацией.

    p.s. а так в плане кода какая-то ересь написана, может тут кто за тебя это нормально перепишет, здесь бывают такие странные люди
  • Как поправить вывод русских символов из базы данных mysql?

    serginhold
    @serginhold
    Vaniljs, у тебя json выводится, возможно у объекта реализован метод __toString(), где внутри json_encode без JSON_UNESCAPED_UNICODE.
    выведи просто echo $cat->name, все норм должно быть
  • Как эффективно и быстро посчитать древовидную структуру через mysql?

    serginhold
    @serginhold
    с Adjacency List нормально работать можно только через рекурсию которая только в mysql 8 появилась, выбери любой другой способ, по-гугли блин хоть немного и сравни какой тебе лучше выбрать
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    там даже слово view не правильно раз 50 написано )

    PetrPo,

    ты по сути похожий по реализации функционал сделаешь по-разному и в разных местах.
    Это основная причина, почему так делать не надо. Есть ещё куча мелких
    - большой объем шаблона
    - неудобство расширения, при необходимости (например в одном типе отображения нужно делать дополнительные запросы, а в другом нет)
    - если отображение будешь записывать в куки получишь проблему из-за кеша и т.д.


    вот как раз твое решение, это делать одно и то же. Хотя может до тебя однажды дойдет что в шаблонах запросы делать нельзя, а всякие result_modifer это самый настойщий говнокод из коробки.

    Т.к. данные один на все виды отображения, а потом просто разные шаблоны, то
    кеш один на список товаров, никто селекты выбора вида в кеш не добавляют, кешируют именно выборку товаров.
    И шаблон по этому один, т.к. данные одни и теже в разных шаблонах, можно конечно дергать аяксом, или перезагружать страницу, но есть одно большое НО, называется SEO. Сеошники в нормальной компннии тебя уничтожат, если в каких-то случаях на странице то одни данные, то другие, т.е. например то есть выбор свойства или цены, то нет. Для продвижения сайта это не нормально.

    По этому такая простая вещь как смена шаблона в списке товаров обычно делается перерисовкой DOM на ходу, без всяких запросов, в идеале конечно фронт должен быть на react, vue и т.п., тогда virtual dom решает все проблемы размещения блоков в разнобой, типа в одном виде сначала имя, потом цена, другом наоборот.

    В случае типичного мини сайта на битриксе, как правила нет никаких virtual dom, и самое простое решение, с минимум кода, это сделать один общий html на все виды отображения, разные только стили, и если допустим в самом маленьком виде не надо выводить какой-нибудь артикул товара, то для такого вида в css просто блоку артикула ставим display: none. И так подход решает и проблемы сео, набор данных на странице точно будет одинаковый при любом виде отображения.
    Плюс не будет не перезагрузок, не аяксов, браузер все сам сделать моментально на ходу, особенно это актуально когда вместо постраничной навигации используется бесконечная подгрузка товаров, можно все 28 погрузившихся страниц моментально перерисовать на другой вид без запросов, как это можно блин не понимать..

    Конечно можно нарукожопить как в статье, кто же мешает..
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Андрей Белый, максимально верный тут с точки зрения оптимизации, т.е. при моем варианте, других стилях, вообще ничего не происходит, кроме одной строчки на js.
    При другом варианте, аякс шаблон, ты дергаешь постоянно одни и те же данные, это и нагрузка лишняя на сервер и пользователь ждет пока там что-то подгрузится. Но возможно набор данных и верстка в плане html будет у тебя на столько различаться, что аяксы будут выгоднее, правда вряд ли, но мало ли )
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Алий Кунашев,
    И кому какая разница что там внутри и как работает, если это позволяет держать магазины-миллионники

    ага, только большая часть гордости на сайте битрикса, типа эльдорадо или связного, давно уже не на битриксе :)
    Понятно дело что проблема в деньгах, иногда дешевле все переписать, чем это чудо поддерживать, а для мини магазинов битрикс норм, да.
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Алий Кунашев, с yii тоже так себе удовольствие работать, там тоже как в битриксе, слишком низкий умственный порог входа, какашек в коде не меньше, если проект тьма джуниоров хотя бы пару лет поддерживала ((
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Алий Кунашев, по этому в крупных проектах, которые почему-то до сих пор не слиняли с битрикса, делают свои компоненты/шаблоны :)
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Алий Кунашев, еще можно нанять нормального разраба на работу, который все сделает, чтобы было просто и функционально.
    Ах да, это же битрикс, никто ничего не умеет, хотят кнопки тыкать, чтобы само работало, хотя можно даже в базовый шаблон компонента просто чуть подправить, добавить вывод класса на основе сессии или кук.
  • Как реализовать варианты отображения списка товаров в catalog.section по нажатию кнопки?

    serginhold
    @serginhold
    Кто тебе такое сказал? Ты в битриксе разбираешься?

    PetrPo, это базовые основы html и css, причем тут битрикс, не надо в него лезть если даже основы веба не знаешь, откуда вы такие только беретесь