• Какую среду разработки выбрать новичку? Есть ли с объяснениями элементов кода? Или подсказками?

    @sidni
    Php Developer
    Ну раз пошла такая жара и бесплатный и язык не важен то netbeans
    Ответ написан
    Комментировать
  • Symfony контент в базе данных на нескольких языках?

    @sidni
    Php Developer
    Как вариант сделать таблицу языков, а в вашем варианте оставить name и добавить language_id, немного усложненный чем Ваш вариант но более расширяемый
    Ответ написан
  • Как установить Yii2 движок на хостинг?

    @sidni
    Php Developer
    Нужно выполнить команду в консоли
    composer install
    Для этого необходимо поставить сам composer
    Все это есть в README вашего движка.
    А теперь проблема, если у вас есть доступ на хостинг через ssh то впринципе есть вероятность что можно установить композер на сервер хостинга и все манипуляции производить там. Если же хостинг такого не позволяет, то вам придется развернуть сайт на своей домашней машине (поставить пхп, веб-сервер и тд) установить композер через него загрузить все зависимости и потом всю дирректорию проекта перенести на хостинг.
    Ответ написан
    1 комментарий
  • Выгорание Oled дисплея из-за приложения, можно ли подать в суд на атора приложения?

    @sidni
    Php Developer
    Да врядтли это получится, производитель дисплеев в спецификации и даже в обзорах пишет что это якобы органические светодиоды, которые подверженны к относительно быстрому "уставанию", по сравнению с матрицей IPS, я даже помню когда у меня был google nexus one и samsung galaxy 1, везде советовали чаще менять обои рабочего стола, ставить кастомные прошивки где можно менять расположение часов над шторкой (справа, права по середине, слева) менять иконки батареи.
    Хочу сказать что экран на нексусе выгорел в характерных местах 2 года назад когда за не надобностью его отдали в таксисту за не надобностью, а там экран не выключается полные сутки
    Ответ написан
    Комментировать
  • Как получить номер после определенного символа?

    @sidni
    Php Developer
    $re = '/\№(\d+)/u';
    $str = 'Відділення №1: вул. Пирогівський шлях, 135';
    if(preg_match($re, $str, $matches)) {
    var_dump($matches[1]);
    }

    Только нюанс у Новой Почты не всегда есть отделения к примеру
    Пункт приема-выдачи (до 30 кг): ул. Франко, 134
    Ответ написан
    2 комментария
  • Зачем парсят магазины?

    @sidni
    Php Developer
    Во благо СЕО, могут красть описание и изображение товаров, когда нет возможности написать это самому мли нанять штат для этого. Обычно страдают начинающие молодые ЧП которые пробили поставщика, сделали магазин на опенкарте а на остальное бюджета не хватило.
    Ответ написан
    Комментировать
  • Узнать есть ли запись в таблице mysql?

    @sidni
    Php Developer
    SELECT EXISTS(SELECT `id`  FROM `table` WHERE `url` = 'link2' LIMIT 1) AS exist
    Ответ написан
    Комментировать
  • Как получить текущий месяц на эстонском языке?

    @sidni
    Php Developer
    Проверьте сам сервер установлена на нем данная локаль
    Ответ написан
    4 комментария
  • Как исправить ошибку?

    @sidni
    Php Developer
    О это же опенкарт нужно смириться и жить с этим))))))
    тут надо либо проверять на array_key_exists (isset) и/или зарание инцилизировать значение.
    скорее всего модуль расчитан на другую версию или сборку опенкарта и у вас не хватает полей в бд
    Ответ написан
    Комментировать
  • Как "облегчить" таблицу в БД, но сохранить функционал?

    @sidni
    Php Developer
    Так Вы же ее сами денормировали чтоб быстрее данные получать, если уберете излишние данные то возможно Вы крепко потеряете на выборке данных.
    А так к примеру
    зачем нужен id новости, по id комментария обычно можно понять к какой новости он относится, така я же ситуация с автором комментария его тоже можно найти зная комментарий
    Ответ написан
  • Как добавить свой код на страницу в Opencart?

    @sidni
    Php Developer
    Сложно сказать отрывычный куско кода, да и с опенкартом дела давно имел, но ошибка достаточно типичная для опенкарта и она встречается у всех пользователей.
    суть в массиве $data нет ключа 'products', скорее всего вы либо не все перенесли, либо наоборот слишком перестарались, трассируйте переменную в старом варианте и новом.
    Как вариант продукты возможно ранее брались из корзины когда она была доступна на этапе (checkout/checkout) а теперь возможно возможно придется брать из таблиц заказа (checkout/success)
    Ответ написан
    8 комментариев
  • В чем профит использования Linux для программирования?

    @sidni
    Php Developer
    Большинство серверов используют линукс, и когда ты выбираешь в качестве девелоперской среды линукс ты уже приближаешь поведения приложения как на боевом сервере, на линуксе тебе немного проще оценить производительность и поведение приложения.
    Главные отличия вести разработку на Виндовс
    1) "Джентельменские наборы" обычно по-умолчанию предостоваляют максимальный набор пакетов и программ для разработки (боевой сервер иметь в разы меньше для улучшения производительности и/или экономии ресурсов), на линуксе все пакеты ставятся в ручную поэтому когда зачастую возникают вопросы почему локально приложение работает а на сервре нет, Вы почти сразу понимаете чего может не хватать и решить проблему.
    2) Файловая система, принципиальные различия между fat(ntfs) и ext приводили к серьезным проблемам (которые не были очевидны, поэтому поиск и устранение занимали определенное время), тк одни и теже функции по работе с файловой системой работают по разному (сейчас это меньше, но все равно присутствует).
    3) Нативность, все эти вещи разрабатываются под линукс поэтому есть возможность установить идентичные версии пхп, питона..., отладка кронов и многое другое
    Ответ написан
  • Ребята не могу разобратся Yii2 + React?

    @sidni
    Php Developer
    Самый простой вариант это два независимых приложения
    1) на yii2 делаете все как всегда только возвращаете json, если понадобится авторизация используйте JWT или OAuth2
    2) на React делаете тоже все как обычно, а если Вам понядобяться данные или сохранить их делаете запрос на приложение Yii2
    В случаее SSR тут немного сложнее и глюкавие использовать Next.js
    Ответ написан
    2 комментария
  • Как обойтись без trait в PHP 5.3?

    @sidni
    Php Developer
    вместо трейтов можно использовать магические методы.
    Сделать в классе метод attach который будет принимать обьект и реализовать метод __call в котором проверять есть ли данный метод в присоединенном объекте если есть то вызвать.
    Ответ написан
    Комментировать
  • Как сделать свою стартовую страницу в браузере?

    @sidni
    Php Developer
    Иногда прибегаю к чему то готовому
    https://tabliss.io/
    Ответ написан
    Комментировать
  • Почему рекомендуется для каждой таблицы делать свой файл миграции?

    @sidni
    Php Developer
    Тут нужно понять сам принцип миграций. Первоначальный сетап базы можете запилить 100 таблиц (если у вас есть готовая структура и вы хотите просто перевести на ее миграции и не таскать все время дамп) в одном файле это дело вкусовщины если файл покажется длинным можете разбить его по функциональности в этом файле миграции все что связано с кастомерами в этом с продуктами и тд если и эти файлы тяжело просматривать тогда каждая таблица один класс миграции.
    Но потом класс миграции должен появляться на каждый чих в бд в частности пять человек пилят задачи и если в рамках задачи надо что то поменять в бд делают класс миграции. Чтоб после обновления локальных копий комманд не искать актуальную версию бд а выполнить миграцию.
    Ответ написан
    Комментировать
  • Как админу не грубить пользователям?

    @sidni
    Php Developer
    В такие моменты всегда подходите с юмором, когда нет других решений повлиять на ситуацию и вам предлагают смериться с тем что есть, можно воспользоваться "Вредными советами" Григория Остерова)))
    В целом если хотите получить моральное удовлетворения от невеждества юзеров, просто грузите им мозг пока не возровется, по максимуму отнимайте их рабочее время чтобы они начинали нервничать (под видом что вы пытаетесь установить причину).
    К примеру ситуация "создай мне таблицу в Эксель на основе старой. У тебя быстрей получится, а мне вспомнить надо"

    Вы говорите хорошо давайте вспоминать вместе надо чтоб в следующий раз Вы могли сделать все сами, соберитесь с мыслями а я пойду кофейка заварю мне тоже надо настроиться.
    И ведите с юзером как с ребенком
    - давайте найдем файлик с табличкой на основе которой нам нужно сделать
    - давайте его откроем и посмотрим (можно тут еще сербануть кофейка)
    - давайте создадим новый документ. Я надеюсь Вы умеете создавать новый документы?
    - теперь перейдем пожалуйста в первый файлик найдем нужную колонку давайте ее скопируем и перенесем в новый нами созданный файлик, что не получается? да у меня бабушка знает комбинацию ctrl+C
    и тд так можно сидеть целый день (если у Вас оно конечно есть, но час другой можно потратить)
    Поверьте пару таких ликбезов взбесят любого, и тут нужно всегда улыбаться и говорить я же за Вас беспокоюсь, снижаю компьютерную безграмотность и тренирю память в наше время это очень важно.

    "ну ты DND нажала случайно, видимо"
    тут можно попросить пользователя повторить все действия которые он совершал, если он начинает говорить не помню, вы можете ответить давайте вернемся к тому моменту который помните. Вы помните как вошли сюда, вы помните как сказали здравствуйте охраннику или сколько сахара положили в чашку с чаем.

    После такого к Вам будут обращаться все реже и реже только по важным вопросам
    Ответ написан
    Комментировать
  • Логическое или тождественное?

    @sidni
    Php Developer
    Канонов нет нужно читать спецификацию функции тк в конкретном случае вернется false либо не пустая строка что всегда будет приведено к true, то тут все равно как вы напишите.
    Но надежней конечно приучить себя писать второй вариант тк бывают неоднозначные для компилятора возврат значения, см. функцию strpos
    Ответ написан
    Комментировать
  • Почему плохо писать код в шаблонах?

    @sidni
    Php Developer
    Все познается на больших проектах,
    в качестве примера возьмем методику MVC опенкарта где есть три слоя абстрации:
    1) если это запрос то для этого есть модель
    2) если это что-то из пхп кода то это контроллер
    3) если это хтмл то это шаблон
    Парни почистили от мусора код и "выкинули" в свет. Все просто красиво и самое главное бесплатно и без смс.
    Но, а теперь взглянем почему же все ненавидят опенкарт. А потому что разработчиками не предусмотрены моменты как можно расширять и кастомизировать код, и все пишут свои кастомайзы там где и предусмотренно, в контроллере и когда владельцы сайта начинают баловаться модулями то оказывается схожие по функционалу модули пытаются внедрить одновременно свой код в одно и то же место одного и тогоже контроллера и начинается чихорда когда одни функции используют данные которые будут получены двумя строками ниже или два разных модуля добавили свои параметры в стандартную функцию.
    многие умники догадались что можно весь треш перевести в шаблон где уже все данные получены, и контроллеры и шаблоны начинают разрастаться когда 3000-5000 строк в одном файле это норм и не такое видали, сайт начинает глючить, найти ошибку или добавить свой кастомайз становится просто невыносимым, я еще молчу про ocMod или vqMod (но это уже другая история)
    итог 3 версия опенкарта использует twig темплейты, где нельзя так просто "ворваться" со своим php кодом, но и основных проблем не решила.
    Ответ написан
    Комментировать
  • Можно ли в репозиторий использовать для сохранения обьектов?

    @sidni
    Php Developer
    CRUD есть CRUD, репозиторий есть репозиторий, как мухи и мед.
    может ли CRUD обращаться к репозиторию? Да
    можно ли заменить CRUD репозиторием? Нет
    Ответ написан
    Комментировать