Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

the5x

  • 9
    вклад
  • 35
    вопросов
  • 27
    ответов
  • 33%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как импортировать CSV 300k строк в Laravel?

    DevMan
    DevMan @DevMan Куратор тега PHP
    эмм.... а зачем нужен laravel-excel для импорта csv?
    возьмите пакет из лиги и читайте построчно. я им миллионы строк каждый день импортирую, без всяких очередей.

    https://csv.thephpleague.com/
    Ответ написан 15 апр.
    2 комментария
    Нравится 4 2 комментария
  • Как обновить (создать) несколько записей Laravel?

    Sanes
    Sanes @Sanes
    Метод Upsert
    Ответ написан 20 мар.
    Комментировать
    Нравится 2 Комментировать
  • Как проще определить какие поля изменились при обновлении модели?

    Константин Б. @Kostik_1993
    Fullstack Web Developer | PHP | Laravel | Vue.js
    Если доку не читали в гугле вводим Laravel Dirty, 3-5 минут читаем понимаем, затем делаем как нужно.
    Ответ написан 10 мар.
    Комментировать
    Нравится 2 Комментировать
  • Почему AJAX возвращает 1 Комментарий 22 раза?

    AUser0 @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вместо .data[1]. должно быть .data[i].
    Ответ написан 02 мар.
    Комментировать
    Нравится 3 Комментировать
  • Значение @ в php?

    glaphire
    Daria Motorina @glaphire Куратор тега PHP
    PHP developer
    Я думаю это для подавления ошибок, которые могли бы потенциально прервать бессрочное выполнение скрипта. Лучше так не делать
    Ответ написан 20 февр.
    10 комментариев
    Нравится 5 10 комментариев
  • Какой подход в написании тестов предпочтительнее?

    agoalofalife
    Илья Чубаров @agoalofalife
    Full stack разработчик
    Как написал коллега выше это абсолютно разные тесты.
    - Первый пример: это модульный тест или unit. Обычно им тестируют класс и несколько классов когда они в зависимостях. Для примера если в аргументах примитив(число) в тестах можно передать все случаи 0 или даже отрицательные числа. Если у вас подход (DDD) можно протестировать инварианты.
    - Функциональные(интеграционные или E2E - end to end) тесты - (в Laravel папка Feature) тестирование черного ящика. Например вы делаете запрос и ожидаете определенного ответа. В laravel это сделано не совсем корректно - так как предлагается в тестах лезть в базу
    $this->assertDatabaseHas('users', [
                'email' => 'some@something.com'
            ]);

    Функциональное тестирование не про базу, оно о том как приложении работает в целом.
    Ответ написан 20 февр.
    Комментировать
    Нравится 2 Комментировать
  • Какой подход в написании тестов предпочтительнее?

    Василий Банников @vabka
    Токсичный
    Первое - юнит тесты
    Второе - интеграционные

    По хорошему нужны оба, но интеграционные позволяют отловить больше критичных багов (кмк)
    А юниты - позволяют плотно покрыть граничные случаи
    Ответ написан 19 февр.
    Комментировать
    Нравится 2 Комментировать
  • Правильно ли я использую blade?

    glaphire
    Daria Motorina @glaphire
    PHP developer
    https://laravel.com/docs/8.x/blade#layouts-using-t...
    extends для header, footer и других блоков это нелогично - достаточно создать основной шаблон, экстендить его и через section дополнять контентом
    Ответ написан 19 февр.
    1 комментарий
    Нравится 3 1 комментарий
  • Стоит ли стажироваться на php разработчика, если у них cms Битрикс?

    Terras
    Сергей Нижний Новгород @Terras
    1) Есть возможность пойти на Symfony/Laravel, а не на Битрикс - хорошо, иди на них.
    2) Нет ничего кроме Битрикса, иди на битрикс.

    Лучше сидеть на работе, получать деньги, качать резюме и свои скиллы, чем сидеть дома и ждать годами "работу мечты", которой может и не будет.
    Ответ написан 26 янв.
    Комментировать
    Нравится 5 Комментировать
  • Можно ли как-нибудь проверить свои знания laravel, symfony или любой другой технологии?

    glaphire
    Daria Motorina @glaphire Куратор тега PHP
    PHP developer
    Проще всего найти "топ 20 вопросов по фреймворку" (на английском, там свежее), если бегло можешь ответить на них то понимание есть, сложные тесты есть только в платных сертификациях
    Ответ написан 02 нояб. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как не повторять один и тот же код в Symfony?

    glaphire
    Daria Motorina @glaphire
    PHP developer
    Достаточно создать сервис и выделить метод туда, потом уже инжектить сервис в конструктор контроллера или сразу в экшен, зависит от соотношения экшенов, где он нужен до общего количества экшенов
    Ответ написан 07 февр.
    1 комментарий
    Нравится 4 1 комментарий
  • Как обновить вложенный массив в React?

    Casufi
    Владимир @Casufi
    не нужно держать такой сложный объект в стейте, разбейте его на объекты с одним уровнем вложености
    Ответ написан 06 февр.
    Комментировать
    Нравится 1 Комментировать
  • Что делает junior laravel?

    Ranwise
    Ranwise @Ranwise
    всё что и мидл, но дольше
    Ответ написан 13 янв.
    Комментировать
    Нравится 1 Комментировать
  • Как получить класс элемента при нажатии на него?

    baroman4ik @baroman4ik
    если у коллекции блоков то:
    const block = document.querySelectorAll('.block')
    block.forEach((bl, index) => bl.addEventListener('click', () => console.log(bl.className, index)))
    Ответ написан 09 нояб. 2020
    2 комментария
    Нравится 4 2 комментария
  • Что за функция compact в Laravel?

    Aset @assets
    Back-end developer
    Это функция php
    Особой разницы нету, Но выглядит по компактнее.

    Разница в том что вы пишите.
    ['posts'=>$posts]

    Когда таких не сколько ,все это выглядит громоздко.

    Можно просто
    compact("posts")

    https://www.php.net/manual/ru/function.compact.php
    Ответ написан более года назад
    1 комментарий
    Нравится 4 1 комментарий
  • Как сделать чтобы header и футер не прокручивались?

    FinGanapre
    FinGanapre @FinGanapre
    Ответ написан 03 нояб. 2020
    Комментировать
    Нравится 2 Комментировать
  • В чем разница между dependency injection и методом, который возвращает тип класса?

    FanatPHP
    FanatPHP @FanatPHP
    Чебуратор тега PHP
    В чем разница между поехать в отпуск и футболом?
    И в том и в другом случае мы будем носить обувь.
    Вот пример: в холодильник можно поставить пиво, а по карточке можно снять деньги в банкомате.

    Ты, во-первых, не понимаешь что такое dependency injection, а во-вторых - что делает твой код.

    Если отбросить все умные и красивые слова которые ты тут наскреб по сусекам, то оба твоих примера - про type hinting. Только в первом кусочеке кода мы просим интерпретатор проверять входящий параметр, а во втором - возвращаемое значение.
    Type hinting двольно размытый термин, мне больше нравится "контроль типов", который используется в документации. Поскльку в данном случае это не "подсказка", а строгий контроль: скрипт упадёт с ошибкой если в первом примере в метод придет что-то отличное от класса реализующего интерфейс Foo, а во втором - если метод вернет что-то отличное от такого класса.

    Контроль типов надо использовать, чтобы твой код был чище и работал предсказуемее.

    При этом dependency injection вообще не имеет никакого отношения ни к твоим примерам, ни к контролю типов. Внедрение зависимости относится к классам, а не методам. И означает, что если твой класс использует в работе какие-то инструменты, то он берет их не из воздуха - из всяких жлобал, синглетонов, контейнеров, или клепает прямо на месте - а явно получает при создании в виде параметров конструктора.
    Внедрение зависимостей следует использовать, чтобы твой код было легче изменять и поддерживать.
    Ответ написан 29 окт. 2020
    6 комментариев
    Нравится 14 6 комментариев
  • Как вы освоили шаблоны проектирования?

    27cm
    Антон Захаров @27cm
    TODO: Написать статус
    Вот вам 12 маленьких задач на 12 паттернов:
    github.com/zfcampus/zendcon-design-patterns

    1. Открываете папку с паттерном.
    2. Читаете README.md с описание задачи.
    3. Открываете exercise.php и пытаетесь решить задачу, применив соответствующий паттерн.
    4. При необходимости вспоминаете теорию: github.com/domnikl/DesignPatternsPHP
    5. Сверяетесь с решением в solution.php.
    Ответ написан более трёх лет назад
    7 комментариев
    Нравится 35 7 комментариев
  • Метод, который возвращает тип интерфейса. Как это вообще работает?

    alexey-m-ukolov
    Алексей Уколов @alexey-m-ukolov Куратор тега PHP
    В примере ниже, метод makeInterviewer(): Interviewer возвращает тип интерфейса Interviewer.
    Этот метод ничего не возвращает, а только объявляет требования к наследникам - они должны реализовать этот абстрактный метод и уже вернуть конкретный объект, реализующий интерфейс Interviewer.

    Соответственно, никакой магии тут нет, просто в вашем примере не хватает классов-наследников с конкретной реализацией.

    interface Interviewer {
        public function askQuestions();
    }
    
    abstract class HiringManager {
        abstract public function makeInterviewer(): Interviewer;
    
        public function takeInterview() {
            $interviewer = $this->makeInterviewer();
            $interviewer->askQuestions();
        }
    }
    
    class TeamLead implements Interviewer {
      public function askQuestions() {
        ...
      }
    }
    
    class Boss extends HiringManager {
      public function makeInterviewer(): Interviewer {
        return new TeamLead();
      }
    }


    https://www.php.net/manual/ru/language.oop5.abstra...
    Ответ написан 27 окт. 2020
    Комментировать
    Нравится 4 Комментировать
  • Метод, который возвращает тип интерфейса. Как это вообще работает?

    Nozdri
    Иван Родичев @Nozdri
    Возвращает не "тип интерфейса", а должен возвращать объект класса реализующий интерфейс Interviewer.
    Следовательно он точно должен содержать в себе метод askQuestions.
    Вроде бы паттерн Strategy, но это не точно
    Ответ написан 27 окт. 2020
    Комментировать
    Нравится 1 Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • firedragon
    Владимир Коротенко
    • 11 ответов
    • 0 вопросов
  • MikUrrey
    • 9 ответов
    • 0 вопросов
  • approximate_solution
    approximate solution
    • 7 ответов
    • 0 вопросов
  • opium
    Пума Тайланд
    • 7 ответов
    • 0 вопросов
  • cicatrix
    • 6 ответов
    • 1 вопрос
  • Casufi
    Владимир
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации