Download the PHP package slexx/comparisons-lang without Composer

On this page you can find all versions of the php package slexx/comparisons-lang. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package comparisons-lang

Comparisons language

Это мини язык для задания условий сравнения к уже имеющимся данным. К идее меня сподвигло постоянное написание схожих между собой фильтров для GET запросов минимальное число, максимальное, интервал даты или конкретная дата использовать я это буду при создании фильтров для GET запросов ?example=>5&<=10.

Язык очень прост, я взял обычный синтаксис WHERE SQL и выкинул из него всё не нужное, к примеру название колонок (она указывается только один раз), длинные слова AND был заменён на &, а OR на |.

Типы данных

В языке присуцтвуют несколько типов данных:

Название типа Пример Регулярное выражение
DATE_TIME 2018-12-26 23:00:00 \d{4}-\d{2}-\d{2} \d\d:\d\d:\d\d
DATE 2018-12-26 \d{4}-\d{2}-\d{2}
FLOAT 0.1 -?\d\.\d+
INT 777 -?\d+

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

Операторы сравнения

Доступны следующие операторы сравнения:

Оператор Описание
= Проверяет равны ли входные данные сравниваемым
!= Проверяет не равны ли входные данные сравниваемым
> Проверяет входные данные больше сравниваемых
>= Проверяет входные данные больше или равны сравниваемым
< Проверяет входные данные являются меньше сравниваемых
<= Проверяет входные данные меньше или равны сравниваемым

Каждый оператор сравнения всегда пишется перед входными параметрами: >5, =5...

Логические операторы

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

Оператор Описание
& Левый и правый операнд должны возвращать правд
| Левый или правый операнд должны возвращать правду

Группировка

Группировка условий осуществляется с помощью круглых скобок () как в матемытике или в любом языке программирования. Здесь кроется небольшой подвох, возможности группировки сильно ограничены, группы не могут быть вложенными друг в друга (>6&(<4&>-44)) - это вызовет исключение.

Установка

Установите пакет composer:

Используйте в вашем php.

Я думаю что это неплохая оптимизация учитывая что входная строка 8 символов, а SQL вариант аж 42!

Laravel

Для использования вместе с фремворком laravel просто добывте в ваш файл config/app.php одну строку:

Провайдер добавить однин очень полезный миксин CLFilter в Query Builder, он позволит использовать Comparison Language прям при генерации запросов:

А вот пример как это будет выглядеть по моеё задумке с GET параметрами:

Вся остальныя волокита с фильтрами вроде минимальный возраст, максимальный переходит к фронтендеру, ему остаётся лишь передать нужный оператор через API.

В миксин принимаются следующие аргументы:

Имя Тип Описание
$field string|array Имя колонки к фильтрации, можно отделить имя таблицы точкой table.column или передать массив ['table', 'column'].
$input string Строка Comparisons Language
$type string Тип данных к сравнению int, integer, float, double, date, datetime, date_time или date-time

All versions of comparisons-lang with dependencies

PHP Build Version
Package Version
Requires illuminate/support Version *
illuminate/database Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package slexx/comparisons-lang contains the following files

Loading the files please wait ....