master

laravel/framework

Last updated at: 29/12/2023 09:25

CompilesJson.php

TLDR

This file is part of the Illuminate\View\Compilers\Concerns namespace and contains the CompilesJson trait. This trait provides a method for compiling JSON statements into valid PHP code.

Methods

compileJson

This method takes a JSON statement as input and compiles it into valid PHP code. It uses the json_encode() function to encode the JSON, and the resulting PHP code is echoed out.

Classes

None

<?php

namespace Illuminate\View\Compilers\Concerns;

trait CompilesJson
{
    /**
     * The default JSON encoding options.
     *
     * @var int
     */
    private $encodingOptions = JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT;

    /**
     * Compile the JSON statement into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileJson($expression)
    {
        $parts = explode(',', $this->stripParentheses($expression));

        $options = isset($parts[1]) ? trim($parts[1]) : $this->encodingOptions;

        $depth = isset($parts[2]) ? trim($parts[2]) : 512;

        return "<?php echo json_encode($parts[0], $options, $depth) ?>";
    }
}