PHP code example of bentools / opencubes
1. Go to this page and download the library: Download bentools/opencubes library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bentools / opencubes example snippets
use BenTools\OpenCubes\Component\Filter\FilterComponent;
use BenTools\OpenCubes\Component\Sort\SortComponent;
use BenTools\OpenCubes\Component\Pager\PagerComponent;
use BenTools\OpenCubes\Component\Filter\Model\CollectionFilter;
use BenTools\OpenCubes\Component\Filter\Model\RangeFilter;
use BenTools\OpenCubes\Component\Filter\Model\SimpleFilter;
use BenTools\OpenCubes\Component\Filter\Model\StringMatchFilter;
use BenTools\OpenCubes\OpenCubes;
use function BenTools\OpenCubes\current_location;
$openCubes = OpenCubes::create();
$sorting = $openCubes->getComponent(SortComponent::getName());
$filters = $openCubes->getComponent(FilterComponent::getName());
$pager = $openCubes->getComponent(
PagerComponent::getName(),
['default_size' => 100],
current_location() // current_location() is the default and can be replaced by any PSR-7 Uri object
);
// Pagination
echo $pager->getCurrentPage(); // 3
echo $pager->getPerPage(); // 50 (it would be 100 when omiting the per_page parameter)
echo $pager->getCurrentOffset(); // 100
$pager->setNbItems(160); // Your application found 160 items
echo count($pager); // 4 pages of 50 for 160 items
// Sorting
foreach ($sorting->getAppliedSorts() as $sort) {
echo $sort->getField(); // author.name
echo $sort->getDirection(); // asc
}
// Filters
foreach ($filters->getAppliedFilters() as $filter) {
if ($filter instanceof RangeFilter) {
echo $filter->getField(); // published_at
echo $filter->getLeft(); // 2019-01-01
echo $filter->getRight(); // 2019-01-31
}
if ($filter instanceof SimpleFilter) {
echo $filter->getField(); // category_id
echo $filter->getValue(); // 12
}
if ($filter instanceof CollectionFilter) {
echo $filter->getField(); // tags
print_r($filter->getValues()); // ['foo', 'bar']
}
if ($filter instanceof StringMatchFilter) {
echo $filter->getField(); // name
echo $filter->getValue(); // 'foo'
echo $filter->getOperator(); // StringMatchFilter::STARTS_WITH
var_dump($filter->isNegated()); // true
}
}