Diferencia entre revisiones de «Supuestos PHP»
Ir a la navegación
Ir a la búsqueda
(Página creada con «= Implementación de patrones = == Singleton == :::<syntaxhighlight lang="php" line enclose="div" highlight="" > <?php class Singleton { private static $instancia =…») |
|||
| (No se muestran 4 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
| − | = Implementación de | + | * [[Programar alta e listaxe contra base de datos]]. EXERCICIO 1.1 de A1 Xuño 2022 |
| + | * [[Programar login para comprobar credenciais contra baase de datos]]. EXERCICIO 1.2 de A1 Xuño 2022 | ||
| + | * [[Programar empregando array asociativo]]. EXERCICIO 1.3 de A1 Xuño 2022 | ||
| + | |||
| + | = Expresións regulares = | ||
| + | {| class="wikitable" | ||
| + | ! Expresión | ||
| + | ! Patrón | ||
| + | |- | ||
| + | | Código Postal | ||
| + | | ^\d{5}$ | ||
| + | |- | ||
| + | | NIF | ||
| + | | ^\d{8}[TRWAGMYFPDXBNJZSQVHLCKE]$ | ||
| + | |- | ||
| + | | Matrículas (novas) | ||
| + | | ^\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}$ | ||
| + | |- | ||
| + | | N.º entero positivo | ||
| + | | ^\d+$ | ||
| + | |- | ||
| + | | N.º entero con signo | ||
| + | | ^[+\-]?\d+$ | ||
| + | |- | ||
| + | | Nº real con ata 4 decimais | ||
| + | | ^\d*[\.,]?\d{0,4}$ deixando todo opcional encaixaría “” ! | ||
| + | |- | ||
| + | | Nº do día da semana | ||
| + | | ^[1-7]$ | ||
| + | |- | ||
| + | | Nº do mes | ||
| + | | ^([12]?\d)|(3[01])$ | ||
| + | |- | ||
| + | | Hora | ||
| + | | ^(1?\d)|(2[0-3])$ | ||
| + | |- | ||
| + | | Minutos (ou segundos) | ||
| + | | ^[1-5]?\d$ | ||
| + | |- | ||
| + | | Ficheiro con extensión de imaxe | ||
| + | | .\.(gif|png|jpe?g)$ | ||
| + | |- | ||
| + | | IP | ||
| + | | ^([01]?\d?\d|2[0-4]\d|25[0-5])(\.[01]?\d?\d|2[0-4]\d|25[0-5]){3}$ | ||
| + | |- | ||
| + | | Correo electrónico | ||
| + | | ^.+@.+\.([\da-zA-Z]){2,}$ | ||
| + | |} | ||
| + | |||
| + | = Servizos web = | ||
| + | == Con SOAP == | ||
| + | |||
| + | == Con REST == | ||
| + | |||
| + | = Cesta da compra = | ||
| + | Aplicación web con con autenticación de usuarios e cesta da compra onde se poden mercar produtos agrupados por categorías. | ||
| + | A información da cesta almacénasa en sesión (pares codProducto / cantidad) | ||
| + | Pódese seleccionar a opción Mercar ó finalizar a compra: insertaranse os rexistros adecuados nas taboas pedidos e lineaspedido. | ||
| + | |||
| + | NOTA: produtos, cesta e mercar están repartidos nos cartafois M (modelos), V(vistas) e no controlador | ||
| + | :::<syntaxhighlight lang="php" line enclose="div" highlight="" > | ||
| + | // index.php login | ||
| + | |||
| + | // agregar.php script que incrementa/decrementa as cantidades dun produto | ||
| + | |||
| + | // eliminar.php elimina un produto da cesta (da sesión) | ||
| + | |||
| + | // mercar.php inserta o pedido na BD | ||
| + | |||
| + | // productos.php selección categoría/productos con posibilidade de enviar unidades á cesta | ||
| + | |||
| + | // cesta.php visualización da cesta con posibilidade de cambiar unidades e eliminar | ||
| + | |||
| + | // autentificación.php se non é un usuario autenticado destrue a sesión e redirixe á pantalla de login | ||
| + | |||
| + | // conexión.php conecta coa BD | ||
| + | |||
| + | // cerrarSesion.php destrue a sesión e volve á pantalla de login | ||
| + | |||
| + | = Implementación de patróns = | ||
== Singleton == | == Singleton == | ||
:::<syntaxhighlight lang="php" line enclose="div" highlight="" > | :::<syntaxhighlight lang="php" line enclose="div" highlight="" > | ||
| Línea 6: | Línea 85: | ||
{ | { | ||
private static $instancia = null; | private static $instancia = null; | ||
| − | // Constructor privado | + | // Constructor privado: non accesible desde fóra e tamén anulamos o constructor por defecto |
private function __construct() {} | private function __construct() {} | ||
| Línea 18: | Línea 97: | ||
} | } | ||
$singleton=Singleton::getInstance(); | $singleton=Singleton::getInstance(); | ||
| − | //$singleton=new Singleton(); daría | + | //$singleton=new Singleton(); daría erro xa que o constructor é privado |
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión actual del 19:05 30 jul 2022
- Programar alta e listaxe contra base de datos. EXERCICIO 1.1 de A1 Xuño 2022
- Programar login para comprobar credenciais contra baase de datos. EXERCICIO 1.2 de A1 Xuño 2022
- Programar empregando array asociativo. EXERCICIO 1.3 de A1 Xuño 2022
Expresións regulares
| Expresión | Patrón |
|---|---|
| Código Postal | ^\d{5}$ |
| NIF | ^\d{8}[TRWAGMYFPDXBNJZSQVHLCKE]$ |
| Matrículas (novas) | ^\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}$ |
| N.º entero positivo | ^\d+$ |
| N.º entero con signo | ^[+\-]?\d+$ |
| Nº real con ata 4 decimais | ^\d*[\.,]?\d{0,4}$ deixando todo opcional encaixaría “” ! |
| Nº do día da semana | ^[1-7]$ |
| Nº do mes | (3[01])$ |
| Hora | (2[0-3])$ |
| Minutos (ou segundos) | ^[1-5]?\d$ |
| Ficheiro con extensión de imaxe | png|jpe?g)$ |
| IP | 2[0-4]\d|25[0-5])(\.[01]?\d?\d|2[0-4]\d|25[0-5]){3}$ |
| Correo electrónico | ^.+@.+\.([\da-zA-Z]){2,}$ |
Servizos web
Con SOAP
Con REST
Cesta da compra
Aplicación web con con autenticación de usuarios e cesta da compra onde se poden mercar produtos agrupados por categorías. A información da cesta almacénasa en sesión (pares codProducto / cantidad) Pódese seleccionar a opción Mercar ó finalizar a compra: insertaranse os rexistros adecuados nas taboas pedidos e lineaspedido.
NOTA: produtos, cesta e mercar están repartidos nos cartafois M (modelos), V(vistas) e no controlador
1 // index.php login 2 3 // agregar.php script que incrementa/decrementa as cantidades dun produto 4 5 // eliminar.php elimina un produto da cesta (da sesión) 6 7 // mercar.php inserta o pedido na BD 8 9 // productos.php selección categoría/productos con posibilidade de enviar unidades á cesta 10 11 // cesta.php visualización da cesta con posibilidade de cambiar unidades e eliminar 12 13 // autentificación.php se non é un usuario autenticado destrue a sesión e redirixe á pantalla de login 14 15 // conexión.php conecta coa BD 16 17 // cerrarSesion.php destrue a sesión e volve á pantalla de login 18 19 = Implementación de patróns = 20 == Singleton == 21 :::<syntaxhighlight lang="php" line enclose="div" highlight="" > 22 <?php 23 class Singleton 24 { 25 private static $instancia = null; 26 // Constructor privado: non accesible desde fóra e tamén anulamos o constructor por defecto 27 private function __construct() {} 28 29 private function __clone() {} // evitamos clonados 30 31 public static function getInstance() { 32 if (is_null(self::$instancia)) 33 self::$instancia = new Singleton(); 34 return self::$instancia; 35 } 36 } 37 $singleton=Singleton::getInstance(); 38 //$singleton=new Singleton(); daría erro xa que o constructor é privado