DWES - U4,U5,U6,U7
|
|
Título del Test:
![]() DWES - U4,U5,U6,U7 Descripción: DAW - IES AGUADULCE |



| Comentarios |
|---|
NO HAY REGISTROS |
|
{ "require": { "smarty/smarty": "^4.5.0" }, "autoload": { "psr-4": { "TIENDA\\": "app/" } } } Dado el FRAGMENTO, ¿en qué carpeta del proyecto se almacenaría el archivo Producto.php perteneciente al espacio de nombres TIENDA\modelos?. src/modelos/Producto.php. app/TIENDA/modelos/Producto.php. app/modelos/Producto.php. TIENDA/modelos/Producto.php. { "require": { "smarty/smarty": "^4.5.0" }, "autoload": { "psr-4": { "TIENDA\\": "app/" } } } require __DIR__.'/vendor/autoload.php'; use TIENDA\controladores\extra\ProductoController; use TIENDA\modelos\Producto; $smarty = new Smarty; $smarty->setTemplateDir(__DIR__.'/vistas/templates'); $smarty->setCompileDir(__DIR__.'/vistas/compiled'); $smarty->setCacheDir(__DIR__.'/vistas/cache'); switch($_GET['accion'] ?? '') { case 'listar': ProductoController::listar($smarty); break; case 'crear': ProductoController::crear($smarty); break; default: Menu::mostrar($smarty); break; } Dado el FRAGMENTO D1 y D2, ¿qué habría que añadir en el FRAGMENTO D2 para poder usar la clase Menu si dicha clase está en el directorio app/ directamente (sin subdirectorios)?. use TIENDA\controladores\extra\Menu;. use TIENDA\Menu;. use app\Menu;. use TIENDA\modelos\Menu;. ¿Qué namespace debería declarar el archivo ProductoController.php sabiendo que está en app/controladores/extra/?. namespace TIENDA\controladores;. namespace TIENDA\app\controladores\extra;. namespace TIENDA\controladores\extra;. namespace controladores\extra;. { "require": { "smarty/smarty": "^4.5.0" }, "autoload": { "psr-4": { "TIENDA\\": "app/" } } } Dado el FRAGMENTO D1 y suponiendo que está correctamente guardado como composer.json, ¿qué comando instala Smarty y genera el autoloader?. composer update smarty/smarty. composer require smarty/smarty. composer install. php artisan install. //... use TIENDA\modelos\Producto; class ProductoController { public static function listar(\Smarty $smarty) { /*...*/ } public static function crear(\Smarty $smarty) { $nombre = filter_input(INPUT_POST, 'nombre'); $precio = filter_input(INPUT_POST, 'precio'); if ($nombre && $precio && is_numeric($precio)) { $p = new Producto($nombre, $precio); $smarty->assign('producto', $p->getNombre()); } $smarty->display('resultado.tpl'); } } Dado el FRAGMENTO D3, ¿cómo sería el constructor correcto de la clase Producto?. public function Producto($nombre, $precio) { ... }. public function __construct($nombre, $precio) { $this->nombre=$nombre; $this->precio=$precio; }. public __construct(string $nombre, float $precio) { ... }. public static function __construct($nombre, $precio) { ... }. //... use TIENDA\modelos\Producto; class ProductoController { public static function listar(\Smarty $smarty) { /*...*/ } public static function crear(\Smarty $smarty) { $nombre = filter_input(INPUT_POST, 'nombre'); $precio = filter_input(INPUT_POST, 'precio'); if ($nombre && $precio && is_numeric($precio)) { $p = new Producto($nombre, $precio); $smarty->assign('producto', $p->getNombre()); } $smarty->display('resultado.tpl'); } } En el FRAGMENTO D3, si $p->getNombre() no se ejecuta por no cumplirse las condiciones del if, ¿cuál sería la sintaxis Smarty correcta para evitar error en la plantilla?. @if(isset($producto)) {{$producto}} @endif. {if $producto}{$producto}{/if}. {if isset($producto)}{$producto}{/if}. <?php if(isset($producto)) echo $producto; ?>. require __DIR__.'/vendor/autoload.php'; use TIENDA\controladores\extra\ProductoController; use TIENDA\modelos\Producto; $smarty = new Smarty; $smarty->setTemplateDir(__DIR__.'/vistas/templates'); $smarty->setCompileDir(__DIR__.'/vistas/compiled'); $smarty->setCacheDir(__DIR__.'/vistas/cache'); switch($_GET['accion'] ?? '') { case 'listar': ProductoController::listar($smarty); break; case 'crear': ProductoController::crear($smarty); break; default: Menu::mostrar($smarty); break; } --------------------------------------------------------------------------------------------------------------------------- use TIENDA\modelos\Producto; class ProductoController { public static function listar(\Smarty $smarty) { /*...*/ } public static function crear(\Smarty $smarty) { $nombre = filter_input(INPUT_POST, 'nombre'); $precio = filter_input(INPUT_POST, 'precio'); if ($nombre && $precio && is_numeric($precio)) { $p = new Producto($nombre, $precio); $smarty->assign('producto', $p->getNombre()); } $smarty->display('resultado.tpl'); } } ¿Cuál de los FRAGMENTOS D2 y D3 actúa como controlador en el patrón MVC y por qué?. D2, porque contiene toda la lógica de negocio y las operaciones sobre los datos. D3, porque recibe las peticiones, usa el modelo y pasa datos a la vista. D2, porque es el que decide qué acción ejecutar según la petición recibida, actuando como router/front controller. Ninguno, el controlador sería la clase Producto. //... use TIENDA\modelos\Producto; class ProductoController { public static function listar(\Smarty $smarty) { /*...*/ } public static function crear(\Smarty $smarty) { $nombre = filter_input(INPUT_POST, 'nombre'); $precio = filter_input(INPUT_POST, 'precio'); if ($nombre && $precio && is_numeric($precio)) { $p = new Producto($nombre, $precio); $smarty->assign('producto', $p->getNombre()); } $smarty->display('resultado.tpl'); } } Dado el FRAGMENTO D3, dentro del método crear, ¿cómo sería el método getNombre() de la clase Producto?. public static function getNombre() { return static::$nombre; }. public function getNombre() { return $this->nombre; }. public function getNombre($nombre) { return $nombre; }. public function get($campo) { return $this->$campo; }. |





