1. Go to this page and download the library: Download mauretto78/in-memory-list 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/ */
mauretto78 / in-memory-list example snippets
use InMemoryList\Application\Client;
$array = [
...
]
$client = new Client();
$collection = $client->create($array);
foreach ($collection as $element){
// ...
}
use InMemoryList\Application\Client;
// Apcu, no configuration is needed
$client = new Client('apcu');
// ..
use InMemoryList\Application\Client;
// Memcached, you can pass one or more servers
$memcached_parameters = [
[
'host' => 'localhost',
'port' => 11211
],
[
'host' => 'localhost',
'port' => 11222
],
// etc..
];
$client = new Client('memcached', $memcached_parameters);
// ..
use InMemoryList\Application\Client;
// you have to use arrays
// you can't use URI string like 'tcp://10.0.0.1:6379'
// please refer to PRedis library documentation
$redis_parameters = [
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'options' => [
'profile' => '3.0',
],
];
$client = new Client('redis', $redis_parameters);
// ..
use InMemoryList\Application\Client;
$array = [
...
]
$client = new Client();
$client->create($array, [
'uuid' => 'simple-array'
]);
// And now you can retrive the list:
$simpleArray = $client->getRepository()->findListByUuid('simple-array');
//..
$simpleArray = [
[
"userId" => 1,
"id" => 1,
"title" => "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body" => "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
],
...
]
use InMemoryList\Application\Client;
$client = new Client();
$collection = $client->create($simpleArray, [
'uuid' => 'simple-array',
'element-uuid' => 'id'
]);
// now to retrieve a single element, you can simply do:
$itemWithId1 = $collection[1];
// ...
$client->getRepository()->updateTtl(
'your-list-uuid',
3600 // ttl in seconds
);
// get Ttl of the list
$client->getRepository()->getTtl('your-list-uuid'); // 3600
// simple string list
$stringArray = [
'Lorem Ipsum',
'Ipse Dixit',
'Dolor facium',
];
$collection = $client->create($stringArray, [
'uuid' => 'string-array',
'ttl' => 3600
]);
// array list, you must provide elements with consistent structure
$listArray[] = [
'id' => 1,
'title' => 'Lorem Ipsum',
];
$listArray[] = [
'id' => 2,
'title' => 'Ipse Dixit',
];
$listArray[] = [
'id' => 3,
'title' => 'Dolor facium',
];
$collection = $client->create($listArray, [
'uuid' => 'simple-array',
'element-uuid' => 'id',
'ttl' => 3600
]);
// entity list, the objects must have the same properties
$entityArray[] = new User(1, 'Mauro');
$entityArray[] = new User(2, 'Cristina');
$entityArray[] = new User(3, 'Lilli');
$collection = $client->create($entityArray, [
'uuid' => 'entity-array',
'element-uuid' => 'id',
'ttl' => 3600
]);
use ArrayQuery\QueryBuilder;
// ..
$list = $client->getRepository()->findListByUuid('simple-array');
$qb = QueryBuilder::create($list);
$qb
->addCriterion('id', '3', '>')
->sortedBy('id', 'DESC');
// get results
foreach ($qb->getResults() as $element){
// ...
}
#!/usr/bin/env php
// Example of a Silex Application 'bin/console' file
// we use \Knp\Provider\ConsoleServiceProvider as ConsoleServiceProvider, use what you want
set_time_limit(0);
sole.project_directory' => __DIR__.'/..'
));
$console = $app['console'];
// add commands here
...
$console->add(new \InMemoryList\Command\CreateSchemaCommand(...));
$console->add(new \InMemoryList\Command\DestroySchemaCommand(...));
$console->add(new \InMemoryList\Command\FlushCommand(...));
$console->add(new \InMemoryList\Command\IndexCommand(...));
$console->add(new \InMemoryList\Command\StatisticsCommand(...));
$console->run();