62 lines
1.4 KiB
PHP
62 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Helpers;
|
|
|
|
/**
|
|
* IconHelper
|
|
* 아이콘 및 소셜 미디어 아이콘의 HTML을 생성하는 헬퍼 클래스입니다.
|
|
*/
|
|
class IconHelper
|
|
{
|
|
/**
|
|
* 입력을 기반으로 아이콘 HTML을 반환합니다.
|
|
*
|
|
* @param string $key ICONS 상수의 키
|
|
* @param string $class 추가적인 CSS 클래스
|
|
* @return string
|
|
*/
|
|
public static function icon(string $key, string $class = ''): string
|
|
{
|
|
$icons = self::getIcons();
|
|
if (!isset($icons[$key])) {
|
|
$icons = self::getMessengerIcons();
|
|
}
|
|
|
|
if (!isset($icons[$key])) {
|
|
return '';
|
|
}
|
|
|
|
$icon = $icons[$key];
|
|
if ($class && str_contains($icon, 'class="')) {
|
|
return str_replace('class="', 'class="' . $class . ' ', $icon);
|
|
}
|
|
|
|
return $icon;
|
|
}
|
|
|
|
/**
|
|
* 메신저 아이콘 HTML을 반환합니다.
|
|
*
|
|
* @param string $key MESSENGER_ICONS 상수의 키
|
|
* @return string
|
|
*/
|
|
public static function messengerIcon(string $key): string
|
|
{
|
|
$icons = self::getMessengerIcons();
|
|
return $icons[$key] ?? '';
|
|
}
|
|
|
|
/**
|
|
* 아이콘 데이터를 관리합니다. (Constants.php에서 분리된 데이터)
|
|
*/
|
|
private static function getIcons(): array
|
|
{
|
|
return ICONS;
|
|
}
|
|
|
|
private static function getMessengerIcons(): array
|
|
{
|
|
return MESSENGER_ICONS;
|
|
}
|
|
}
|