PHP code example of omerkoseoglu / devextreme-data

1. Go to this page and download the library: Download omerkoseoglu/devextreme-data 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/ */

    

omerkoseoglu / devextreme-data example snippets


use DevExtreme\Data\DataSourceLoader;
use DevExtreme\Data\PdoSource;

$source = new PdoSource($pdo, 'orders', primaryKey: ['id']);

header('Content-Type: application/json');
echo json_encode(DataSourceLoader::loadFromRequest($source)); // reads $_GET + $_POST

echo json_encode(DataSourceLoader::load($arrayOfRows, $_GET));

new PdoSource(
    $pdo,                                   // must use PDO::ERRMODE_EXCEPTION
    'orders',                               // table/view, or trusted raw FROM with rawFrom: true
    columns: ['id' => 'o.id', 'customer.name' => 'c.name'], // optional whitelist: field => SQL expression
    primaryKey: ['id'],
    where: 'tenant_id = ?', whereParams: [7], // always applied
    // rawFrom: true + fromParams: [...] lets $from be a sub-select with bound parameters
);

use DevExtreme\Data\Aggregation\{Aggregator, CustomAggregators};
use DevExtreme\Data\Filter\{BinaryExpressionInfo, CustomFilterCompilers};
use DevExtreme\Data\Sql\SqlFragment;

CustomAggregators::register('median', fn () => new MedianAggregator()); // extends Aggregator

CustomFilterCompilers::registerBinary(function (BinaryExpressionInfo $i) {
    if ($i->operation !== 'anyof') return null;              // ["category", "anyof", ["a", "b"]]
    return $i->target === 'sql'
        ? new SqlFragment($i->columns->resolve($i->field) . ' IN (?, ?)', $i->value)
        : fn ($item) => in_array(Accessor::read($item, $i->field), $i->value, true);
});