-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsamples.php
More file actions
115 lines (103 loc) · 3.4 KB
/
samples.php
File metadata and controls
115 lines (103 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
require_once 'src/GeneratrixDB.php';
require_once 'src/GeneratrixCRUD.php';
class CustomMethods
{
/**
* Sample class and method to use as callback
*
* @param ...$responses
* @return array
*/
public static function groupByFirstColumn(...$responses): array
{
$tempResponse = [];
foreach ($responses as $response) {
$firstColumn = array_key_first($response);
array_shift($response);
$tempResponse[$firstColumn][] = $response;
}
return $tempResponse;
}
}
// Creating instances and specify the result type like JSON or RAW array of data
$generatrixDB = new \iazaran\crudgeneratrix\GeneratrixDB('locations', 'DBUser', 'DBPassword995!', 'localhost');
$generatrixCRUD = new \iazaran\crudgeneratrix\GeneratrixCRUD($generatrixDB, 'JSON');
try {
// Getting information about a table and some columns
var_dump($generatrixCRUD::information(
['countries' => ['countryCode', 'countryName']]
));
// Reading a specific row from a table and related table(s) and columns based on different relationship directions
var_dump($generatrixCRUD::read(
['cities' => ['cityName']],
30,
['hotels' => ['name']],
'LEFT'
));
var_dump($generatrixCRUD::read(
['hotels' => ['name']],
30,
['cities' => ['cityName']],
'RIGHT'
));
// Using custom method as callback
// Without callback like: [{"cityName":"Al Ain","name":"Radisson Blu Hotel & Resort, Al Ain"},{"cityName":"Al Ain","name":"Danat Al Ain Resort"},{"cityName":"Al Ain","name":"Mercure Grand Jebel Hafeet Al Ain Hotel"}]
// With callback like: {"cityName":[{"name":"Radisson Blu Hotel & Resort, Al Ain"},{"name":"Danat Al Ain Resort"},{"name":"Mercure Grand Jebel Hafeet Al Ain Hotel"}]}
var_dump($generatrixCRUD::read(
['cities' => ['cityName']],
30,
['hotels' => ['name']],
'LEFT',
['CustomMethods', 'groupByFirstColumn']
));
// Create multiple rows
var_dump($generatrixCRUD::create(
['countries' => [
'countryCode' => ['US', 'GB'],
'countryName' => ['United State', 'Great Britain'],
]]
));
// Update specific row
var_dump($generatrixCRUD::update(
['countries' => [
'countryCode' => 'ES',
'countryName' => 'Spain',
]],
237
));
// Delete specific row
var_dump($generatrixCRUD::delete(
['countries'],
237
));
// Search for multiple columns (AND, OR, XOR, ...) of target table (=, LIKE, NOT, ...) and list them ('AND' will be considered for joining conditions of conditions) You can add relationships like read method
var_dump($generatrixCRUD::search(
['OR' => [
'=' => ['cityName' => 'dubai'],
'LIKE' => ['cityName' => 'old'],
]],
['cities' => ['cityName']],
[],
'',
10,
5
));
// To use as a single method for all type of features. You can use any method name in here as `type`
var_dump($generatrixCRUD::api(
'search',
['cities' => ['cityName']],
null,
[],
'',
['OR' => [
'=' => ['cityName' => 'dubai'],
'LIKE' => ['cityName' => 'old'],
]],
10,
5,
[]
));
} catch (Exception $e) {
var_dump($e->getMessage());
}