Giter VIP home page Giter VIP logo

devextreme-php-data's Introduction

Build Status

DevExtreme PHP Data


This library is intended for loading data from a MySQL (mysqlnd is required) database, based on expressions passed from a client by a DevExtreme data source. The library will allow you to implement a data service that supports the protocol described in the following help topics:

dxDataGrid - Use CustomStore

dxPivotGrid - Use CustomStore

Moreover, the library will allow you to perform all operations such as, filtering, sorting, paging and grouping on the server side.

Getting Started


If you wish to load data from a MySQL data table based on parameters received from the client side, perform the following steps.

  • Copy the DevExtreme folder to your project.
  • Include the LoadHelper.php file to your PHP script where you wish to call the DevExtreme PHP Data library API.
  • Register the library autoloader by executing the following code:
spl_autoload_register(array("DevExtreme\LoadHelper", "LoadModule"));

Since all classes in the library are wrapped in the DevExtreme namespace, use the use operator to get rid of long names in your code. Only two classes are required: DbSet and DataSourceLoader. Execute the following code to be ready to use these classes:

use DevExtreme\DbSet;
use DevExtreme\DataSourceLoader;

To load data, perform the following steps.

  • Create the mysqli instance passing your MySQL server user credentials to its constructor.
  • Create the DbSet instance passing the mysqli instance as a first parameter and a table name from which you wish to load data as a second parameter to the DbSet constructor.
  • Get parameters received from the client side and pass them with the DbSet instance to the Load method of the DataSourceLoader class. This is a static method and you will not need to create an instance of the class. The following code snippet shows how to do this:
$mySQL = new mysqli("serverName", "userName", "password", "databaseName");
$dbSet = new DbSet($mySQL, "tableName");
$result = DataSourceLoader::Load($dbSet, $params);

Note that parameters ($params) must be passed as an associative array.

That's it. The $result variable will contain the required results. It will represent an array of items. If you wish to send it to the client to be dislplayed in a DevExtreme widget, convert it to the JSON format. You can use the json_encode function for this task.

The example folder of this repository contains an example that shows how to use the library. To test it:

  • copy this folder to your web server folder;
  • execute the following command in the example folder;
bower install
  • Specify user credentials, database name and table name in the php/DataController.php file (see the DataController constructor) and open the index.html file in a web browser.

Diving deeper


The DbSet class has the following public methods that you can use without using the DataSourceLoader class.

  • Delete - deletes an item from a data table. It accepts a single parameter that represents a key. The key must be passed as an associative array. For example, if your key is ID and its value is 1, it should be passed to the method in the following manner:
$dbSet->Delete(array("ID" => 1));

The method returns a number of the affected rows.

  • GetLastError - returns a string representation of the error that was thrown by the last executed SQL query. The method does not accept parameters.

  • Insert - insert a new row to your data table. It accepts a single parameter that represents an associative array of items. The method returns a number of the affected rows.

  • Update - updates a certain item in your data table that is identified by a key value. It accepts two parameters. The first parameter represents a key value. It should be specified in the same manner as a key value for the Delete method. The second parameter represents an associative array of values that corresponds to data fields you wish to update. The method returns a number of the affected rows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.