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 namespace cada vez que usas una class puede resultar tedioso. La palabra clave use te permite hacer import de una class al principio de tu archivo, para que puedas hacer referencia a ella 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 necesitas classes de diferentes namespace con el mismo nombre, puedes crear un alias usando 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 varias clases del mismo namespace mediante imports agrupados:

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

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

Punto clave: La instrucción use debe aparecer después de la declaración de namespace (si la hay) y antes de cualquier otro código. Esto hace que tu código sea más limpio y fácil de leer al eliminar las rutas de namespace repetitivas.

challenge icon

Desafío

Fácil

Organicemos una aplicación de mensajería usando la palabra clave use para importar clases de forma clara y evitar escribir rutas completas de namespace en todas partes.

Crearás tres files que funcionan juntos:

  • Messaging/Email.php: Define una clase Email en el namespace Messaging. Debe tener una propiedad public $address, un constructor que accepts y sets el address, y un method send() que returns "Sending email to [address]".
  • Messaging/SMS.php: Define una clase SMS en el namespace Messaging. Debe tener una propiedad public $phone, un constructor que accepts y sets el phone number, y un method send() que returns "Sending SMS to [phone]".
  • main.php: Include both class files, después usa la palabra clave use para importar ambas clases. Crea un Email object con address "alice@example.com" y un SMS object con phone "555-1234". Print el result de calling send() en cada object (cada uno en su propia line).

En main.php, en lugar de escribir new \Messaging\Email(...), importarás las clases al principio con instrucciones use para poder escribir simplemente new Email(...) y new SMS(...).

REQUIRED OUTPUT FORMAT: [Your translated content here]

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 del espacio de nombres Messaging
// Esto te permite escribir 'new Email(...)' en lugar de 'new \Messaging\Email(...)'


// TODO: Create an Email object with address "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

Practica por tu cuenta: Compilador de PHP online