Current File : /home/n742ef5/royalanteam.com/wp-content/plugins/myhome-core/framework/app/Core/ServiceProvider.php
<?php

namespace Tangibledesign\Framework\Core;

use JsonException;
use Pimple\Container;
use Tangibledesign\Framework\Helpers\CurrentUserCan;
use WP_Post;

abstract class ServiceProvider
{
    use CurrentUserCan;

    protected Container $container;

    public function __construct(Container $container)
    {
        $this->container = $container;
    }

    public function initiation(): void
    {

    }

    public function afterInitiation(): void
    {

    }

    /**
     * @param $params
     * @return void
     * @throws JsonException
     */
    public function jsonResponse($params): void
    {
        echo json_encode($params, JSON_THROW_ON_ERROR);
    }

    /**
     * @param array $params
     * @return void
     */
    public function successJsonResponse(array $params = []): void
    {
        /** @noinspection JsonEncodingApiUsageInspection */
        echo json_encode($params + [
                'success' => true,
            ]);
    }

    /**
     * @param array $params
     * @return void
     */
    public function errorJsonResponse(array $params = []): void
    {
        /** @noinspection JsonEncodingApiUsageInspection */
        echo json_encode($params + [
                'success' => false,
            ]);
    }

    /**
     * @return bool
     */
    protected function isComparePage(): bool
    {
        global $post;
        return $post instanceof WP_Post && tdf_settings()->getComparePageId() === $post->ID;
    }

    protected function canManageOptions(): bool
    {
        return current_user_can('manage_options');
    }
}