PHP Classes

File: src/functions.php

Recommend this page to a friend!
  Classes of Rodolfo Berrios Arce   Var-Dump   src/functions.php   Download  
File: src/functions.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Var-Dump
Show the value of a variable in colored way
Author: By
Last change:
Date: 1 month ago
Size: 3,129 bytes
 

Contents

Class file image Download
<?php

/*
 * This file is part of Chevere.
 *
 * (c) Rodolfo Berrios <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

declare(strict_types=1);

// @codeCoverageIgnoreStart

namespace Chevere\VarDump {
    use
Chevere\VarDump\Formats\ConsoleFormat;
    use
Chevere\VarDump\Formats\HtmlFormat;
    use
Chevere\VarDump\Formats\PlainFormat;
    use
Chevere\VarDump\Interfaces\VarDumpInterface;
    use
Chevere\VarDump\Outputs\ConsoleOutput;
    use
Chevere\VarDump\Outputs\HtmlOutput;
    use
Chevere\VarDump\Outputs\PlainOutput;
    use
Chevere\Writer\Interfaces\WritersInterface;
    use
Chevere\Writer\StreamWriter;
    use
Chevere\Writer\Writers;
    use
Chevere\Writer\WritersInstance;
    use
LogicException;
    use function
Chevere\Writer\streamFor;

    function
varDumpPlain(): VarDumpInterface
   
{
        return
                new
VarDump(
                    new
PlainFormat(),
                    new
PlainOutput()
                );
    }

    function
varDumpConsole(): VarDumpInterface
   
{
        return
            new
VarDump(
                new
ConsoleFormat(),
                new
ConsoleOutput()
            );
    }

    function
varDumpHtml(): VarDumpInterface
   
{
        return
            new
VarDump(
                new
HtmlFormat(),
                new
HtmlOutput()
            );
    }

    function
varDump(): VarDumpInterface
   
{
        try {
            return
VarDumpInstance::get();
        } catch (
LogicException $e) {
            return
PHP_SAPI === 'cli'
               
? varDumpConsole()
                :
varDumpHtml();
        }
    }

    function
writers(): WritersInterface
   
{
        try {
            return
WritersInstance::get();
        } catch (
LogicException $e) {
            return (new
Writers())
                ->
withOutput(
                    new
StreamWriter(streamFor('php://output', 'w'))
                )
                ->
withError(
                    new
StreamWriter(streamFor('php://stderr', 'w'))
                );
        }
    }
}

namespace {
    use function
Chevere\VarDump\varDump;
    use function
Chevere\VarDump\writers;

    if (!
function_exists('vd')) {
       
/**
         * Dumps information about one or more variables to the registered output writer stream
         * @phpstan-ignore-next-line
         */
       
function vd(...$variables): void
       
{
           
varDump()
                ->
withShift(1)
                ->
withVariables(...$variables)
                ->
process(writers()->output());
        }
    }
    if (!
function_exists('vdd')) {
       
/**
         * Dumps information about one or more variables to the registered output writer stream and die()
         * @codeCoverageIgnore
         * @phpstan-ignore-next-line
         */
       
function vdd(...$variables): void
       
{
           
varDump()
                ->
withShift(1)
                ->
withVariables(...$variables)
                ->
process(writers()->output());
            exit(
0);
        }
    }
}
// @codeCoverageIgnoreEnd