• Как сделать такою сетку?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Комментировать
  • Какие есть темы для учебных проектов по изучению JS-фреймворков?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Я вам подкину идею.
    Реализуйте Kanban доску.
    Перемещение между этапами разработки, чтение задачи/истории, пользователь и др. самые необходимые атрибуты.
    Bitly_Design_Board_Screenshot.png?t=1523

    Вот простой пример
    www.riccardotartaglia.it/jkanban
    Ответ написан
    Комментировать
  • Почему не меняется значение в таблице при mysql_query равном true?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Ну для начала стоит открыть документацию и почитать. Особенно выделенный блок в самом начале.
    php.net/manual/ru/function.mysql-query.php

    Во вторых, я не вижу $mysqli->error.
    В третьих, почему переменная под запрос называется $conn ?
    Может вы просто забыли установить соединение с БД и сразу делаете запрос?

    В четвертых, ошибки, логи, дебаг ?

    Как вы поняли, что $arr[0] = 1. (где дебаг/трейс)
    Ответ написан
    Комментировать
  • Как вы называете поля типа timestamp?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Стандарт: created_at, updated_at, published_at
    Ответ написан
    Комментировать
  • Ответ средствами php на полученный json. Как?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Можно и curl.
    Обычное push уведомление.
    Все зависит, где, как и что ждет ответа.

    Обычно вы делаете пуш, сервер вам что то отвечает.
    Все события логируются.

    Вы должны знать куда пушить. Если не знаете, значит что то не так с архитектурой APi
    Ответ написан
    2 комментария
  • Авторизация на PHP?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Я бы на вашем месте, начал с понимания интернета и изучения поиска информации в нем.
    банально: заголовок вашего вопроса и поиск на данном ресурсе.

    А уже затем изучать программирование и т.п.
    Ответ написан
    2 комментария
  • Не могу определится с выбором: PHP или Python для веб?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Работайте с Java лучше. Больше профита будет в будущем.
    Ну или JS, если гонитесь за трендами.
    А вообще, тему мусолили и не раз.
    https://www.youtube.com/results?search_query=PHP+и...
    Ответ написан
    Комментировать
  • Как хранить цены в БД MYSQL для разных компании?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Как то так на быстрый взгляд.
    Связи отлаживайте уже сами

    Для более полной картины, надо понимать специализацию данного проекта и др. подробности.

    Салоны (saloon)
    Тарифы (rate) -> (o2o) saloon_id
    Цены (cost) -> rate_id
    Услуги (service) -> cost_id
    Мастеры -> (master) -> service_id
    СПО (акции, скидки и т.п.) -> (m2m) rate_id
    рейтинг M-> (rank_master) -> master_id
    рейтинг S-> (rank_saloon) -> saloon_id
    Ответ написан
    5 комментариев
  • Как удобно просматривать массивы и json?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Если вам надо отобразить красиво, выведенный вами json.
    Можете воспользоваться плагином для chrome.
    https://chrome.google.com/webstore/detail/jsonview...
    Ответ написан
    Комментировать
  • Как сделать вывод конкретной строки из файла на html страницу с формой поиска?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    А зачем PHP?
    Не проще ли js + json ?
    Отправляете ajax запрос к файлу и получаете ответ.

    Вот первое что попалось в поиске - autocomplete js json
    https://codepen.io/massimo-cassandro/pen/NqRmMe?q=...

    Да и вообще, тут куча https://codepen.io/search/pens?q=autocomplete&limi...
    Ответ написан
    Комментировать
  • Как выбрать стиль форматирования кода в PhpStorm?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
  • Нужно ли front-end разработчику изучать back-end?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Оттачивать фронтенд и знание английского.
    У нас работают фронтендеры, они PHP вообще не знаю, но знают принципы реализации бекенда (т.к. на JS работают).
    Пишут шикарные приложение под наши API.
    Товарищи полностью концентрируются на фронтовой части и именно это дает им преимущество.
    Сильного специалиста в своей области, найти довольно сложно. Не стоит в наше время сидеть на 2х стульях.
    Ответ написан
    Комментировать
  • PHP vs GOLANG, парсер, на чем писать?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Я бы выбрал Go. У него множество плюсов для быстрой обработки, многопоточность и т.д.
    Небольшое выступление, можно посмотреть https://www.youtube.com/watch?v=MitOZ3Bx6QE (не реклама)
    В основном первые 5-7 минут
    Просто из практики в реальной работе, о скорости.
    Ответ написан
    Комментировать
  • Почему PHP не взаимодействует с MySQL?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    А почему вы используете mysql_connect ?
    Такой функции нет уже и вам об этом четким языком говорит ошибка.
    Вся информация тут php.net/manual/ru/function.mysql-connect.php

    По русски же написано.

    59ef90f3d1abb790054234.png
    Ответ написан
    7 комментариев
  • MySql в iOS приложении. Магия или сложная реализация?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Ищите по запросу rest api jwt php (ну или др. язык вместо PHP)
    Мне сейчас к примеру надо срочно реализовать простой API для приложения под iOS.
    Что бы не тратить время, взял за основу https://github.com/francescomalatesta/laravel-api-...
    Это RESTful API с JWT авторизацией.

    Вы отправляете json на определенный урл (в конкретном случае) POST /api/auth/login
    {
    	"email":"your_address@gmail.com",
    	"password":"your_password"
    }


    В ответ получаете токен.
    Что бы получить какую либо информацию, делаете запрос GET /api/your_route
    В контроллере проверяются права токена, и если все ок, отдаем нужную информацию.
    Соответственно код на бекенде может выполнять любые операции, какие только вы пожелаете.

    После установки данного пакета, вы можете проверить рабочи роуты php artisan api:routes
    Ответ написан
  • Какой код нужно переносить в отдельные классы?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Не надо называть из хендлерами.
    Если брать пример $result = ['my_data' => $var];
    То не надо конечно. Но я понимаю о чем вы. Хотя если оперировать объектами в полной мере, то можно создать что то типа responseMyData

    Контроллер принимает реквест и отдает респонс, вызывая хендлр. Больше в нем не должно быть и строчки кода.
    За исключением каких то индивидуальных реализаций. Вот пример моих контроллеров. Убрал под

    Код котроллера - спойлер
    <?php
    
    class orderController extends AbstractController {
    
        /**
         * @ApiDoc(
         *     section="travelSystem",
         *     input=OrderRequest::class,
         *     statusCodes={
         *          200="sucess",
         *          404="Order not found"
         *     },
         *     views={"night_build"}
         * )
         * @RestDoc(
         *     security={Access::ORDER}
         * )
         * 
         * @return Response
         */
        public function orderAction(OrderRequest $orderRequest): Response
        {
            // Команда - простой объект с геттерами
            $command = new orderCommand(
                $orderRequest->getHotel(),
                $orderRequest->getCheckIn()
            );
            // Хендлер - в котором как раз и происходят все 
            // нужные нам операции по обработке
            $this->get('commandBus')->handle($command);
    
            return $this->responseForRest();
        }
    }


    Как вы видите, тут имеются свои особенности, но котроллер тоненький.
    Что же происходит в текущем хендлере?
    Там проверяется существование дублирующих записей (а это вызов репы и условие), далее вызывается модель для order, которая получает команды и уходит на запись. Это приходится дублировать, т.к. код по сути индивидуальный для каждого обработчика но схож по функционалу.

    А вот после записи в БД, вызывается слушатель, который вызывает событие на запись логов.
    Данная операция нужна везде и поэтому вынесена в отдельный объект который может быть вызван в любом хендлере, путем DI конструктора
    Далее еще хуже =) В логах имеется свой хендлер и своя цепочка событий.

    Допустим мы делаем запись чего в блог, отправляем в хендлер нашу команду или что там может быть в laravel, где происходит обработка. В обработке может быть запись в БД а так же загрузка изображения.
    Вот загрузку изображения, стоит выделить в отдельный сервис.
    Ответ написан
    7 комментариев
  • Как устроены внутри облачные диски?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Если мы говорим о яндекс, то за все отвечает mongodb gridfs, реплика и т.д.
    Такую же систему использую у себя тоже. Общий доступ к файлу, сделать не проблема, это обычный API метод к данным.
    У Яндекса на эту тему есть видео и не одно. Их около десятка, покопайтесь в эвентах.
    Вот парочка.

    https://events.yandex.ru/lib/talks/313/
    https://events.yandex.ru/lib/talks/2325/
    Ответ написан
    Комментировать
  • Как правильно организовать рабочую среду для крупного проекта с GIT?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Организовать можете как угодно.
    Скажу как у нас, команда разрабов из 14 человек. Остальные это менеджеры, тестировщики и т.р.

    GIT и процесс работы:
    Bitbucket, Jira.
    Используем Kanban.
    Создается таск/баг/... с номером, который выставляется автоматически. Назначается исполнитель. Для назначений, есть проект-менеджер и т.п. В продукте JetBrains выбирается пункт - open task. Создается автоматически ветка с номером задачи (пущай будет test389).
    Далее вы кодите или чем там занимаетесь, выливаете в репу на удаленную ветку test389.
    По вашему коду проводят кодревью, если все норм то сливают в мастер.
    При мердже с мастером, автоматически запускаются тесты.
    Если все ок, выливают на дев сервер, там за дело берутся тестеры.
    Когда тестеры все проверили и одобрили, изменения (обычно их пачка), выливаются на прод.

    Хранение изображений
    Вариантов много, но мы используем mongodb. Там уже более миллиона фотографий.

    Базы
    база должна быть одинаковая на всех видах сайта (тест, дев, прод...), для этого используются миграции.
    Для фейковых данных можно использовать Faker.

    P.S.
    В гит вы храните только свой код, вендор там не нужен.
    Ответ написан
    2 комментария
  • Как правильно сидеть?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    У меня как то так

    59d232a8eb0ec481611178.jpeg

    Как сидеть, написано на мед. сайтах.
    Я сижу как удобно и зачастую это приводит к боле в спине а то и вовсе заклинит.
    Но я уже старенький)

    upd:
    DXRacer с силиконовыми подлокотниками, вещь отличная. На Новый год подготовил подарок в виде данного кресла.
    Ответ написан
    7 комментариев
  • Как записать массив в БД?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Для начала попробуйте научиться оформлять пост.
    сухой текст без подсветки читать не будут.

    вы побывали гуглить свою ошибку? Тут ведь явно указанно что не так.
    1062 Duplicate entry '2498' for key 'PRIMARY'' in

    Если уж совсем лень и не знаете другого языка как только русский, можно воспользоваться переводчиком.59ce531af194f745363063.png
    Ответ написан
    7 комментариев