Для получения полного доступа
зарегистрируйтесь.

Раздел:
Подраздел:
Языки:


Gravatar image
Insolita
  • Репутация: 7
  • Сниппеты: 3
  • Ревизии: 1
 
    public function findSuggest(string $query, int $cat = null): array
    {
        $query = $this->prepareQuery($query);
        $tQuery = (new Query())->from('{{%tovar}}')
                               ->select([
                                   '{{%tovar}}.id',
                                   '{{%tovar}}.name',
                                   '{{%tovar}}.slug',
                                   '{{%category}}.name as category',
                                   new Expression("ts_rank({{%tovar}}.fts,plainto_tsquery('ru', :q)) as rank"),
                                        ])
                               ->leftJoin('{{%category}}','{{%tovar}}.category_id={{%category}}.id')
                               ->where(new Expression("{{%tovar}}.fts  @@ plainto_tsquery('ru', :q)", [':q' => $query]))
                               ->limit(10)
                               ->orderBy(['rank' => SORT_DESC]);
        if($cat > 0){
            $tQuery->andWhere(['{{%tovar}}.category_id'=>$cat]);
        }
        return $tQuery->all();
    }
corpsee
  • Репутация: 13
  • Сниппеты: 5
  • Ревизии: 0

dashboard.png

Простой сервер непрерывной интеграции с открытым исходным кодом для PHP проектов, форк PHPCI.

Удобен тем, что из коробки умеет работать с библиотеками для тестирования кода (PHPUnit, Atoum, Behat, Codeception, PHPSpec), а так же с утилитами для проверки PHP-кода (PHP Parallel Lint, Pdepend, PHP Code Sniffer, PHP Cpd, PHP Cs Fixer, PHPLoc, PHPMessDetect).

Умеет собирать проекты из различных источников (Github, Bitbucket, Gitlab, Git, Mercurial, SVN), хранить и отображать статистику сборок, а так же показывать динамику ошибок.

Так же имеет множество плагинов, не относящихся напрямую к проверке, включая, например, оповещения о сборке (Email, XMPP, Slack, IRC, Flowdock, HipChat).

Valentin Sayik
  • Репутация: 37
  • Сниппеты: 5
  • Ревизии: 0

API которое описанное в этом сниппете будет следовать следующим правилам:

  • Возвращает только JSON
  • Для любого запроса клиент должен пройти аутентификацию
  • Аутентификация производится через OAuth2, Grant Type = password.
  • Разные версии API будут храниться на поддоменах (например v1.api.example.com)

Для написания API было использовано php + Symfony 3 + следующие бандлы:

Продолжение »

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Эта библиотека проста в использовании, имеет удобный API, небольшой вес, множество локализаций. Далее мы разберём пример её использования.

Продолжение »

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

К своему стыду обнаружил, что в классе Controller, фреймвока Symfony 3, есть следующие полезные методы. Если вы про это знаете, то листайте дальше, тут ничего нового не будет :)

json

Если нужно отдать Response в JSON, нам достаточно выполнить код:

$data = ['hello' => 'world'];
return $this->json($data);

file

Этот метод понадобиться, когда вам нужно отдать файл для скачивания:

return $this->file('/path/to/file.doc');

Продолжение »

Valentin Sayik
  • Репутация: 37
  • Сниппеты: 5
  • Ревизии: 0

Мы хотим поделиться с вами вдохновляющими адаптивными прайс-таблицами сделанными на флексбоксе. Прайс-таблицы являются основной частью лендингов и сайтов на которых предлагают цифровые или другие платные услуги.

Продолжение »

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Во время тестирования REST API, вам приходит строка JSON, на вид не читабельная, особенно если вам нужно скинуть этот JSON своему коллеге. Что бы упростить эту задачу, можно воспользоваться jq

Продолжение »

Gravatar image
jumper423
  • Репутация: 58
  • Сниппеты: 9
  • Ревизии: 2

GitHub

Описание

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

Особенности

  • Подходит для всех сервисов по распознаванию капч
  • Можно легко добавить новый сервис, используя уже готовый движок
  • Быстрая и интуительно понятная настройка
  • Распознавание как по пути до файла, так и по ссылки
  • ReCaptcha v2 без браузера
  • Полная документация
  • Покрыт тестами

Продолжение »

samdark
  • Репутация: 349
  • Сниппеты: 57
  • Ревизии: 5

Для начала задаём сам шаблон прямо в HTML страницы:

<script type="html/tpl" id="my-template">
<div class="item">
    <h1>{title}</h1>
    <p class="description">{description}</p>
</div>
</script>

Далее реализовываем сам метод получения строки с заменёнными плейсхолдерами:

function renderTemplate(name, data) {
    var template = document.getElementById(name).innerHTML;

    for (var property in data) {
        if (data.hasOwnProperty(property)) {
            var search = new RegExp('{' + property + '}', 'g');
            template = template.replace(search, data[property]);
        }
    }
    return template;
}

Использовать можно так:

var html = renderTemplate('my-template', {
    title: "My cool thing",
    description: "It is really cool, isn't it?"
});

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

OKyJIucT
  • Репутация: 15
  • Сниппеты: 8
  • Ревизии: 0
function removeURLParameter(url, parameter) {
    //prefer to use l.search if you have a location/link object
    var urlparts= url.split('?');   
    if (urlparts.length>=2) {

        var prefix= encodeURIComponent(parameter)+'=';
        var pars= urlparts[1].split(/[&;]/g);

        //reverse iteration as may be destructive
        for (var i= pars.length; i-- > 0;) {    
            //idiom for string.startsWith
            if (pars[i].lastIndexOf(prefix, 0) !== -1) {  
                pars.splice(i, 1);
            }
        }
        
        if(pars.length > 0) {
            url= urlparts[0]+'?'+pars.join('&');
        } else {
            url= urlparts[0];
        }

        return url;
    } else {
        return url;
    }
}


var url = 'https://jsfiddle.net/?test=123123&qwe=er24';

alert(removeURLParameter(url, 'qwe')); // https://jsfiddle.net/?test=123123