AsyncTask enables proper and easy use of the thread. This class allows to perform background operations and publish results on the thread without having to manipulate threads and/or handlers.
The early class implementation supports PHP 5.3, but does not support what is implemented in this class.
-
PHP
version~7.1.0
-
Module installed
pcntl
andposix
-
All functions
pcntl
,posix
removed from the directivedisable_functions
-
SharedMemoryAdapter
:- All functions
shm
removed from the directivedisable_functions
- All functions
-
Install composer
-
Follow in the project folder:
composer require dmamontov/asynctask-7 ~2.0.13
In config composer.json
your project will be added to the library dmamontov/asynctask-7
, who settled in the folder vendor/
. In the absence of a config file or folder with vendors they will be created.
If before your project is not used composer
, connect the startup file vendors. To do this, enter the code in the project:
require 'path/to/vendor/autoload.php';
SharedMemory
- working- in the processFileSystem
- in the processRedis
Offer adapters that are missing. We develop!
use AsyncTask\{
AsyncTask,
Collection
};
class TestTask extends AsyncTask
{
protected function onPreExecute(Collection $collection)
{
}
protected function doInBackground(Collection $collection)
{
return 'My First Task';
}
protected function onPostExecute($result)
{
echo $result;
}
protected function publishProgress()
{
echo rand(0,9) . PHP_EOL;
}
}
$task = new TestTask();
$task
->setTitle('TestTask')
->execute(new Collection);
use AsyncTask\AsyncTask;
use AsyncTask\Collection;
class ExampleTask extends AsyncTask
{
/**
* Optional method.
*/
protected function onPreExecute(Collection $collection)
{
return $collection;
}
/**
* Required method.
*/
protected function doInBackground(Collection $collection)
{
return $collection;
}
/**
* Optional method.
* With this method, an additional process is created.
*/
protected function publishProgress()
{
}
/**
* Optional method.
*/
protected function onPostExecute($result)
{
}
/**
* Optional method.
*/
protected function onCancelled()
{
}
}
use AsyncTask\Adapter;
use AsyncTask\Interfaces\AdapterInterface;
class ExampleAdapter extends Adapter implements AdapterInterface
{
/**
* Required method.
*/
public function init(): AdapterInterface
{
return $this;
}
/**
* Required method.
*/
public function finish(): AdapterInterface
{
return $this;
}
/**
* Required method.
*/
public function clean(bool $parent = false): AdapterInterface
{
return $this;
}
/**
* Required method.
*/
public function has($key, bool $parent = false): bool
{
return false;
}
/**
* Required method.
*/
public function remove($key, bool $parent = false): bool
{
return true;
}
/**
* Required method.
*/
public function get($key, bool $parent = false)
{
return null;
}
/**
* Required method.
*/
public function write($key, $val, bool $parent = false): AdapterInterface
{
return $this;
}
}
- More tests.
- More adapters.
- Class for managing running processes.