• Laravel Scout + Elasticsearch работает из коробки?

    Ginkidayo
    @Ginkidayo
    обычный человек
    Вот этот пакет вам поможет.

    Ставите его и дальше по инструкции в доках по Scout (как добавлять индексы и делать запросы). В документации все просто:

    php artisan scout:import "App\Post"
    Это пример добавления индексов

    $orders = App\Order::search('Star Trek')->get();
    Это пример поиска.
    Ответ написан
    Комментировать
  • Как правильно оформить класс для парсинга сайтов на lumen/laravel?

    @Kirill_Dan
    Здесь все подробно описано: https://cleverman.org/post/laravel-5-5-i-parsing-c... Как раз для Ларавел с использованием симфонячего компонента Crawler
    Ответ написан
    Комментировать
  • Telegram Bot Api Как отправить сообщение в приватный канал через бота?

    @Islamfon
    Знаю как это сделать!

    1. Сделай канал публичным, установи для него username.
    2. Добавь в канал любого бота.
    3. Перейди по ссылке
    https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[USERNAME_КАНАЛА]&text=тест
    . После перехода по ссылке будет выведен id канала, сохрани его.
    4. Сделай канал приватным.
    5. Отправляй сообщения вот так:
    https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[ID_КАНАЛА]&text=тест.
    Ответ написан
    1 комментарий
  • Как использовать laravel passport для restfull api?

    Как-то переводил для себя по правам доступа в passport https://docs.google.com/document/d/1Agg8WbiAKP8vfm...
    Техническая сторона в документации описана достаточно хорошо.

    Главное определится, будет ли иметь доступ только ваше приложение или ещё сторонние.
    Ответ написан
    2 комментария
  • Сортировка массива, в под массив php?

    coderisimo
    @coderisimo
    Общая идея.

    $allFood = []; // сюда поместите массив со всей жратвой
            $coldFoodArray = ['name'=>'ХОЛОДНЫЕ ЗАКУСКИ' , 'sub'=>[]]; // 'sub'=>[] здесь будут холодные закуски
            $saladsArray = ['name'=>'САЛАТЫ' , 'sub'=>[] ];//  'sub'=>[] здесь будут модификации оливье
    
            foreach ($allFood as $k => $v) {
                if (strpos($v['name'], 'ХОЛОДНЫЕ ЗАКУСКИ')) {
                    $coldFoodArray['sub'][] = $v;
                    unset($allFood[$k]);
                }
                if (strpos($v['name'], 'САЛАТЫ')) {
                    $saladsArray['sub'][] = $v;
                    unset($allFood[$k]);
                }
            }
    
            $allFood[] = $coldFoodArray;
            $allFood[] = $saladsArray;
    Ответ написан
    Комментировать
  • Yii2 как подгрузить и волидировать в форму, поля формы другой модели?

    mhthnz
    @mhthnz
    PHP, YII2, Golang, Linux
    Использовать activeTextInput без формы. просто поля выводить во вьюхе вложенной.
    Клац
    Можно выводить сразу все поля, ненужные скрывать в display:none; потом при необходимости показывать, это если поля не динамические.
    Ответ написан
    8 комментариев
  • Как добавить data-attribute каждому элементу выпадающего списка DropDownList (Yii2)?

    В доке все есть. Примерно так.
    <?php 
        $attrs = ArrayHelper::map(ObjectType::find()->all(), 'object_type', 
            function($t){
                return ['data-attribute' => $t['type_attr']];
            });
    ?>
    <?= $form->field($model, 'type')->dropDownList(ArrayHelper::map(ObjectType::find()->all(), 'object_type', 'object_type'),
        [  
           'prompt' => 'Выберите тип объекта..',
           'options' => $attrs;
        ]
    ); ?>
    Ответ написан
    1 комментарий
  • Как сделать интервал чисел?

    DevMan
    @DevMan
    $array  = [ 1, 2, 6.1, 6.2, 6.3, 6.4, 6.5, 7, 8 ];
    $result = [ ];
    for( $i = 0, $size = count( $array ); $i < $size; $i ++ ) {
        $start = $array[ $i ];
        $end   = $start;
        while( isset( $array[ $i + 1 ] ) && ! bccomp( $array[ $i + 1 ] - $array[ $i ], 0.1, 1 ) ) {
            $end = $array[ ++ $i ];
        }
        $result[] = $start == $end ? $start : $start . '-' . $end;
    }
    print_r( $result );
    /*
    Array
    (
        [0] => 1
        [1] => 2
        [2] => 6.1-6.5
        [3] => 7
        [4] => 8
    )
    */

    ideone.com/fNVwXm
    Ответ написан
    1 комментарий
  • С чего начать обучение для фриланса?

    kumaxim
    @kumaxim
    Web-программист
    И так, с чего начать обучение:
    1.Самый низкий порог вхождения у языка PHP. Начинайте именно с него
    2.Изучите популярные CMS: WP, DLE, Joomla и т.д. Очень много заказов есть типа "Создать сайт", причем экзотики в 2 из 3 проектах не нужно. Здесь минус в том, что школоты тут полно и цену они сбивают весьма сильно...
    3.Далее категория заказов "А можно ли сделать вот так". Сводится все это к разработке/переработке модулей на все тех же CMS. Нужно учить PHP + API этих самых CMS. Возьмите один движок и копайте по нему в эту область, не рвитесь сразу за всеми. Порог вхождения тут тоже не велик, но здесь больше голодные студенты обитают
    4.Когда перерастете уровень дополнений/модулей, переходите к фреймворкам. Сейчас самый популярный Yii. Фреймворк позволяет Вам делать какие-то уникальные приложения, которые достаточно тяжело реализовать на готовых системах. Здесь ценник по существеннее, чем в первых двух, т.к. школота в силу своих умственных способностей сюда влезть не может.

    Теперь расскажу как вообще этому обучаться на своем примере. Я делаю так:
    1.Открываю тоненькую книжечку по языку(листов 100, не более), смотрю на основы
    2.Делаю примеры из этой книжке в IDE/блокноте. Это дает мне определенную базу
    3.Далее у меня есть список из примерно 20 задач(любую методичку по программированию откройте), которые я всегда делаю на новом языке. Это позволяет мне "привыкнуть" к новому коду и начать изучать стандартную библиотеку языка
    4.Затем я начинаю брать низкобюджетные заказы на фрилансе по этому языку
    5.После этого начинаю учить самый популярный фреймворк языка, опять же на низкобюджетных проектах.
    6.Сделать с 12-15 проектов я могу уже браться за что-то более менее серьезное с почасовой оплатой на фултайме.

    Вот это мой путь. По срокам - базу я себе нарабатываю за 1,5-2 месяца, на это время у Вас должна быть какая-то "подушка".

    P.S. надеюсь помог. ))
    Ответ написан
    7 комментариев
  • Как заменить один img на другой с новым src с помощью JQURY?

    Попробуйте так:
    ...
    // И вставляем туда картинку
    var $img = $('#add_photo_' + id).find('img');
    if ($img.length === 0) {
        $("#add_photo_" + id).prepend('<img style="display:block; position:absolute; z-index:0; top:0px; max-width:135px; max-height:135px;" src="/photo/advert/crop/' + filename + '" />');
    } else {
        $img.prop('src', '/photo/advert/crop/' + filename);
    }
    ...
    Ответ написан
    3 комментария
  • Как убрать из массива все значения за исключением заданных? (Для PHP-программистов)

    Melkij
    @Melkij
    PostgreSQL DBA
    Решение самой задачи:
    function checkBrackets($sData) {
            $sRegexp = '#^((?:\((?1)\)|\[(?1)\]|\{(?1)\}|[^()\[\]\{\}]++)*+)$#';
            return preg_match($sRegexp, $sData);
            }
    assert('checkBrackets("(()()([][])[])")==true');
    assert('checkBrackets("abc([dy]*[dx]Fz)")==true');
    assert('checkBrackets("")==true');
    assert('checkBrackets("()[]")==true');
    assert('checkBrackets("foo()")==true');
    assert('checkBrackets("foo(")==false');
    assert('checkBrackets("pqr[Gdz)/(Hdx]")==false');
    //test pass

    Не пробуйте такой ответ давать на собеседовании, если не сможете повторить.
    На самом деле регулярка страшно выглядит только из-за отсутствия форматирования (специально не форматировал для особого впечатления).
    Если интересны регулярки - весьма рекомендую книжку: www.ozon.ru/context/detail/id/4066500

    Убрать всё, кроме - preg_replace('~[^\[\]\(\)\{\}]~', '', $sInput)
    Но в классическом решении через стек и это не нужно - в стек заносите только скобки, остальные символы игнорируете.
    Ответ написан
    Комментировать
  • Как убрать из массива все значения за исключением заданных? (Для PHP-программистов)

    Ох уж эта "скобочная последовательность"))))

    // исходный массив
    $letters = array();
    
    // массив символов, которые необходимо удалить
    $no_delete = array('(', ')', '[', ']', '{', '}');
    
    // пройдемся по всем символам
    foreach($letters as $key => $char){
    
      // если символ не в "запретном списке" - удалить его из массива
      if(!in_array($char, $no_delete)) unset($letters[$key]);
    
    }


    А ещё можно пройтись регулярным выражением (preg_replace) и оставить только нужное, а дальше обрабатывать...
    Ответ написан
    Комментировать
  • Загрузка изображений и отображение без перезагрузки страницы?

    Стандартное решение:
    — Создаём форму отправки и скрытый iframe.

    <form enctype=multipart/form-data action=index.php method=post name=loadavatar target=hiddenframe> <input type=hidden name=MAX_FILE_SIZE value=64000> <input id=avatarfile name=avatarfile type=file> </form> <iframe id=hiddenframe name=hiddenframe style="width:0px; height:0px; border:0px"></iframe>

    Форма отправки может быть стилизована, как Вам угодно (своя кнопка отправки или выбора файла). На форме нужно обязательно расположить input [type=file] (выбор картинки) и input [name=MAX_FILE_SIZE](ограничитель размера файла). У формы target должен ссылаться на скрытый iframe (в примере hiddenframe). При отправке файла target выполнит перезагрузку (поэтому если не использовать скрытый iframe, то у нас перезагрузиться родительская страница).

    Далее всё предельно просто — либо по нажатию кнопки submit, либо по вызову document.forms["loadavatar"].submit() отправляем форму; скрытый iframe перезагружается и файл оказывается на сервере. После чего его можно запросом получить с сервера (или сразу вернуть в скрытый iframe) и отобразить.
    Ответ написан
    9 комментариев