Menu
Coddy logo textTech

La palabra clave use

Parte de la sección Programación Orientada a Objetos del Journey de PHP de Coddy — lección 11 de 91.

Escribir la ruta completa del espacio de nombres cada vez que usas una clase puede resultar tedioso. La palabra clave use te permite importar una clase en la parte superior de tu archivo, para que puedas referenciarla por su nombre corto.

En lugar de escribir \Blog\User repetidamente, puedes importarlo una vez:

<?php
use Blog\User;

$user = new User("Alice");
echo $user->name;

Cuando necesites clases de diferentes espacios de nombres con el mismo nombre, puedes crear un alias utilizando la palabra clave as:

<?php
use Blog\User as BlogUser;
use Shop\User as ShopUser;

$blogger = new BlogUser("Alice");
$customer = new ShopUser("alice@example.com");

echo $blogger->name . "\n";
echo $customer->email . "\n";

Salida:

Alice
alice@example.com

También puedes importar múltiples clases desde el mismo espacio de nombres utilizando importaciones agrupadas:

<?php
use Blog\{User, Post, Comment};

$user = new User("Alice");
$post = new Post("Hello World");

Punto clave: La sentencia use debe aparecer después de la declaración namespace (si existe) y antes de cualquier otro código. Hace que su código sea más limpio y fácil de leer al eliminar rutas de espacios de nombres repetitivas.

challenge icon

Desafío

Fácil

Vamos a organizar una aplicación de mensajería utilizando la palabra clave use para importar clases de forma limpia y evitar escribir rutas de espacio de nombres completas en todas partes.

Crearás tres archivos que funcionan juntos:

  • Messaging/Email.php — Define una clase Email en el espacio de nombres Messaging. Debe tener una propiedad public $address, un constructor que acepte y establezca la dirección, y un método send() que devuelva "Sending email to [address]".
  • Messaging/SMS.php — Define una clase SMS en el espacio de nombres Messaging. Debe tener una propiedad public $phone, un constructor que acepte y establezca el número de teléfono, y un método send() que devuelva "Sending SMS to [phone]".
  • main.php — Incluye ambos archivos de clase, luego utiliza la palabra clave use para importar ambas clases. Crea un objeto Email con la dirección "alice@example.com" y un objeto SMS con el teléfono "555-1234". Imprime el resultado de llamar a send() en cada objeto (cada uno en su propia línea).

En main.php, en lugar de escribir new \Messaging\Email(...), importarás las clases en la parte superior con sentencias use para que puedas escribir simplemente new Email(...) y new SMS(...).

Pruébalo tú mismo

<?php
// Incluye los archivos de clase
require_once 'Messaging/Email.php';
require_once 'Messaging/SMS.php';

// TODO: Usa la palabra clave 'use' para importar ambas clases desde el namespace Messaging
// Esto te permite escribir 'new Email(...)' en lugar de 'new \Messaging\Email(...)'


// TODO: Crea un objeto Email con la dirección "alice@example.com"


// TODO: Crea un objeto SMS con el teléfono "555-1234"


// TODO: Imprime el resultado de llamar a send() en cada objeto (cada uno en su propia línea)

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos