• Как реализовать команду игроков?

    vitaly_74
    @vitaly_74
    Я думаю просто создайте Team -> addPlayer(Player) , а тут уже проверяйте подходит ли вам игрок.
    а есть ли место в команде .. заранее составьте sql запрос чтобы вытзить из базы только ту команду которая вам нужна.
    Ответ написан
  • Как обрезать изображение перед его загрузкой на сервер?

    vitaly_74
    @vitaly_74
    есть такая штука называется "кроуп", на стороне клиента задаются только границы x и y (x0, y0, x1, y1) и передаются на сервер с первичным изображением, а сервер уже сам обрезает его, по этим координатам. на клиенте этого делать не стоит
    Ответ написан
  • Какую книгу по PHP прочесть?

    vitaly_74
    @vitaly_74
    я никаких не читал, читал про ооп и чистый код. а пхп - php.net
    Ответ написан
    Комментировать
  • Могу ли я заниматься коммерческой разработкой (backend с php) на Windows 10?

    vitaly_74
    @vitaly_74
    поставьте себе на 10 wsl, или wsl2 и будет вам линукс на винде))
    Ответ написан
    Комментировать
  • Как загрузить большой зип-архив на сервер?

    vitaly_74
    @vitaly_74
    странно, а почему это чанками оперативка загружается, чанк - это отдельное подключение, не должна оперативка грузиться, может у вас чанки не правильно реализованы или они слишком большие? или они отправляются все махом? (реализовывал загрузку видео под 2гб, и тоже чанками, система не грузилась от слова совсем)
    Ответ написан
    2 комментария
  • Как правильно реализовать бронь товара до оплаты в интернет магазине цифровых товаров?

    vitaly_74
    @vitaly_74
    что касается относительно ботов - ответил hint000 , что касаемо брони, у вас например в бд есть таблица покупок, так создайте подобную но для брони, и покупки проводите, проверяя наличие минус суммарный бронь по товару (для мгновенных покупателей), или по броню, для тех кто забронировал, в таблице также поставьте дату окончания брони (начало не важно как мне кажется), и запускайте крон, для проверки брони. если время брони истекло, обнуляеете. не истекло, оставляете.
    Ответ написан
    3 комментария
  • Что делаю не так с настройкой обратного прокси nginx + php?

    vitaly_74
    @vitaly_74 Автор вопроса
    Решил проблему след. образом:
    version: '2'
    
    services:
      proxy:
        image: 'jwilder/nginx-proxy'
        container_name: 'proxy'
        ports:
          - '81:80'
        volumes:
          - './nginx/vhosts:/etc/nginx/vhost.d'
          - './nginx/config:/etc/nginx/conf.d'
          - '/var/run/docker.sock:/tmp/docker.sock:ro'
          - './nginx/certs:/etc/nginx/certs'
    
      nginx1:
        image: nginx
        container_name: nginx-static
        volumes:
          - '../frontend:/usr/share/nginx/html'
        environment:
          VIRTUAL_HOST: lit.my
    
    #    networks:
    #      - proxy
    
      nginx2:
        image: nginx
        container_name: nginx-php
        volumes:
    #      - '../backend:/usr/share/nginx/html'
          - './nginx/config.yii2:/etc/nginx/conf.d'
        environment:
          VIRTUAL_HOST: api.lit.my
        links:
          - php
        volumes_from:
          - php
    
      php:
        image: php:7.3-fpm
        container_name: php
        volumes:
          - '../backend:/var/www/'


    и конфиг nginx-php:
    server {
        charset utf-8;
        client_max_body_size 128M;
    
        listen 80;
        #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
    
        server_name api.lit.my;
        root        /var/www/web;
        index       index.php;
    
        location / {
            # Redirect everything that isn't a real file to index.php
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        #если хотите красивую страницу 404
        #error_page 404 /404.html;
    
        # deny accessing php files for the /assets directory
        location ~ ^/assets/.*\.php$ {
            deny all;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass php:9000;
            #fastcgi_pass unix:/var/run/php5-fpm.sock;
            try_files $uri =404;
        }
    
        location ~* /\. {
            deny all;
        }
    }
    Ответ написан
    Комментировать
  • Нормальная ли практика использовать API Platform для простых CRUD операций, а для более сложных API использовать как обертку над сваггером?

    vitaly_74
    @vitaly_74
    Используйте декораторы, создавайте новые сущности, разбивайте одну сущность на 2, извернитесь и назовите из правильно. Самый простой пример: Есть пользователь, у него есть пароль и емэйл, так вот, пароль и емэйл засуньте в сущность account и вот у вас 2 сущности отдельные, поведение у которых можно менять декораторами. при этом вы используете platformapi и все его плюшки. Отнеситесь к своим сущностям, как к антропоморфному объекту.
    Ответ написан
    Комментировать
  • Как избавиться от кучи if в методе?

    vitaly_74
    @vitaly_74
    Я думаю это декоратор или цепочка обязанностей.
    Но т.к. у вас речь ведется вокруг одного объекта (заказа) то я думаю это декоратор.
    Обработчики в Цепочке обязанностей могут выполнять произвольные действия, независимые друг от друга, а также в любой момент прерывать дальнейшую передачу по цепочке. С другой стороны Декораторы расширяют какое-то определённое действие, не ломая интерфейс базовой операции и не прерывая выполнение остальных декораторов.

    Декоратора и цепочка обязанностей очень похожи друг на друга. Подробней о декораторах .
    Ответ написан
    Комментировать
  • Где формировать дополнительный HTML в движках MVC?

    vitaly_74
    @vitaly_74
    контроллер - значит что то контролирует и все, в нем не должно быть никакой бизнес логики (т.е. того понимания как формируется html и пр.) контроллер отвечает за то чтобы, отправленный запрос от пользователя попал в нужную модель.
    Вы правильно говорите, что запрос в бд должен идти из модели.
    следовательно формирование HTML должно быть в виде (view), и если содержимое сильно различается, создайте новый view - файл, который будет отображать что то другое.
    Вот так правильней:
    Из модели я обращаюсь к БД и получаю нужно значение, потом из контроллера передаю во вью и там уже делаю обработку и формирование HTML. Так ли это делается?
    Ответ написан
    Комментировать
  • Как правильно использовать curl -X "Authorization: Bearer"?

    vitaly_74
    @vitaly_74
    Насколько я понял вы стучитесь прост в апи, без указания того что вам надо.
    Чтобы получить информацию вы должна отправить get (гет) запрос.
    "https://gitlab.com/api/v4/" - это базовый урл. вот к нему, скорей всего нужно еще добавить projects т.е.
    "https://gitlab.com/api/v4/projects"
    Ответ написан
  • Как через twilio получить смс и где его смотреть?

    vitaly_74
    @vitaly_74
    я так понимаю у вас недостаточно опыта в программировании на php.
    Далее я думаю вам нужно написать связку сервера и telegram.
    Что имеем:
    1. скорей всего twillo предоставляет api для вебхуков
    2. если в п.1 ничего не предоставляет то нужно на сервере запускать скрипт в крон.
    3. имеем сервер с php
    вот как это все связывается во едино:
    отличие первого пункта от второго, заключается в том, что в первом случае twillo стучит к вам на сервер (при каком то событии, например когда пришла смска) , а во втором, вы стучите twillo с некой переодичностью (раз в сек, раз в 2 сек и т.д.)
    1.допустим, в приведенном вами апи используется 2-й пункт. далее вы пишите интеграцию php сервера с twillo который будет по curl забирать данные с twillo.
    2. затем пишите интеграцию с телеграмм.
    3. при обращении к твилло через интеграцию в п.1. вы берете сообщение и отправляете его в телеграмм с помощью интеграции в п.2
    Благо интергации с нуля писать не надо, и я на 95% уверен что под эти сервисы есть готовые библеотеки.

    Либо можете заказать это у программистов, если у самого не получится сделать.
    Ответ написан
    Комментировать
  • Как отправить данные из формы при помощи ajax и обработать их в контроллере?

    vitaly_74
    @vitaly_74
    1. да действительно нужно копать в сторону formdata т.е. .serialize() тут не поможет.
    2. можно попробовать так:
    var formData = new FormData($('form')[0]);
    и отправлять уже formData думаю тут никаких проблем не будет.
    Ответ написан
    3 комментария
  • Баг при ajax загрузке файла. Что не так?

    vitaly_74
    @vitaly_74
    может не всегда на сервере ставится HTTP_X_REQUESTED_WITH, покопайте в этом направлении, т.к. если этот if не срабатывает то ничего не выводится и поидее ajax ничего не получает.
    либо же, сам ajax не отправляет форму. но если отправляет всегда, но иногда не получает ответ, то дело в php
    Ответ написан
  • Какую модель выбрать?

    vitaly_74
    @vitaly_74
    можете. вообще любая нейронка это прежде всего уравнение с большим кол-вом параметров.
    ваша задача очень похожа на регрессионный анализ
    вот ссылка, помогающая объяснить что такое нейронная сеть (машинное обучение) https://qna.habr.com/q/565845
    Ответ написан
    Комментировать
  • Как вынести общие столбцы миграции в Yii2?

    vitaly_74
    @vitaly_74
    создайте класс MigrationWithDates - переопределите метод createTable
    который будет вставлять в каждую таблицу created_at и т.д.
    class MigrationWithDates  extends Migrations{
        public function createTable($tableNane, array $data){
            $addDates = [
               'created_by' => $this->integer()->null(),
                'updated_by' => $this->integer()->null(),
                'status' => $this->smallInteger()->notNull()->defaultValue(10),
                'updated_at' => $this->integer()->notNull(),
                'created_at' => $this->integer()->notNull(),
                ];
                $mergedData = array_merge ($data, $addDates );
                parent::createtable($tableName, $mergedData);
              }
    }
    Ответ написан
    Комментировать
  • Можно ли и как убрать web с адресной строки yii2?

    vitaly_74
    @vitaly_74
    в корне проекта есть .htaccess в нем у меня написано:
    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine On
    </IfModule>
    
    <IfModule mod_rewrite.c>
        RewriteCond %{REQUEST_URI} ^/(assets|css|js|images|storage)
        RewriteRule ^assets/(.*)$ backend/web/assets/$1 [L]
        RewriteRule ^css/(.*)$ backend/web/css/$1 [L]
        RewriteRule ^js/(.*)$ backend/web/js/$1 [L]
        RewriteRule ^images/(.*)$ backend/web/images/$1 [L]
        RewriteRule ^storage/(.*)$ backend/web/storage/$1 [L]
        RewriteRule ^(.*)$ backend/web/$1 [L]
    
        RewriteCond %{REQUEST_URI} !^/
        RewriteCond %{REQUEST_URI} !index.php
        RewriteCond %{REQUEST_FILENAME} !-f [OR]
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ backend/web/index.php
    </IfModule>

    в папке web тоже есть .htaccessв нем я пишу
    # use mod_rewrite for pretty URL support
    Options -Indexes
    RewriteEngine on
    # If a directory or a file exists, use the request directly
    #RewriteCond %{REQUEST_URI} ^/(storage)
    #RewriteRule ^/storage/(.*)/documents/(.*)$ /storage/db/documents/$2 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php


    ссылка на статью
    https://xn--d1acnqm.xn--j1amh/%D0%B7%D0%B0%D0%BF%D...
    Ответ написан
  • Как сделать запрос hasMany с приведением типов?

    vitaly_74
    @vitaly_74
    а что вы подразумеваете под приведением типов, и что вы хотите увидеть в конце этого действия?
    на текущий момент. на сколько я понимаю, не находит связь в таблице address
    Ответ написан
  • Json внутри комментарии html php?

    vitaly_74
    @vitaly_74
    самое простое
    $string = "...html comment...";
    $string  = substr($string, 0, -3);
    $string = substr($string, 4);
    return json_decode($string);

    либо можно через регулярные выражения вытащить начало и конец комментария
    Ответ написан
    Комментировать
  • Как исправить данную ошибку в телеграм-боте на PHP?

    vitaly_74
    @vitaly_74
    если зависание, значит где то идет зацикливание смотрите for или while в коде. а так идите на freelance.habr.ru
    Ответ написан
    Комментировать