Вход Регистрация
Файл: app/Classes/Registry.php
Строк: 63
<?php

declare(strict_types=1);

namespace 
AppClasses;

class 
Registry
{
    public static array 
$complaintTypes = [];
    public static array 
$fileTypes = [];
    public static array 
$labelTypes = [];
    public static array 
$mediaTypes = [];
    public static array 
$ratingTypes = [];
    public static array 
$spamTypes = [];
    public static array 
$sitemapPages = [];
    public static array 
$onDeleteUser = [];
    public static array 
$onAdminDeleteUser = [];
    public static array 
$feeds = [];
    public static array 
$search = [];

    
/**
     * Регистрирует обработчик жалобы на контент типа $type
     */
    
public static function complaint(string $type, callable $handler): void
    
{
        static::
$complaintTypes[$type] = $handler;
    }

    
/**
     * Помечает тип как поддерживающий загрузку файлов (не медиа)
     */
    
public static function fileType(string $morphName): void
    
{
        static::
$fileTypes[] = $morphName;
    }

    
/**
     * Помечает тип как поддерживающий загрузку медиафайлов (фото/видео)
     */
    
public static function mediaType(string $morphName): void
    
{
        static::
$mediaTypes[] = $morphName;
    }

    
/**
     * Помечает тип как поддерживающий рейтинг
     */
    
public static function ratingType(string $morphName): void
    
{
        static::
$ratingTypes[] = $morphName;
    }

    
/**
     * Регистрирует отображаемое название для morph-типа
     */
    
public static function label(string $morphNamestring $label): void
    
{
        static::
$labelTypes[$morphName] = $label;
    }

    
/**
     * Регистрирует тип как источник спама (метка в админке берётся из labelTypes)
     */
    
public static function spamType(string $morphName): void
    
{
        static::
$spamTypes[] = $morphName;
    }

    
/**
     * Регистрирует страницу sitemap с её генератором
     */
    
public static function sitemap(string $key, callable $handler): void
    
{
        static::
$sitemapPages[$key] = $handler;
    }

    
/**
     * Регистрирует колбэк на удаление пользователя
     */
    
public static function onDeleteUser(callable $handler): void
    
{
        static::
$onDeleteUser[] = $handler;
    }

    
/**
     * Регистрирует колбэк на удаление пользователя администратором
     */
    
public static function onAdminDeleteUser(callable $handler): void
    
{
        static::
$onAdminDeleteUser[] = $handler;
    }

    
/**
     * Регистрирует модель как источник ленты
     *
     * @param array $config ['with' => [], 'view' => '', 'scope' => ?Closure, 'poll' => ?Closure]
     */
    
public static function feed(string $class, array $config): void
    
{
        
/** @var class-string $class */
        
$morphName $class::$morphName;
        static::
$feeds[$morphName] = ['class' => $class] + $config;
    }

    
/**
     * Регистрирует модель в полнотекстовом поиске: метка, шаблон и eager-загрузки
     */
    
public static function search(string $classstring $view, array $with = []): void
    
{
        
/** @var class-string $class */
        
$morphName $class::$morphName;
        static::
$search[$morphName] = ['class' => $class'view' => $view'with' => $with];
    }
}
Онлайн: 1
Реклама