1. Go to this page and download the library: Download henzeb/warmable-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/ */
henzeb / warmable-laravel example snippets
use Henzeb\Warmable\Illuminate\Warmable;
use DateTimeInterface;
use DateInterval;
class HeavyOperation extends Warmable
{
protected function warmable(): mixed
{
// ... your heavy operation
}
}
use Henzeb\Warmable\Illuminate\Warmable;
use DateTimeInterface;
use DateInterval;
class HeavyOperation extends Warmable
{
protected function warmable(YourInjectedService $service): mixed
{
// ... your heavy operation
}
}
HeavyOperation::with([
'service' => new YourInjectedService()
]);
// The following however isn't possible:
HeavyOperation::with(
[
'service' => new YourInjectedService()
],
'another item'
);
use Henzeb\Warmable\Illuminate\Warmable;
class HeavyOperation extends Warmable {
public function __construct(
private YourService $yourService
private YourOtherService $otherService
) {
}
}
HeavyOperation::make();
HeavyOperation::make(['yourService' => new YourService()]);
$schedule->call(HeavyOperation::class)->daily(); // happens during execution
$schedule->job(HeavyOperation::class)->hourly(); // dispatches to the queue
$schedule->call(HeavyOperation::withPreheating())->daily();
// Will dispatch a job on the queue when preheating needs to happen
$schedule->job(HeavyOperation::withPreheating(true))->hourly();
HeavyOperation::preheat()->onQueue('sync');
use Henzeb\Warmable\Illuminate\Warmable;
class YourEvent {
public function __construct(
public string $key, // not y for CacheWarmedUp events
) {
}
}
class HeavyOperation extends Warmable {
protected string $preheatingEvent = YourEvent::class;
protected string $warmingUpEvent = YourEvent::class;
protected string $failedWarmingUpEvent = YourEvent::class;
protected string $warmedUpEvent = YourEvent::class;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.