• Как сделать авторизацию через твиттер в локальном приложении?

    rockon404
    @rockon404
    Frontend Developer
    Ответ написан
    Комментировать
  • Какой стиль программирования выбрать, чтобы не вникать спустя время в проект?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Документацию писать надо) вот и весь секрет
    Ответ написан
  • Как сделать текст в две строки?

    tendkuh
    @tendkuh
    PHP sucks, it's very important to remember, folks
    <h1>Заголовок</h1>
    <p>Описание...</p>

    H1 и P оба "блочные" элементы, они начинаются с новой строки и без флексбоксов по умолчанию.
    Просто ничего не нужно делать.
    Ответ написан
    Комментировать
  • Как сделать эту структуру сайта(фото)?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Есть несколько способов:
    1) Сетка - flex-grid, например
    2) position: absolute - Задавать отступы от краев экрана
    3) Таблица - наиболее вероятно

    Судя потому, у вас возник такой вопрос о первых 2-х способах вы и не слышали. Информация:
    1, 2
    А лучше не приступать к этому, пока не изучите html
    Ответ написан
    2 комментария
  • Насколько сильно помогает section и article в продвижении?

    @StepanSnigur
    Использование этих тегов - это семантика, почитайте документацию. То есть section - это тег секции, article - тег статьи. Если на сайте есть потребность в этих тегах, то используйте. При продвижении это не особо сильно помогает, это не волшебная палочка. Как я раньше говорил, при возможности используйте эти теги.
    Ответ написан
    Комментировать
  • Что делать если в России заблокировали хостинг?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Следим за мыслями и своими словами.
    Заблокировали хостинг.
    Вы собираетесь купить ещё раз там услуги (на заблокированом хостинге).
    И думаетк РКН снимет блокировку с хостинга потому что вы на нем купили новые услуги? Точно понимаете что говорите?
    Ответ написан
    2 комментария
  • Как обработать массив объектов на PHP?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    У вас сервер присылает JSON, его не только на PHP, но и на JS можно обработать. Пример для PHP Вам дал Антон А вот пример для js
    var result = JSON.parse(response);
    Ответ написан
    2 комментария
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Я понимаю, о чем вы пишите и почему. Ваш код работает, т.к. решает поставленные задачи и удовлетворяет потребности ваших клиентов. Имеет ли он право на жизнь? Да, но только в вашем отдельно взятом случае.

    Дело в том, что ваш код не гибок, в нем отсутствует масштабируемость, его невозможно поддерживать.

    Что если вам потребуется сделать блог, в котором нужно иметь комментарии, которые обновляются в режиме реального времени? И комментарии могут содержать HTML, но такой, чтобы ваш сайт не могли взломать?
    А еще комментарии короче 2000 символов по воскресеньям платные. Оплата через Яндекс.Деньги.
    Вы все это делаете, все работает.
    Затем заказчик вам говорит, я хочу запустить такую же систему другу, но с оплатой по понедельникам через WebMoney.
    Вы копируете сайт, переписываете функцию оплаты.
    Дальше ваш заказчик видит, что у друга больше денег, он просит добавить WebMoney к себе.
    Вы опять переписываете код. Добавляете условия.
    Потом к вам приходит друг заказчика и хочет другое оформление. Вы переписываете его функции.
    Затем он просит добавить поиск по названиям записей к себе на сайт. Вы делаете. Буквально на следующий день к вам приходит заказчик и тоже просит поиск, но не только по названиями, но и по телу статей и по комментариям. Вы делаете.
    Затем ваш заказчик видит, что дела у него идут в гору и он просит отменить платные комментарии и сделать просто платные аккаунты для всех. Вы переписываете.
    Тем временем друг просит вас сделать все тоже самое, но с его оформлением.
    Дела у заказчика идут в гору и сайт начинает тормозить. Вы делаете кэширование.
    Внезапно сайт заказчика попадает в топ и нагрузка резко увеличиваете настолько, что один сервер уже не справляется. Вы переносите все на самый мощный, но он его тоже мало.
    Нужно делать горизонтальное масштабирование.
    Для этого нужно переписать все функции, которые работают с базой данных. А их уже больше двухсот. И просто замена не подходит.
    Сайт открывается через раз, заказчик звонит вам каждые 2 часа и спрашивает, как там прогресс.
    И тут вам присылает письмо друг заказчика и говорит, что хочет перейти с MySQL на PostgreSQL.
    И вы понимаете, что вам надо будет переписать еще 300 функций, но на другом сайте. Вы его посылаете, поскольку вы и так в мыле.
    Друг жалуется на вас заказчику. Заказчик, не ставя вас в известность, нанимает другого исполнителя, у которого отваливается челюсть от того, что творится в системе. Он объясняет, что ему нужно будет потратить полгода, чтобы вникнуть в то, чтобы понять ваш код, но он может сделать все тоже самое за 4 месяца, причем для заказчика и его друга так, что это будет расширяемо и поддерживаемо не только им.
    Тем временем, спустя двое суток жизни на кофеине вы героически переписываете все функции заказчика и идете отсыпаться. После суток сна вы обнаруживаете на автоответчике сообщение, что вы уволены. А все потому, что забыли проверить функцию логина.

    А теперь разберем эту историю по частям. Почему же вас уволили?

    Незнание абстракций и шаблонов проектирования привело к тому, что вы вынуждены были поддерживать 2 разных проекта с практически одинаковой логикой.
    Например ORM смог вам помочь поддерживать 2 разные базы данных без каких-либо усилий. Сменить одну базу на другую стоило бы исправления конфигурации, а не переписывания 300 функций.
    Использование фреймворков позволило бы сократить время на реализацию подключений платежных систем. Многие из них имеют готовые реализации.
    Опять же в современных фреймворках, например в той же Doctrine реализован шардинг. В большинстве случаев ваши проблемы свелись к изменению настроек.
    Но даже если бы вы накосячили, то интеграционные тесты не позволили бы попасть говну в продакшен. А если бы оно и попало, ну накосячили вы с тестами тоже, то проблема была бы обнаружена на раннем этапе благодаря "сине-зеленому" развертыванию и она бы не затронула всех пользователей.
    И да, ваш код не прошел внешний аудит.

    Чтобы быть настоящим профессионалом, нужно не только знать, но и уметь применять на практике ООП, популярные фреймворки, шаблоны проектирования, тестирование и средства непрерывной интеграции, а еще пользоваться нормальными IDE и нести ответственность за сделанную работу.

    Когда пишете свой код, почаще задавайте себе вопрос: А если бы это был код для моего кардиостимулятора? Это поможет.
    Это вам для общего развития.
    Ответ написан
    5 комментариев
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    ТС, надеюсь никому никогда не придется работать с тобой в команде и поддерживать твой код. Одно дело не знать, спрашивать и прислушиваться, другое дело гнуть свою кривую линию.
    Ответ написан
    4 комментария
  • Как удалить из массива все элементы до определенного?

    @DanKud
    array_slice + array_search

    $date = [
        '10.04.2019',
        '11.04.2019',
        '12.04.2019',
        '13.04.2019',
        '14.04.2019',
        '15.04.2019',
        '16.04.2019',
        '17.04.2019',
        '18.04.2019'
    ];
    
    $today = date('d.m.Y');
    $date = array_slice($date, array_search($today, $date));
    print_r($date);
    
    /*
    Array
    (
        [0] => 15.04.2019
        [1] => 16.04.2019
        [2] => 17.04.2019
        [3] => 18.04.2019
    )
    */
    Ответ написан
    Комментировать
  • Как ограничить количество запросов POST по IP используя PHP или Apache?

    tregor
    @tregor
    Senior PHP Backend developer
    Если не трогать БД - можно юзать lock файлы!

    Алгоритм примерно следующий:
    При получении запроса пытаемся открыть файлик $_SERVER['REMOTE_ADDR'] . ".lock", т.е. название это IP клиента ("89.108.13.56.lock", "127.0.0.1.lock" и т.д.)
    Далее читаем Unix timestamp из этого файла, если не прошло 10 минут - die().
    Если прошло 10 минут и больше, то кидаем в файлик текущий Unix timestamp и работаем дальше!

    С БД конечно правильнее было бы, но раз такой случай, то можно использовать мой метод.
    Ответ написан
    2 комментария