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

    @kulaeff
    Front-end developer
    Суть:
    Хранить в БД инфу о том, какие виджеты включены у юзера, затем на странице, на которой нужно выводить эти виджеты делаем запрос в БД (аякс-запросом), получаем инфу, в цикле смотрим что это за виджет и инициализируем его.

    Пример:
    Предположим, имеется страница mysite.ru/widgets. Также имеется три виджета, код которых находится в файлах widget.simple.js, widget.chart.js и widget.table.js. Также примем по умолчанию, что ты используешь jQuery.
    На этой странице делаем запрос на сервер (например, с помощью $.get), сервер достает из БД инфу о том, какие у юзера включены виджеты и отдает нам в таком виде:

    [{
      type: 'simple',
      data: 100
    }, {
      type: 'table',
      data: []
    }, {
      type: 'chart',
      data: []
    }]


    что означает, что у юзера включены все три виджета. Теперь, когда мы получили данные, нужно пройтись по ним в цикле. Сам запрос и обработка результатов будут выглядеть примерно так:

    $.get(url).done(function(widgets) {
        widgets.forEach(function(widget) {
            switch (widget.type) {
                case 'simple':
                    new SimpleWidget(widget.data);
                    break;
                case 'chart':
                    new ChartWidget(widget.data);
                    break;
                case 'table':
                    new TableWidget(widget.data);
                    break;
            }
        });
    });


    где url - это страница, которая будет отдавать нам json. Классы SimpleWidget, ChartWidget и TableWidget - сами виджеты. Конечно, тут все упрощено, ведь помимо данных для виджета ему еще нужно передавать инфу о том, где именно нужно отобразить виджет (например, в виде селектора, '.simple-widget-container') и прочую нужную информацию. Логика виджетов (а точнее паттерн, который они реализуют) тут не принципиальна, это выходит за рамки вопроса.
    Ответ написан
    3 комментария
  • Теория php программирования на примере?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "Возьмем веб-сервис, который проверяет доступен ли сайт в данный момент или нет.
    Но как быть, если таких сайтов надо проверять несколько тысяч и проверять нужно раз в минуту?"

    Возьмем хлебокомбинат и магазин возле вашего дома, и нужно раз в минуту привозить ящик батонов.
    Но как быть, если нужно раз в минуту привозить 12 вагонов?
    НИКАК, тут даже постройка железной дороги не поможет, потому что разгрузить их не выйдет.
    Ставить нужно реалистичные задачи.
    Нужно четко понимать, что какие бы быстрые не были процессоры и линии связи, везде есть ограничения, и следует искать варианты, которые устроили - в том числе и в самом изначальном условии задачи, например выделять на проверку не минуту, а 10 минут, 30 минут, час.

    Конечно можно оптимизировать, найти реальное решение проблемы. Например вместо curl использовать ping, но это проверит только доступность хоста, а не сайта. Можно по ssh запрашивать состояние сервера, или сделать наоборот - чтобы каждый сайт сам отчитывался с определенной периодичностью, тогда проверять нужно будет только те, которые вовремя не отчитались.

    В общем гораздо проще выполнять практические задачки, если они имеют какое-то практическое применение, тогда у вас постановка задачи будет реалистичная и достижение результата будет ВАМ понятным.
    Ответ написан
    3 комментария
  • Теория php программирования на примере?

    Stalker_RED
    @Stalker_RED
    1. веб-сервис, который проверяет доступен ли сайт
    Я верю что у вас нет ресурсов яндекса, но чудес не бывает. Если серверу не хватает процессора, памяти или ширины канала, то нужно увеличивать мощность сервера или увеличивать количество серверов. Ну и смотря что вы имеете в виду под "доступен". Если пинговать или брать только заголовки с определенных страниц, то можно и тысячи в минуту. Хватило бы процессора и канала.

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

    @Fadey001
    В хроме открываешь инструменты разработчика – F12
    Пишешь запрос в поисковик и смотришь куда и что отправляется.
    Гугл например шлет запросы на
    https://www.google.ru/complete/search?sclient=psy-ab&newwindow=1&safe=off&biw=840&bih=589&q=hello&oq=&gs_l=&pbx=1&bav=on.2,or.r_cp.&bvm=bv.150120842,d.bGs&fp=340975d5227619b6&pf=p&gs_rn=64&gs_ri=psy-ab&gs_mss=%D0%BF%D0%B0h&tok=0mPi7H_lGIpBh7dz7hlFyQ&cp=5&gs_id=24&xhr=t&tch=1&ech=15&psi=uGDSWO_2CMb-6ASvx7PoDg.1490182331198.1

    Сам запрос в параметре q передается.
    Но при запросе без параметров ругается на неправильный запрос. Осталось узнать откуда берутся все параметры (чаще всего это все есть прямо на странице). Далее формируешь запрос с ключевым словом, подставляешь все параметры и ловишь ответ с подсказками.
    Алгоритм такой
    Ответ написан
    4 комментария
  • Удаленное подключение а Mysql на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Удаленное подключение к Mysql является оправданным решением в разработке системы или же нет?

    вопрос бессмысленный. ответ зависит от конкретных условий задачи.
    к влажным подростковым мечтам про 100500 запросов в секунду не имеет отношения.

    Подойдет ли Mysql для загруженных систем?

    Ну если Фейсбук для тебя недостаточно нагруженная, то даже не знаю. Наверное нет.

    подкиньте литературу, у кого есть по этому направлению?

    Вынужден тебя огорчить. Литературу придется читать 5 лет, в институте, и потом еще столько же набираясь опыта.
    Но сначала надо будет закончить школу
    Ответ написан
    Комментировать
  • Удаленное подключение а Mysql на php?

    qonand
    @qonand
    Software Engineer
    Удаленное подключение к Mysql является оправданным решением в разработке системы или же нет?

    если идет сильная нагрузка на БД - вполне оправданное решение
    Подойдет ли Mysql для загруженных систем?

    в принципе да, но как по мне лучше использовать Postgresql, ибо масштабирование в MySQL сильно геморойное
    Ответ написан
    2 комментария
  • Что делать с ошибкой mysql?

    @Nc_Soft
    Ответ написан
    Комментировать
  • Распознавание голоса php+js?

    proudmore
    @proudmore
    Вам нужно передавать запрос в гугл или яндекс speech api, и получить от них результат.
    Боюсь, других реальных вариантов нет.
    Ответ написан
    1 комментарий
  • Зачем указывать длину поля ячейки в mysql?

    Djaler
    @Djaler
    Сеньор-помидор
    А зачем вы вообще храните число в поле с типом varchar?
    Ответ написан
    7 комментариев
  • Куда стремиться PHP программисту?

    opium
    @opium
    Просто люблю качественно работать
    вы же умный , пора бы уже самому понять, что вам надо.
    Ответ написан
    Комментировать
  • Переезд с сервера на сервер?

    @feanor7
    Системный администратор
    Рекомендовал бы задействовать специалиста самого хостинг центра, за ваши деньги они вам все перенесут)

    Просто это не тривиальная задача, Веста это просто комплекс из веб сервера, акселератора и БД (если утрировать)
    А то сам перенос это:
    1. поднять второй сервер и установить на него весту
    2. перенести по ssh файлы и конфиги с первого сервера
    3. остановить сервисы на первом сервере
    4. Пернести БД на второй сервер с верификацией данных
    5. Поднять все сервисы на втором сервере.
    Ответ написан
    1 комментарий
  • Ограничить время прохода по циклу php?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Ответ написан
    Комментировать
  • Sleep на php тормозит работу всего приложения, php?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Очень тонкий момент и зависит от того кто у вас передает соединение на php. Например при apache prefork тормозит родительский процесс (т.е. если зайти из инкогнито то попадете на другой процесс, если он свободен). Но такой штукой вы можете загрузить все дочерние процессы родительского и не работать будет у всех
    Ответ написан
    Комментировать
  • Sleep на php тормозит работу всего приложения, php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Запускать такие скрипты через cron.
    Ответ написан
    3 комментария
  • Sleep на php тормозит работу всего приложения, php?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    тормозит только у вас в браузере т.к. висит "процесс загрузки" вашего сайта, другие табы не открываются в это время.
    С чем это связано не гуглил и почему, но так работает хром по крайней мере.
    зайдите с другого браузера там все откроется.
    Ответ написан
    6 комментариев
  • Sleep на php тормозит работу всего приложения, php?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    убрать sleep, включить несколько тредов в веб-браузере?
    Ответ написан
    1 комментарий
  • PDO Mysql, возник вопрос?

    gromdron
    @gromdron
    Работаю с Bitrix24
    А откуда вы берете $language и $page ?
    Если вы их задаете сами и они не зависят напрямую от пользовательского ввода - пожалуйста!

    Что значит зависят или не зависят напрямую:
    // $page зависит напрямую $_REQUEST['page']
    $page = $_REQUEST['page'];
    
    // $page не зависит напрямую от $_REQUEST['page']
    $page = 'index';
    if ( $_REQUEST['text']=='detail' ) {
    	$page = 'detail';
    }
    Ответ написан
    1 комментарий
  • PDO Mysql, возник вопрос?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Ответ написан
    Комментировать
  • Мультиязычный сайт php + mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всего-то надо использовать правильную константу ПДО
    $lang = $pdo->query("SELECT `key`, `english` FROM language")->fetchAll(PDO::FETCH_KEY_PAIR);
    echo $lang['solved'];
    Ответ написан
    Комментировать
  • Мультиязычный сайт php + mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $language = 'english';
    $stmt = $pdo->query("SELECT `key`, `{$language}` AS `translation` FROM `language`");
    $translation = [];
    while ($item = $stmt->fetch(PDO::FETCH_ASSOC)) {
      $translation[$item['key']] = $item['translation'];
    }

    Дальше просто используете $translation['solved']
    Ответ написан
    1 комментарий