脷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 鈥榙ie()鈥 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 鈥榙d()鈥 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 鈥渄ie()鈥 cuando claramente se refiere a la funci贸n 鈥渄d()鈥

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.