haiku-atelier-2024/web/app/themes/haiku-atelier-2024/src/inc/WP/Resource.php
2026-04-05 16:49:20 +02:00

63 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace HaikuAtelier\WP;
use Exception;
use function filemtime;
use function get_template_directory;
use function get_template_directory_uri;
use function is_bool;
use function wp_enqueue_script_module;
use function wp_enqueue_style;
final readonly class Resource {
/**
* @throws Exception Lève une `Exception` s'il est impossible d'obtenir les attributs du fichier au chemin passé en paramètre.
*/
public static function enqueue_script_module_file(string $path, string $id): void {
$file_uri = get_template_directory_uri() . $path;
$file_path = get_template_directory() . $path;
$file_mtime = filemtime($file_path);
if (is_bool($file_mtime)) {
throw new Exception("Impossible de récupérer la date de modification du fichier : {$file_uri}.");
}
$version = (string) $file_mtime;
wp_enqueue_script_module(
id: $id,
src: $file_uri,
deps: [],
version: $version,
);
}
/**
* @throws Exception Lève une `Exception` s'il est impossible d'obtenir les attributs du fichier au chemin passé en paramètre.
*/
public static function enqueue_style_file(string $path, string $handle): void {
$file_uri = get_template_directory_uri() . $path;
$file_path = get_template_directory() . $path;
$file_mtime = filemtime($file_path);
if (is_bool($file_mtime)) {
throw new Exception("Impossible de récupérer la date de modification du fichier : {$file_uri}.");
}
$ver = (string) $file_mtime;
wp_enqueue_style(
handle: $handle,
src: $file_uri,
deps: [],
ver: $ver,
media: 'all',
);
}
}