Ответы пользователя по тегу PHP
  • Можно ли писать server-side на нескольких языках одновременно?

    @uelkfr
    Однозначно микросервисы или агентно-ориентированные системы, с единым протоколом REST или RPC и любым транспортом HTTP или TCP (рекомендую HTTP). Для фронтовой части из ваших вариантов больше подойдет Python, для API-шных частей Go. Как говорил мой знакомый "учите протоколы, технологии, принципы и архитектуры, а не языки", не стоит любить один определенный набор языков, но и изучать все языки подряд тоже конечно не стоит.

    Технологии для агентно-ориентированных систем совместимых с Вашими языками скорее всего нет, поэтому придется писать самому, да и сложнее они, поэтому лучше микросервисы. Отличие агентно-ориентированных систем, то что обмен данными идет по принципу очереди, а не простые API-вызовы, также они более живучи (high-availability), там есть процедура избрания для каждой роли (election), контроль здоровья и перезапуск на основе контроля здоровья и эскалирования ошибок. Например, DNS - это микросервис, а Consul - это уже агентно-ориентированная система.
    Ответ написан
    Комментировать
  • Как настроить виртуальный браузер (Selenium) на PHP?

    @uelkfr
    Если не выводится никаких сообщений об ошибке после запуска

    java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-2.48.2.jar

    в другом SSH-окне проверьте что он запустился

    sudo netstat -tlnp | grep 127.0.0.1:4444

    Попробуйте заменить localhost на 127.0.0.1, т.к. вроде на современных системах localhost означает ::1, есть подозрение что с ipv6 бывают проблемы.

    Также попробуйте добавить флаги для анализа ошибки:
    java -Dwebdriver.chrome.driver=chromedriver -Dwebdriver.chrome.args="--logging-level=3" -jar selenium-server-standalone-2.48.2.jar --verbose
    Ответ написан
  • Как отобразить gearman_top?

    @uelkfr
    sudo apt-get install mod-gearman-tools
    gearman_top
    Ответ написан
    Комментировать
  • В чем преимущество phantomjs перед selenium?

    @uelkfr
    PhantomJS - полностью headless-браузер, не требует X11 Server или DXGI, таким образом потребляет меньше ресурсов и работает на порядок быстрее (но медленнее ZombieJS разумеется). Недостатками при этом являются отсутствие поддержки Flash, старая версия JavaScript-движка V8, старая версия Webkit - из последних двух причин следует, что отсутствует поддержка новых технологий HTML5 - из чего следует не все сайты работают корректно. В ZombieJS дела еще хуже, он вообще со многими сайтами не работает, т.е. для парсинга не подойдет, для тестирования может подойти, но готовтесь к тому что придется отлаживать сам ZombieJS.

    Selenium может работать как с полностью headless-браузерами PhantomJS, SlimerJS, TrifleJS, ZombieJS, так и с обычными браузерами Chrome, Firefox, Opera, Internet Explorer (последние потребляют очень много ресурсов и обычно поднимают Selenium-ферму). При этом используется единый протокол общения с браузерами JsonWireProtocol (Webdriver Protocol) через extension или через их управляющие модули (xul-runner). Таким образом, пишется один код не привязанный к конкретному браузеру, а тестируется в нескольких браузерах. Но конечно у каждого браузера есть свои особенности и Selenium их не покрывает, и поэтому все равно приходится под каждый браузер дописывать слой кода совместимости. Если же тесты простые: заполнить поля, отметить галочку, добавить файл, нажать на кнопку или ссылку тут, то Selenium подойдет.

    Грубо говоря на PhantomJS 99% сайтов будет работать как в Chrome, но 1% сайтов будут работать с ошибками. Но насколько я понимаю это лишь важно если вы пытаетесь scrape-ить один из сайтов попадающих в этот 1% :)

    Если ваша компания маленькая, то рекомендую легковесные технологии ZombieJS, PhantomJS, Mocha, если ваша компания крупная, есть большой штат сисадминов, тимлидов, архитектов, то рекомендую тяжеловесные масштабируемые технологии Docker, Vagrant, Selenium, Jenkis CI.
    Ответ написан
    Комментировать