SERVIDOR
|
|
Título del Test:
![]() SERVIDOR Descripción: UNIDAD 4 Y UNIDAD 5 (IES AGUADULCE) |



| Comentarios |
|---|
NO HAY REGISTROS |
|
¿Cuál de las siguientes opciones define correctamente una clase abstracta en PHP?. class abstract Animal { abstract function hablar(); }. abstract class Animal { abstract public function hablar(): string; }. abstract class Animal { public function hablar(): string { return ''; } }. interface Animal { abstract public function hablar(): string; }. Dado este código, ¿qué ocurre si no se implementa el método hablar() en la clase hija? php abstract class Animal { abstract public function hablar(): string; } class Perro extends Animal { // hablar() no implementado }. A) PHP ejecuta el método del padre con valor vacío. B) No pasa nada, los métodos abstractos son opcionales. C) Error fatal — la clase hija debe implementar todos los métodos abstractos. D) Se puede instanciar Perro pero hablar() devuelve null. ¿Cuál es la diferencia entre self:: y $this->?. A) self:: se usa para acceder a métodos privados y $this-> para públicos. B) self:: se usa en métodos estáticos para acceder a la clase, $this-> se usa en métodos de instancia para acceder al objeto. C) Son exactamente equivalentes, cualquiera funciona en cualquier contexto. D) self:: solo funciona con constantes, $this-> solo con atributos. D4. Dado este composer.json, ¿cuál sería el namespace correcto para una clase en src/Repositorios/UsuarioRepo.php? json{ "autoload": { "psr-4": { "MiApp\\": "src/" } } }. A) namespace src\Repositorios;. B) namespace MiApp\src\Repositorios;. C) namespace MiApp\Repositorios;. D) namespace Repositorios\MiApp;. ¿Cuál de las siguientes afirmaciones sobre las interfaces en PHP es incorrecta?. A) Una interfaz solo puede contener firmas de métodos, nunca implementación. B) Una clase puede implementar varias interfaces a la vez. C) Una interfaz puede extender otra interfaz con extends. D) Una clase puede extender una clase abstracta e implementar una interfaz al mismo tiempo. Dado este fragmento, ¿cuál es el resultado de ejecutarlo? phpclass Figura { public function area(): float { return 0.0; } } class Cuadrado extends Figura { public function __construct(private float $lado) {} public function area(): float { return $this->lado * $this->lado; } } $f = new Cuadrado(5); echo $f->area();. A) 0.0. B) Error porque Figura no es abstracta. C) 25.0. D) Error porque no se llama a parent::area(). En el patrón MVC con Smarty, ¿cuál de estas líneas pertenece al controlador?. A) $stmt = $pdo->prepare('SELECT * FROM peliculas');. B) {foreach $peliculas as $p}{$p->getTitulo()}{/foreach}. C) $smarty->assign('peliculas', $listado); $smarty->display('listado.tpl');. D) switch ($_GET['accion'] ?? '') { case 'listado': ... }. Una clase Libro hereda de EntidadBase e implementa IGuardable. ¿Cuál es la declaración correcta?. A) class Libro extends IGuardable implements EntidadBase. B) class Libro implements EntidadBase, IGuardable. C) class Libro extends EntidadBase implements IGuardable. D) class Libro extends EntidadBase extends IGuardable. ¿Qué comando hay que ejecutar después de modificar el composer.json para que el autoload PSR-4 reconozca las nuevas clases?. A) composer require. B) composer update. C) composer dump-autoload. D) php artisan install. Dado este código Smarty en una plantilla, ¿qué ocurre si $usuario no ha sido asignado con assign()? {if isset($usuario)} <p>Bienvenido {$usuario}</p> {/if}. A) Da error fatal de PHP. B) Muestra "Bienvenido " con el valor vacío. C) No muestra nada, el bloque se omite. D) Muestra un warning de Smarty. En Laravel, ¿qué hace exactamente $fillable en un modelo Eloquent?. A) Define los campos que se ocultan al convertir el modelo a JSON. B) Define los campos que se pueden rellenar mediante asignación masiva. C) Define los campos que no pueden estar vacíos en la base de datos. D) Define los campos que se generan automáticamente como timestamps. ¿Cuál de las siguientes opciones es la forma correcta de referenciar una ruta nombrada en una plantilla Blade? Route::get('/peliculas', [PeliculaController::class, 'index'])->name('peliculas.index');. A) <a href="{{ url('peliculas.index') }}">Ver</a>. B) <a href="{{ route('index') }}">Ver</a>. C) <a href="{{ route('peliculas.index') }}">Ver</a>. D) <a href="/peliculas">Ver</a>. En el patrón MVC con Smarty, ¿cuál de estas afirmaciones sobre el enrutador es correcta?. A) El enrutador es la vista, decide qué plantilla mostrar. B) El enrutador es parte del modelo, gestiona las consultas SQL. C) El enrutador lee el parámetro de la URL y delega en el controlador correspondiente. D) El enrutador es innecesario si se usa Smarty. Dado el siguiente composer.json, ¿cuál es el namespace correcto para una clase ubicada en src/servicios/Pago.php? json { "autoload": { "psr-4": { "MiApp\\": "src/" } } }. A) namespace src\servicios;. B) namespace MiApp;. C) namespace MiApp\servicios;. D) namespace servicios\MiApp;. ¿Qué comando hay que ejecutar para instalar las dependencias definidas en composer.json por primera vez en un proyecto?. A) composer dump-autoload. B) composer require. C) composer init. D) composer install. Dado este fragmento, ¿qué hay que añadir al inicio del archivo Controlador.php para poder usar la clase Producto sin escribir el namespace completo? php // archivo: src/controladores/Controlador.php $p = new Producto(); json { "autoload": { "psr-4": { "Shop\\": "src/" } } }. A) use Shop\modelos\Producto;. B) use src\modelos\Producto;. C) require 'src/modelos/Producto.php';. D) use Shop\Producto;. ¿Cuál de las siguientes es la forma correcta de definir un método estático en una clase PHP? php class Calculadora { private float $a; private float $b; public function __construct(float $a, float $b) { $this->a = $a; $this->b = $b; } // ¿Cuál es correcto? }. A) public static function sumar() { return $this->a + $this->b; }. B) public function sumar() { return $this->a + $this->b; }. C) public static function sumar(float $a, float $b) { return $a + $b; }. D) public function static sumar() { return $this->a + $this->b; }. ¿Cuál de las siguientes definiciones de ruta en Laravel ejecutaría el método index del controlador PeliculaController al acceder a /peliculas?. A) Route::get('/peliculas', 'PeliculaController@index');. B) Route::get('/peliculas', [PeliculaController::class, 'index']);. C) Route::post('/peliculas', [PeliculaController::class, 'index']);. D) Route::get('/peliculas', PeliculaController::index());. En Laravel, ¿qué hace el método Auth::attempt($credenciales)?. A) Cierra la sesión del usuario actual. B) Registra un nuevo usuario en la base de datos. C) Verifica las credenciales y si son correctas inicia la sesión. D) Devuelve el usuario autenticado actualmente. ¿Cuál de las siguientes opciones define correctamente una ruta que acepta GET y POST a la vez, protegida con autenticación y con nombre?. A) Route::all('/critica', [CriticaController::class, 'form'])->middleware('auth')->name('critica');. B) Route::any('/critica', [CriticaController::class, 'form'])->middleware('auth')->name('critica');. C) Route::get('/critica', [CriticaController::class, 'form'])->middleware('auth')->name('critica');. D) Route::both('/critica', [CriticaController::class, 'form'])->middleware('auth')->name('critica');. Dado este modelo, ¿qué consulta devuelve todas las críticas con valoración 5 de una película concreta? phpclass Pelicula extends Model { public function criticas(): HasMany { return $this->hasMany(Critica::class, 'pelicula_id'); } }. A) $pelicula->criticas->where('valoracion', 5);. B) Critica::find($pelicula->id)->where('valoracion', 5)->get();. C) $pelicula->criticas()->where('valoracion', 5)->get();. D) $pelicula->getCriticas()->filter('valoracion', 5);. ¿Qué problema tiene este fragmento de migración? phpSchema::create('criticas', function (Blueprint $table) { $table->id(); $table->integer('valoracion'); $table->unsignedBigInteger('pelicula_id'); $table->foreign('pelicula_id')->references('id')->on('peliculas'); $table->timestamps(); }); Schema::create('peliculas', function (Blueprint $table) { $table->id(); $table->string('titulo', 100); $table->timestamps(); });. A) No hay ningún problema, el orden no importa en migraciones. B) unsignedBigInteger no existe, hay que usar bigInteger. C) La tabla criticas referencia a peliculas pero peliculas se crea después — error de clave foránea. D) Las claves foráneas no se pueden declarar dentro de Schema::create. ¿Qué devuelve Auth::attempt(['email' => $email, 'password' => $pass]) si las credenciales son incorrectas?. A) null. B) false. C) Lanza una excepción AuthException. D) Redirige automáticamente a /login. Dado este controlador, ¿qué ocurre si el usuario envía el formulario con un comentario de 300 caracteres? phppublic function store(Request $request) { $data = $request->validate([ 'valoracion' => 'required|integer|min:1|max:5', 'comentario' => 'required|string|max:255', ]); $c = new Critica(); $c->valoracion = $data['valoracion']; $c->comentario = $data['comentario']; $c->save(); return view('critica_creada', ['critica' => $c]); }. A) La crítica se guarda igualmente porque max:255 es solo una recomendación. B) PHP lanza una excepción que hay que capturar con try/catch. C) Laravel redirige automáticamente a la página anterior con el error de validación. D) El método devuelve false y hay que comprobarlo manualmente. ¿Cuál de estas opciones muestra correctamente en Blade el nombre del usuario autenticado, pero solo si hay sesión activa?. A) @if(Auth::check()) {{ Auth::user()->name }} @endif. B) @auth {{ auth()->name }} @endauth. C) @guest {{ Auth::user()->name }} @endguest. D) {{ Auth::user()->name ?? 'Invitado' }}. Dado este fragmento de una migración, ¿qué ocurre si se intenta borrar una película que tiene críticas asociadas? php$table->unsignedBigInteger('pelicula_id'); $table->foreign('pelicula_id') ->references('id') ->on('peliculas') ->cascadeOnDelete();. A) La película se borra pero las críticas quedan huérfanas en la BD. B) La BD impide borrar la película mientras tenga críticas. C) Las críticas se borran automáticamente al borrar la película. D) Se lanza una excepción ForeignKeyException en PHP. ¿Cuál de las siguientes vistas Blade tiene un error?. @extends('plantillas.base') @section('contenido') <h1>{{ $pelicula->titulo }}</h1> @endsection. @extends('plantillas.base') @section('contenido') <h1>{!! $pelicula->titulo !!}</h1> @endsection. @extends('plantillas.base') @section('contenido') <h1>{{ $pelicula->getTitulo() }}</h1> @endsection. @extends('plantillas.base') @section('contenido') <h1><?= $pelicula->titulo ?></h1> @endsection. |





