1. Go to this page and download the library: Download lucid-arch/laravel 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/ */
namespace App\Domains\User\Jobs;
use Lucid\Foundation\Job;
class SearchUsersByNameJob extends Job
{
private $query;
private $limit;
public function __construct($query, $limit = 25)
{
$this->query = $query;
$this->limit = $limit;
}
public function handle(User $user)
{
return $user->where('name', $this->query)->take($this->limit)->get();
}
}
public function handle(Request $request)
{
// validate input - if not valid the validator should
// throw an exception of InvalidArgumentException
$this->run(new ValidateUserSearchQueryJob($request->input()));
$results = $this->run(SearchUsersJob::class, [
'query' => $request->input('query'),
]);
if (empty($results)) {
$this->run(LogEmptySearchResultsJob::class, [
'date' => new DateTime(),
'query' => $request->query(),
]);
$response = $this->run(new RespondWithJsonErrorJob('No users found'));
} else {
// this job is queueable so it will automatically get queued
// and dispatched later.
$this->run(LogUserSearchJob::class, [
'date' => new DateTime(),
'query' => $request->input(),
'results' => $results->lists('id'), // only the ids of the results are
$this->run(LogUserSearchJob::class, [
'date' => new DateTime(),
'query' => $request->input(),
'resultIds' => $results->lists('id'), // only the ids of the results are
class LogUserSearchJob
{
public function __construct($query, array $resultIds, DateTime $date)
{
// ...
}
}
// ...
use App\Services\Api\Providers\ApiServiceProvider;
// ...
public function register()
{
$this->app->register(ApiServiceProvider::class);
}
public function handle()
{
return [
['name' => 'John Doe'],
['name' => 'Jane Doe'],
['name' => 'Tommy Atkins'],
];
}
public function handle(Request $request)
{
$users = $this->run(GetUsersJob::class);
return $this->run(new RespondWithJsonJob($users));
}
class UserController extends Controller
{
public function get()
{
return $this->serve(ListUsersFeature::class);
}
}
Route::get('/users', 'UserController@get');
use Illuminate\Support\Facades\Event;
use Lucid\Foundation\Events\FeatureStarted;
use Lucid\Foundation\Events\OperationStarted;
use Lucid\Foundation\Events\JobStarted;
Event::listen(FeatureStarted::class, function (FeatureStarted $event) {
// $event->name
// $event->arguments
});
Event::listen(OperationStarted::class, function (OperationStarted $event) {
// $event->name
// $event->arguments
});
Event::listen(JobStarted::class, function (JobStarted $event) {
// $event->name
// $event->arguments
});