Ответы пользователя по тегу PHP
  • Как исправить ошибку required parameter follows optional parameter?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Message: Required parameter $limit follows optional parameter $slug

    А перевести?

    Ошибка простая. Параметры в функциях могут принимать дефолтные значения, выглядит это вот так
    function getAnimations($slug = FALSE
    Но установленные значения по дефолту должны идти всегда после обязательных значений. В вашем случае необходимо сделать одну из 3-х вещей:
    Переместить параметр с дефолтным значением после обязательного параметра:
    public function getAnimations($limit, $slug = FALSE, $type = 3) {

    Убрать дефолтное значение (скорее всего вы его и так передаете)
    public function getAnimations($slug, $limit, $type = 3) {

    Установить дефолтное значение для limit
    public function getAnimations($slug = FALSE, $limit = 20, $type = 3) {
    Ответ написан
    2 комментария
  • Где можно посмотреть такие проекты?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Я бы по рекомендовал смотреть код популярных библиотек. В частности, для симфони. В этих проектах, чаще всего, соблюдаются solid принципы и код выглядит наиболее приемлемо. https://github.com/symfony
    Ответ написан
    Комментировать
  • Нормально ли сделал тестовое задание на PHP (числа Фибоначчи)?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Я свои пять копеек вставлю не с точки зрения алгоритма, а с точки зрения чистокододрочера:

    Это что вообще за дичь? Вы на джуниор битрикс фронтендера устраиваетесь? Вы вообще про ООП слышали? Или что, если для тестового, то можно и по процедурить? Зачем тут вообще html? Это было задание? Ваш код нарушает все принципы современной разработки. Я бы кандидату с таким кодом даже не перезвонил.
    Зачем тут комментарии? Вы думаете человек, который будет ревьюить код не поймет что он делает? Или вы обезьяне этот код показываете так что нужно объяснить такую строку
    // Инициализируем массив с первыми тремя числами Фибоначчи
    $fibonacciNumbers = array(0, 1, 1);

    И вы что в нулевых остались? Почему массив создается уродливым array(), а не []?

    Ну и да, алгоритм очень плохой. Можно написать короче и симпатичнее.

    Моя оценка кода для джуниор php разработчика - 3/10.
    Ответ написан
    4 комментария
  • Насколько правильно использовать Docker для работы веб сайтов в production среде?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    https://habr.com/ru/post/346430/

    Мое мнение - все зависит от всего. Понятно, если у вас нагрузка rps так на 100к, то докер будет не лучим решением, но если речь идет о простеньком магазине, то почему бы и нет? Тестируйте. Мало того, существует прямая зависимость от прямоты ваших рук при настройки самого докера. Если сайт сильно проигрывает в производительности - откажитесь от докера, нет - используйте.

    Но я вас прошу, не юзайте что-то только потому что хочется попробовать что-то новое или поэкспериментировать, за ваши эксперименты другие деньги платят.
    Ответ написан
  • Зачем интерфейсы если есть трэйты?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Зачем нужны машины, если есть трамваи?

    Трэйты и интерфейсы - это совершенно разные вещи, предназначенные для совершенно разных целей. Трэйт - это способ расширения класса. Своеобразное множественное наследование, интерфейсы - это макет класса. Жду еще вопроса "зачем нужны интерфейсы, когда есть абстрактные классы".

    Макет класса, в свою очередь, можно принимать в параметры методов и сам макет предназначен что бы изолировать часть класса и не создавать лишних зависимостей. Зависимость на Абстракциях. Нет зависимости на что-то конкретное.

    Представь, у тебя есть класс А с методами M1 и M2, с которым работают 3 других класса. Первый класс использует только метод M1, второй только метод М2, третий M1 и M2. Если ты просто передашь им в параметры класс А, то первые 2 класса будут зависеть от методов которые они не используют. Какой выход? Создай 3 интерфейса - для каждого класса и передавай их. Тогда классы использующие класс А не будут зависеть от того что не используют.
    Ответ написан
    2 комментария
  • Как понять входит дата в интервал или нет?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    $date = '17.03.2020';
    $timestamp = strtotime($date);
    
    $from = strtotime('19.03.2020');
    $to = strtotime('23.05.2020');
    
    if ($timestamp > $from && $timestamp < $to) {
        return true;
    } else {
        return false;
    }
    Ответ написан
    1 комментарий
  • Как правильно вносить изменения в чужие библиотеки/бандлы?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Для этого существует наследование. Никаких изменений не нужно форкать, реквестить и все что угодно делать. Наследуешь класс который тебе нужен, переопределяешь нужные методы или добавляешь свои и работаешь с ним. Как раз про это правило Open-Closed в solid - открыт для расширения, закрыт для изменения.
    Ответ написан
    Комментировать
  • Прерывается длительный php-скрипт запущенный через cron?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    https://www.php.net/manual/ru/info.configuration.p...
    max_execution_time int
    Эта директива задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться. Если этого не происходит, парсер завершает работу скрипта. Этот механизм помогает предотвратить зависание сервера из-за плохо написанного скрипта. По умолчанию на загрузку дается 30 секунд. Если PHP запущен из командной строки, это значение по умолчанию равно 0.


    Проблема не в ограничении на время выполнения. Поставьте логи каждого шага.

    в логах критических ошибок нет.

    И в каких логах? Не уж то вы установили кастомный лог файл? Или смотрите в лог файлах apache?
    Ответ написан
    Комментировать
  • Куда двигаться дальше?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    PHP: объекты, шаблоны и методики программирования

    И да, чем больше технологий разбирается в книге, тех хуже книга. php, mysql и javascript - это огромные технологии для погружения в которые требуются огромные книги. Из той что вы привели, вы почерпнете скудные и начальные знания. По mysql могу порекомендовать "MySQL. Оптимизация производительности", хотя это не для начинающего уровня совершенно.
    Ответ написан
    Комментировать
  • Стоит ли использовать ссылки в PHP?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Будет интересно посмотреть как на большом проекте вы будете контролировать данные в таком случае. Да и зачем вообще может понадобится это использовать при правильном проектировании (за исключением редких случаев). Метод должен выполнять действие и возвращать (или не возвращать) результаты, он не должен изменять данные вне своей компетенции. А так же иметь не понятное сразу поведение. По этому вы не сможете найти такие ссылки в хорошем коде.
    Ответ написан
    Комментировать
  • Mysql - var_dump() возращает null, как исправить?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    var_dump(mysqli_fetch_assoc(mysqli_query($db, "SELECT password FROM users WHERE login='Alekseyfbnd1'"))[0]['password']);
    Ответ написан
  • Как написать регулярку?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    $re = '/<script>.*(adsConfig).*<\/script>/ms';
    Ответ написан
  • PHP Parse error: syntax error, unexpected ограничение в хостинге, или же всё же ошибка?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Дело в версии php. И это точно. У вас стоит 5.4 на сервере, никакой 7.4 там не пахнет. Проверяйте через phpinfo()
    Ответ написан
  • Выдать картинку с ali как за свою?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    $getLink = 'https://ae01.alicdn.com/kf/'.str_replace('.jpg', '', $_GET['file']).'.jpg';
    Ответ написан
  • Как отобразить русские символы, полученные из ajax?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    json_encode($arrayDataForDb, JSON_UNESCAPED_UNICODE);
    Ответ написан
    Комментировать
  • Как исправить ошибку при запуске php скрипта?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Комментировать
  • Php что учить после базы?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Дочитывай книгу, после того как поймешь что такое ООП, SOLID и MVC, начинай изучать Laravel. Версия не принципиальна. После того как сможешь написать интернет магазин на laravel, берись за книгу "Clean code R. Martin". Из нее ты поймешь на сколько твой код г*вно, напишешь новый. После этого хватаешься за "High Performance MySQL", понимаешь, что ты не знаешь нифига базы и переделываешь свою базу интернет магазина под нормальный вид. Параллельно почитываешь о PSR, docker и кэшах. А еще проще, заглядывай в резюме laravel разработчик и смотри требования (чем слова заумнее, тем лучше) выписываешь самые непонятные и изучаешь. Собственно, дальше идешь на джуна.
    Ответ написан
    1 комментарий
  • Проблема с синтаксисом?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    10 строка - лишняя точка с заяпятой
    12 строка - после закрытой кавычки нужна точка - объекдинение строк
    Ответ написан
    Комментировать
  • Как принять данные post с эватора на php?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    1) Вы же понимаете, что декодите json строку в php массив, а потом пытаетесь его записать?
    $curldata = json_decode($data, true);
    Записывать данные курла через
    file_put_contents('logs.txt', "CR: " . date("H:m:s d.m.Y") . "\r\n" . $data. "\r\n\r\n", FILE_APPEND);


    2) Судя по всему, вы делаете GET запрос, при том что в доке описан POST. Добавить
    curl_setopt($ch, CURLOPT_POST, true);
    3) Это еще тут зачем??
    $str= serialize($_POST);

    И вообще, не понятно что делает этот код. Он принимает данные? Он их отправляет курлом? Что он отправляет курлом? Что он принимает? Конкретизируйте.
    В документации описано то что вы должны делать post запрос на их сервер , передавая данные в json. Как это делать тут https://stackoverflow.com/questions/6213509/send-j...
    Ответ написан
    3 комментария
  • Насколько backend-разработчику нужно знать вёрстку?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    1) Больше не нужен, чем нужен. Освоишь программирование, верстка за неделю подтянется. Уровень на котором ты сможешь выставить блоки в линию тебе хватит
    всякие баги в вёрстке поправить могу.

    боже, что же за баги такие в вертске...

    2)
    был опыт ... дошёл примерно до массивов

    Это не называется "был опыт". У тебя не было опыта. Был опыт - это когда пол годика на языке что-то пилишь. И да, язык хороший как первый. Работу быстрее найдешь
    Ответ написан
    1 комментарий