• Медленная работа Skype, язык или плохая оптимизация?

    @deliro
    Дело в программистах и размере болта, который они положили на пользователей
    Ответ написан
    3 комментария
  • У всех bitbucket долго думает?

    @Arik Автор вопроса
    Проблема что их домен на нескольких IP-адресах и через некоторые сайт не доступен, проблема решилась прописав в хостах:
    104.192.143.1 bitbucket.org
    Ответ написан
    Комментировать
  • Как найти участки кода несовместимые с PHP 8.1 версии?

    pxz
    @pxz
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Есть специальная тулза для этого — Rector.

    Позволяет выбрать целевую версию PHP и покажет в отчёте места, н совместимые или написанные в стиле старых версий. Также позволяет большинство участков кода отрефакторить автоматически.

    https://github.com/rectorphp/rector
    Ответ написан
    3 комментария
  • Почему jQuery не находит элемент?

    @FKV
    Потому что вы пытаетесь найти элемент в момент когда он еще не создан.
    Ответ написан
    6 комментариев
  • Как открепить проект в PHPSTORM?

    glaphire
    @glaphire
    PHP developer
    По нажатию ПКМ на папке проекта в меню выбрать "Remove from Project View", в некоторых версиях шторма этой опции может не быть (старый баг)
    Ответ написан
    Комментировать
  • Выучил синтаксис языка. как использовать его на практике?

    Захотеть сделать что-нибудь конкретное и начать делать это.
    Ответ написан
    Комментировать
  • Как добавить Linux Ubuntu в Windows Boot Manager?

    @Drno
    Загрузчик не должен быть красивым. Он должен быть 200% надежным. Это все что от него требуется.
    Ответ написан
    3 комментария
  • Узнать купоны введенные пользователем в Bitrix?

    @tgarl
    Я список купонов перед заказом получаю так:
    $basket  = \Bitrix\Sale\Basket::loadItemsForFUser(
       \CSaleBasket::GetBasketUserID(),
        "s1" 
    );
     $order  = Bitrix\Sale\Order::create( "s1" , \Bitrix\Sale\Fuser::getId());
     $order ->setPersonTypeId( 1 );
     $order ->setBasket( $basket );
     $discounts  =  $order ->getDiscount();
     $res  =  $discounts ->getApplyResult();
     foreach($res['COUPON_LIST'] as $cupo_n=>$ar_r){
    ...
    тут проводим манипуляцую с купоном
    ...
    }

    Примерно как нужно я показал, дальше отталкивайтесь от своей задачи.
    Ответ написан
    4 комментария
  • Как запретить доступ к сайту, если посетитель заходит по прямому IP машины?

    NGINX в итоге что-то да ответит. Можно сделать отдельный конфиг, который будет ловить «все остальные» (default_server) запросы, в т.ч. по прямому IP:
    server {
        listen       80  default_server;
        server_name  _;
        return       444;
    }
    Здесь _ подчеркивание — не что-то волшебное, просто несуществующее имя домена.

    Подробнее: nginx.org/en/docs/http/server_names.html#miscellan...
    Ответ написан
    Комментировать
  • Как быстро и надежно закрывать задачи по сайту не нанимая программиста?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Я пишу со стороны программиста. У меня есть ряд старых клиентов, которые иногда просыпаются и просят что-то доделать. Стараюсь найти для них время и помочь.

    Идеальное решение для вас было бы найти стабильного разработчика, который нормально во всём разбирается и готов периодически брать подработку.

    Тут есть один момент - разработчику обычно несложно взять подработку 5-10 часов в неделю. Но не стоит ждать, что человек всё бросит и всю неделю будет фулл-тайм колбасить ваши задачи. Если вы хотите, чтобы сделали большой объём быстро, тогда придётся каждый раз нанимать по новой. А если сможете разбить объём на маленькие части, которые можно делать, не отрываясь от основной работы, то вам должно быть по силам нанять такого человека.
    Ответ написан
    1 комментарий
  • Определение ассциативности массива, php

    MisterX
    @MisterX
    Неплохой вариант сделан в Kohana,
    /**
    * Tests if an array is associative or not.
    *
    * @param array array to check
    * @return boolean
    */
    public static function is_assoc(array $array)
    {
    // Keys of the array
    $keys = array_keys($array);

    // If the array keys of the keys match the keys, then the array must
    // not be associative (e.g. the keys array looked like {0:0, 1:1...}).
    return array_keys($keys) !== $keys;
    }
    Ответ написан
    Комментировать
  • Symfony или Slim framework?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нету в симфони никакого миллиона классов из коробки. Это какое-то дикое суеверие.
    Ответ написан
    6 комментариев
  • Как правильно деплоить Symfony-приложение с помощью докер?

    @Barmunk
    Если очень надо паковать код в образ, то запакуй туда и deployer

    ....
    RUN curl -LO https://deployer.org/deployer.phar && \
             mv deployer.phar /usr/local/bin/dep && \
             chmod +x /usr/local/bin/dep
    
    ....
    RUN dep test


    так же код можно вынести в volume и каждый раз обновлять образ уже будет не нужно =)
    Ответ написан
    Комментировать
  • Как и на чем реализовать сервер для стриминга видео?

    @KoreanGuy
    лол. Написать video streaming платформу с нуля на вебсокетах. Без обид, но одно это предложение уже говорит о том, что вы не сможете этого сделать. Стриминг не делается на tcp никогда. Вообще мало кто сможет такое сделать, а уж в одного так и подавно. Есть простое правило: если стриминг видео является не основой вашего бизнеса (как, например, у твича, юдеми, и тп), а просто каким-то доп функционалом, ни в коем случае не пишите свой велосипед. Берите vimeo и не усложняйте себе жизнь в 1000 раз.
    Ответ написан
    3 комментария
  • Какую панель управления хостингом на VPS выбрать в 2021?

    Я перепробовал множество панелей, и имел разный опыт эксплуатации и впечатлений оставленных после использования.

    Cyberpanel - веб-дизайн панели очень плох, но с точки зрения принципов построения панели для сервера который хостит разные сайты - этой панели нет равных среди всех опробованных мною панелей описанных выше. И open_basedir, и разграничение каждого сайта под отдельным пользователем, и приятная структура хранения сайтов аля: /home/пользователь/public_html,log,backup
    И приятные бекапы, и возможность подкрутить всякие штуки по типу Lets Encrypt без проблем, либо ограничение доступа, либо WAF из коробки, либо файловый менеджер, и так далее.

    Но за несколько лет меня эта панель достала. Во-первых, она крайне забагована. Её неоднократно ломали, и ломали мои хобби проекты (статичные сайты). Во вторых - у них через версию баги с обновлениями, которые полностью ломают всю панель и возможность входа внутрь. Причем ломается напрочь без возможности починить, только чистая переустановка. Неоднократно сообщал об этом - никакой помощи нет. В третьих - это баги OpenLiteSpeed, либо баги конфигурации веб-сервера. Когда за 1 месяц собирается сессий на 19 гигов в папке lsphp - это вообще не ок, что аж сервер крашит и inodes все заняты. И это один из багов. Были баги с их кешированием которое включено по умолчанию, и приходилось принудительно в каждом .htaccess отключать для доменов. И баги с бекапами были. Т.е. по принципу созданию в абстрактном понимании - панель топ, классная, молодцы, очень хорошо сделано в плане архитектуры. Но вот баги дурацкие, просто выбешивают.
    Нравилось с ols что все работало относительно хорошо с любым проектом, любыми реврайтами, кешированиями, разными версиями php, и занимало существенно меньше ресурсов чем апач, либо апач и nginx. Но увы - порекомендовать именно эту панель не могу. Я не знаю что должно произойти что бы её допили до нормального состояния.

    VestaCP - долго пользовался этим огрызком. Просто дичайшее отвращение к их темплейтам и конфигам веб-серверов. Какой идиот это писал? И под какие нужды? Огромное количество раз ломали эту панель как в общем, так и лично мне. Но визуально и в плане юзабилити одна из самых беспроблемных и простых и удобных панелей на рынке. В 2021 она мертва. Последние какие-то подвижки и обновления и работа над панелью завершились в году так 2017-2018. Всё остальное делают когда есть свободное время.

    HestiaCP - кусок г. базирующийся на VestaCP, после того как последние забили на разработку.
    Автор этой панели не вытягивает количество проблем и багов в этой панеле и сообщество. Не компетентен, плохо тестирует. Но с точки зрения безопасности в плане админки - он хорошо поработал. Всё остальное - очень плохо. Может даже инсталятор не установить с первого раза панель. Не полноценно поддерживаются разные конфиги установки без апача например на nginx+php-fpm. Крайне убогие наследуемые шаблоны от весты со всеми косяками и проблемами.
    Регулярные баги и проблемы с LetsEncrypt. Жрёт очень много озу. Но визуально хорошо сделано в плане внешнего вида. Под капотом - бред и анархия, но есть куда хуже панельки.
    Этой панели так же как и cyberpanel не хватает крепкого сообщества и волонтеров по допилу панели до нужной кондиции. Увы - очень сырая. Но критических багов как в CyberPanel среди веб-компонентов не было выявлено. Регулярно нужно что-то допиливать в панели.

    FastPanel - лично для меня это какое-то недоразумение. Снова принципы и архитектура вроде хорошая, но все как-то сыро, и иннертно.

    DirectAdmin - скорее мертв, чем жив. Хоть и используется массово на хостерах, но с безопасностью у этой панели швах полный. Если речь идет о шаред хостинге, то взлом одного сайта почти с 100% вероятностью повлечет за собой взлом всех сайтов, так как никаких ограничений в рамках одного аккаунта в плане ACL (разного рода) у панели нет. Из коробки куча абсурда и дегенеративных решений аля блок mysql порта, либо блок других портов через csf. Либо лимиты на размеров файлов. Ранее года 2-3 назад панель была полным днищем. Но после изменений ценовой политики cPanel - нарастили базу, и приняли пулреквесты и предложения, что бы как-то перехватить поток пользователей которые начали мигрировать на другие панели. Я не могу сказать что DirectAdmin в моем личном опыте эксплуатации была хорошей панелью. Мне не понравился опыт взаимодействия, и озвученные выше проблемы особенно с php. В 2021 году интерфейс панели и фичи панели наконец-то удобно расположили, и улучшили для удобства пользователей. Но я бы на этой панеле не сидел. Ну не нравится мне такой подход к панелям в плане архитектуры. Я считаю его не безопасным, убогим.

    ispconfig - тяжеловесный монстр со скрытыми платежами аля: "купить нашу документацию, что бы нормально все настроить, иначе из коробки будут неприятные проблемы с производительностью сервера". Пользовался - не зашло вообще ниразу. Не плохая, особых багов не было замечено, но тяжеловесная панель.

    centminmod - это даже не панель, это скрипты, и автор eva2000 - очень хорошо поработал над ними, и конфигами nginx, myslq, php, и так далее. Это пример того, как должно быть в любой панели из коробки. Конфиги хорошо отточены, допилены, протестированы, и разраб испытывает страсть к серверам и своей панельке, но у него не хватает скилов создать веб-панельку, которой ой как не хватает этому проекту. Одна из лучших панелей в плане стабильности работы и конфигов серверов, из списка озвученного выше. Но не удобная в использовании. Но конфиги - прям конфетка. Но не для мультисайта вообще ниразу, хоть и опции есть. Эта панель для меня некий фундамент, который до меня настроили хорошо, и дали на эксплуатацию. Ручками придется поработать немного в зависимости от веб-приложения (если специфичное), но не так много как в весте. Обычно пару строк измененний в конфигах, не более. Но не работает нормально с множеством сайтов на одном сервере.

    CentOS Web Panel - я вообще не понял что это такое, и зачем оно нужно, и почему оно имеет какую-то популярность.

    Froxlor - не продолжительно использовал, неплохо. Какие-то базовые принципы работы с веб-серверов с множеством сайтов соблюдены. Но есть история о ранних взломах этой панели. Поэтому к сожалению этот факт отягощал и заставил метнуться на другую панель. Ничего особенного, но легковесная, простая панелька. Но доверия чуть больше, чем к vestaCP.

    Остальные не опубликованные панели так же использовал, но не продолжительно.
    Поэтому лень писать о них, и не помню недочеты.

    Одна из самых удобных для меня и простых панелей были: cPanel, Plesk, ISPManager но все платные, и дорогие.
    Сейчас сижу на самописных скриптах и своих nginx конфигах. Ибо достало каждую панель ручками допиливать, либо получать уведомления что сайт не работает, потому что баг в модуле очередной панели.

    И да, в моем "ответе" опыт с 2012 по 2021 год.
    И все панели выше я проверял в 2021 году так же, и у кого-то были существенные изменения, а у кого-то вообще их нет. Т.е. отзыв актуален, но субъективен. Возможно у кого-то был другой опыт, но мой таков, каков он есть.
    Ответ написан
    5 комментариев
  • Какие есть универсальные форматы (кроме pdf), в которые можно конвертировать html?

    Adamos
    @Adamos
    PDF - как раз такой универсальный формат.
    Проблема в "просидел с ним неделю и так и не добился" - не с форматом.
    Ответ написан
    Комментировать
  • Как исправить ошибку nginx 403 forbidden?

    hudson
    @hudson
    Веб-разработка, управление ИТ проектами
    Не совсем вовремя - но может кому-то пригодится. Отключите SeLinux... Та же ерунда может быть из-за него (https://access.redhat.com/documentation/en-US/Red_...)
    Ответ написан
    Комментировать
  • Как можно защитить верстку?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Вот еще вариант. запускаете сайт локально, и через тимвювер или аналоги предоставляете доступ к рабочему столу.
    Ответ написан
    7 комментариев
  • Как правильно указать тип оплачиваемой продукции Услуга?

    @Snatch87 Автор вопроса
    Битриксоид по принуждению
    Как бы не было удивительно, но верный ответ на мой вопрос, дала ТП битрикса. Ну не то, чтобы верный, но проблема таким образом решается:
    Добрый день!

    С версии 18.5.10 модуля интернет-магазин, в обработчике события OnSaleCheckPrepareData у товаров и доставки, в поле PAYMENT_OBJECT можно изменить тип предмета расчета
    https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events...

    Возможные значения поля PAYMENT_OBJECT:
    \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_COMMODITY // товар
    \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_EXCISE // акциз
    \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_JOB // работа
    \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_SERVICE // услуга
    \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_PAYMENT // платеж

    И действительно, запил обработчик, в нем для все товаров проставил Тип услуга \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_SERVICE
    /**
         * @param array $a
         * @param string $type
         * @return array
         */
        public static function courseCheckPrepareDataHandler(array $a, string $type) : array{
    
            if(!empty($a['PRODUCTS'])){
                foreach($a['PRODUCTS'] as $key => $product){
                    $a['PRODUCTS'][$key]['PAYMENT_OBJECT'] = \Bitrix\Sale\Cashbox\Check::PAYMENT_OBJECT_SERVICE;
                }
            }
    
            return $a;
        }


    И в чеке появляется долгожданная надпись Услуга.
    Надеюсь, что мой опыт будет кому-нибудь полезен.
    Ответ написан
    1 комментарий