Última oportunidad para asegurar tu aprendizaje por 1 año a precio especial

Antes: $249

Currency
$189/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

0D
6H
37M
36S

La función dd() en PHP

2/22
Recursos

Aportes 17

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Volví a ver esta clase debido a que encontré un error en el examen. Se supone que la función ‘die()’ SÍ es nativa de php y se puede usar perfectamente. Sin embargo, en el examen me calificó mal la respuesta e intuyo que es porque en realidad se equivocaron y deberían preguntar es por por la función ‘dd()’ la cual no es nativa, corrijan el enunciado por favor.

https://www.php.net/manual/es/function.die.php

Para los que quieren probar el codigo, aqui lo tienen

<?php

require("vendor/autoload.php");

class Michi 
{
    protected $patas = [];
    protected $color;

    function __construct(string $color)
    {
        $this->color = $color;

        for ($i=0; $i < 4 ; $i++) 
        { 
            $this->patas[$i] = new PataDeMichi();
        }
    }

}

class PataDeMichi{

    protected $nails = 4;
    protected $description = "Tiene manchitas";

    public function get_description(): string
    {
        return $this->description;
    }

}

$casa_de_michis = array(
    "nombre" => "Michilango",
    "ubicacion"=> [
        "pais"=> "Mexico",
        "ciudad"=>"Ciudad de Mexico",
        "colonia"=> "Doctores",
        "numero"=> 27
    ],
    "numero_de_michis"=> 3,
    "michis"=>[
        new Michi("blanco"),
        new Michi("negro"),
        new Michi("gris")
    ]
);

Siento que le falto el curso practico al curso de programacion Poo.

En PHP 8 podemos hacer las clases de forma más resumida.

Por ejemplo esto es válido en PHP 8.0:

class Michi {

    protected $patas = [];

    function __construct(protected string $color) {

        for ($i=0; $i < 4; $i++)
            $this->patas[$i] = new PataDeMichi();

    }
    
}

al instalar con composer lo que nos sugiere RetaxMaster es mejor hacerlo como dependencias de desarrollo ya que esto no es algo que usemos en producción.

composer require-dev symfony/var-dumper

dd() = Dump and Die

ddd() = Dump, Die and Debug

📢 Justo hace unos dias (Septiembre de 2022) la funcion dd fue modificada y ahora muestra tambien el numero de linea desde donde se genero el die(). y desde que contexto se hizo el llamado.

Ahora en cada proyecto que hago, esta linea es infaltable en el composer.json:

	"require-dev": {
		"symfony/var-dumper": "^6.1"
	}

La funcion dd()

En Laravel, tenemos una forma increiblemente sencilla y elegante de ahcer debugging. Esta es la funcion dump(). Esta funcion nos provee de un elemento que podemos manipular para ver informacion muy detallada de lo que queramos. La funcion die() ya la hemos usado antes. Nos sirve para terminar la ejemcucion del script en cualquier momento

Estas funciones no se encuentran integradas nativamente en PHP, si no que hacen parte del core de Laravel. Pero se puede replicar en PHP nativo 🏃

Tenemos un ejemplo de array complejo

class Michi {
    protected $patas = [];
    protected $color;

    function __construct($color) {
        $this->color = $color;
        
        for ($i=0; $i < 4; $i++) {
            $this->patas[$i] = new PataDeMichi();
        }
    }
}

class PataDeMichi {
    protected $nails = 4;
    protected $description = "Tiene manchas";

    public function get_description():string{
        return $this->descripcion;
    }
}

$casa_de_michis = array(
    "nombre"=>"Michilango",
    "ubicacion"=>[
        "pais" => "Mexico",
        "ciudad" => "Cuidad de México",
        "colonia" => "Doctores",
        "numero"=>27
    ],
    "numero_de_michis" => 3,
    "michis"=>[
        new Michi("blanco"),
        new Michi("blanco"),
        new Michi("blanco")
    ]
);

Seria abrumador debuggear todo esto cierto? no habria mucha diferencia si usaramos var_dumo verdad? pues por eso existe la funcion dd que podemos instalar con el comando composer require symfony/var-dumper y al final usamos dd con el array complejo que queramos debuggear

require("vendor/autoload.php");
//......
//Todo el codigo anterior
//::....
dd($casa_de_michis);

Cuando accedas al navegador notarás que podras interactuar con el debugger de una forma intuitiva, con todo y hasta colores

synfony/var-dumper nos habilita 2 funciones

  • dd() que nos muestra los datos y ejecuta die() al finalizar
  • debug() que solo muestra los datos y continua su ejecución

Hay un error en el examen, ya que preguntan por la función “die()” cuando claramente se refiere a la función “dd()”

No es un debugging completo, un debugging completo sería con xdebug.

por que no ponen el resumen de la clase en texto, como en otros cursos.

según la ruta composer con php es el ultimo curso. tendrían que cambia

Muy buena la función, está muy interactiva e intuitiva.

Tuve unos problemas al correr el script, pero nada que un chmod -R 777 ./dd no solucionara.

sin duda una forma muy amigable de visualizar los datos

Excelente herramienta.