. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Utils\Resource; use Espo\Core\Utils\File\Unifier; use Espo\Core\Utils\File\UnifierObj; use Espo\Core\Utils\Resource\Reader\Params; use stdClass; /** * Reads resource data. Reading is expensive. Read data is supposed to be cached after. */ class Reader { public function __construct( private Unifier $unifier, private UnifierObj $unifierObj ) {} /** * Read resource data. */ public function read(string $path, Params $params): stdClass { /** @var stdClass */ return $this->unifierObj->unify($path, $params->noCustom(), $params->getForceAppendPathList()); } /** * Read resource data as an associative array. * * @return array */ public function readAsArray(string $path, Params $params): array { /** @var array */ return $this->unifier->unify($path, $params->noCustom(), $params->getForceAppendPathList()); } }