PHP code example of libelulasoft / yii2-async-await
1. Go to this page and download the library: Download libelulasoft/yii2-async-await 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/ */
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// Autoload for composer an yii2
figuration for async
$config = ;
[
...,
'components' => [
// If you want to use callbacks
'asyncAwait' => [
'class' => \Libelulasoft\AsyncAwait\AsyncAwait::class,
// Your own entry script, see the above examples
'loader' => __DIR__ . '/async.php'
],
// If you want to use classes, this is more faster
'asyncTask' => [
'class' => \Libelulasoft\AsyncAwait\AsyncTask::class,
// Your own entry script, see the above examples
'loader' => __DIR__ . '/async.php'
],
]
]
use common\models\User;
// Adding you async function
Yii::$app->asyncAwait->add('sendUserEmail', function (string $idUser, string $sender) {
$user = User::findOne($idUser);
// Return any serializable data, is prefer return a basic array response
return \common\models\Email::sendUser($user, $sender);
}, $idUser, $sender);
Yii::$app->asyncAwait->add('sendUserMessage', function (string $message, string $number) {
if ($number === '') return 'Number is
// This class is autoloadable
namespace common\tasks;
use Amp\Parallel\Worker\Environment;
use Amp\Parallel\Worker\Task;
use yii\helpers\VarDumper;
class PrintTask implements Task
{
private $text;
public function __construct(string $text)
{
$this->text = $text;
}
/**
* {@inheritdoc}
*/
public function run(Environment $environment)
{
return [
'response' => "FUTURE PROMISE WORKER {$this->text}",
'enviroment' => VarDumper::dumpAsString($environment),
];
}
}
/** @var \Libelulasoft\AsyncAwait\AsyncTask */
$async = Yii::$app->asyncTask;
$async->add('1', new PrintTask('THIS IS MY LARGE TEXT'));
$response = $async->run();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.