No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
15 Hrs
18 Min
0 Seg

La función dd() en PHP

2/22
Recursos
Transcripción

Aportes 16

Preguntas 1

Ordenar por:

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

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.

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.

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

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

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

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();

    }
    
}

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.