Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/Introducción»
De WikiEducator
Línea 3: | Línea 3: | ||
{{PHP/Introduccion}} | {{PHP/Introduccion}} | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div id=apuntes_distancia> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ==Introducción a PHP== | ||
+ | <br /> | ||
+ | {{MRM_Objetivos|Title=Sección de introducción a PHP| | ||
+ | * En esta sección veremos qué es el lenguaje PHP y para qué sirve. | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ===Qué es PHP=== | ||
+ | * '''''PHP''''' (acrónimo de PHP: Hypertext Preprocessor) | ||
+ | * PHP es un lenguaje de código abierto, muy popular y con una gran comunidad de soporte en internet que aporta, colabora y resuelve dudas. | ||
+ | * Especialmente adecuado para el desarrollo web (aunque se puede usar en el escritorio, no es su principal propósito). | ||
+ | * Actualmente, la versión estable es la 8.3, pero en el repositorio de Ubuntu está la versión 8.2 recomendada para desarrollo. | ||
+ | * Para más información sobre las nuevas características de PHP: | ||
+ | {{MRM_Recursos de la Web|Title=Características de PHP 8.3| | ||
+ | https://www.php.net/releases/8.3/es.php | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Características de PHP | ||
+ | {{MRM_Resumen|Title=Recuerda| | ||
+ | * '''''En el desarrollo web''''' PHP: | ||
+ | # Se ejecuta en el '''''servidor web'''''. | ||
+ | # Está '''''incrustado en HTML'''''. | ||
+ | # El cliente solo ve '''''el resultado de la ejecución, nunca el código'''''. | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Obtención del lenguaje de marcas para mostrar en el cliente | ||
+ | [[Imagen:procesoPHP.png]] | ||
+ | {{MRM_Puntos clave| | ||
+ | ; El documento PHP, interpretado correctamente en el servidor, produce una página HTML que será enviada al cliente. | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;El servidor en acción | ||
+ | {{MRM_Puntos clave| | ||
+ | ; El código PHP está embebido en documentos HTML, lo cual permite añadir dinamismo fácilmente a un sitio web. | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;El servidor en acción | ||
+ | {{MRM_Puntos clave| | ||
+ | ; El intérprete PHP ignora el texto HTML hasta que encuentra una etiqueta de inicio de código PHP embebido. | ||
+ | * Entonces interpreta las instrucciones hasta el final de la etiqueta y genera la salida correspondiente, que se añade al documento HTML entregado al cliente (si las instrucciones lo requieren). | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ===Restricciones del servidor con PHP=== | ||
+ | * PHP, al ejecutarse del lado del servidor, solo puede acceder a los datos del propio servidor: | ||
+ | ** No puede acceder a los recursos del cliente. | ||
+ | ** No puede saber la hora en el cliente. | ||
+ | ** No puede acceder a los archivos del cliente (excepto mediante Cookies). | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ===Configuraciones=== | ||
+ | ; PHP se puede instalar de dos formas: | ||
+ | * Como un servicio independiente utilizando '''PHP-FPM (FastCGI Process Manager)'''. | ||
+ | * Como un módulo de Apache, usando '''php8.3-mod''' (octubre de 2024). | ||
+ | |||
+ | * Ejecutar PHP como un servicio independiente con PHP-FPM suele ser más eficiente en términos de gestión de memoria, lo cual es preferido en entornos de producción. Esta decisión está más relacionada con la administración de servidores. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Configuración | ||
+ | * Por comodidad, vamos a instalar PHP como un módulo de Apache2 para centralizar el servicio en Apache. | ||
+ | * En entornos de producción, es común instalarlo como servicio independiente (PHP-FPM). | ||
+ | * Si modificamos los archivos de configuración, es necesario reiniciar Apache o Nginx, además del servicio PHP, para aplicar los cambios. | ||
+ | * Al instalar PHP como módulo o servicio independiente, se genera un archivo de configuración ''php.ini'', donde encontramos ''directivas que podemos modificar'', como la configuración de xdebug. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Directivas de PHP.ini | ||
+ | [http://www.php.net/manual/es/ini.list.php Lista de directivas] | ||
+ | ===Versiones de PHP=== | ||
+ | * Historia y evolución del lenguaje: | ||
+ | |||
+ | ;Funciones obsoletas en PHP 5.3.x | ||
+ | [http://php.net/manual/es/migration53.deprecated.php Ver lista de funciones obsoletas] | ||
+ | |||
+ | {{Nota|Las siguientes funciones quedaron obsoletas en PHP 5.3.x (versión de 2009). Aunque ya no recibe soporte, esta información es útil para entender la evolución de PHP.}} | ||
+ | |||
+ | ;Características obsoletas en PHP 7.0.x | ||
+ | [http://php.net/manual/es/migration70.deprecated.php Características obsoletas en PHP 7.0] | ||
+ | [http://php.net/manual/es/migration70.incompatible.php Cambios incompatibles] | ||
+ | |||
+ | ;Nuevas funcionalidades en PHP 7.4 | ||
+ | [http://php.net/manual/es/migration74.new-features.php PHP 7.4: mejoras] | ||
+ | |||
+ | ;Nuevas funcionalidades en PHP 8.0 | ||
+ | * PHP 8.0 introdujo el compilador ''Just-in-time'' (JIT), ''union types'' y ''named arguments''. | ||
+ | [http://php.net/manual/es/migration80.new-features.php PHP 8.0: mejoras] | ||
+ | |||
+ | ;Nuevas funcionalidades en PHP 8.1 | ||
+ | * Incluye ''fibers'', ''readonly properties'' y ''array unpacking con claves''. | ||
+ | [http://php.net/manual/es/migration81.new-features.php PHP 8.1: mejoras] | ||
+ | |||
+ | ;Nuevas funcionalidades en PHP 8.2 | ||
+ | * PHP 8.2 añade ''readonly classes'' y ''disjunctive normal form types''. | ||
+ | [http://php.net/manual/es/migration82.new-features.php PHP 8.2: mejoras] | ||
+ | |||
+ | ;Nuevas funcionalidades en PHP 8.3 | ||
+ | * PHP 8.3 introduce ''json_validate()'', acceso a ''fetch properties of enum cases'' y mejoras en rendimiento. | ||
+ | [https://php.watch/versions/8.3 Más sobre PHP 8.3] | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
+ | ==== Resumen de nuevas funcionalidades ==== | ||
+ | |||
+ | ;PHP 7.4 | ||
+ | * ''Arrow functions'': simplifica funciones anónimas. | ||
+ | * ''Typed properties'': añade tipos a propiedades de clase. | ||
+ | * ''Spread operator en arrays'': facilita la combinación de arrays. | ||
+ | |||
+ | ;PHP 8.0 | ||
+ | * ''JIT'': mejora de rendimiento. | ||
+ | * ''Union types'': permite múltiples tipos de datos. | ||
+ | * ''Named arguments'': paso de parámetros por nombre. | ||
+ | |||
+ | ;PHP 8.1 | ||
+ | * ''Fibers'': concurrencia sin hilos. | ||
+ | * ''Readonly properties'': propiedades inmutables. | ||
+ | * ''Array unpacking con claves'': expansión de arrays con claves asociativas. | ||
+ | |||
+ | ;PHP 8.2 | ||
+ | * ''Dynamic properties deprecated'': propiedades dinámicas obsoletas. | ||
+ | * ''Readonly classes'': clases inmutables. | ||
+ | * ''Disjunctive normal form types'': más flexibilidad en tipos de unión. | ||
+ | |||
+ | ;PHP 8.3 | ||
+ | * ''json_validate()'': validación JSON. | ||
+ | * ''Fetch properties of enum cases'' y optimizaciones adicionales. | ||
+ | |||
+ | </div> | ||
+ | |||
+ | ===Cómo escribir PHP=== | ||
+ | *Dentro de páginas HTML: | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | // Instrucciones de PHP aquí | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | * Utilizaremos este estilo para escribir código. | ||
+ | * Estilos obsoletos eliminados en PHP 7.0.0: | ||
+ | {{MRM_Resumen|Title=Estilos obsoletos| | ||
+ | * En la versión 7.0.0 de PHP se eliminaron: | ||
+ | # '''<nowiki><%, %> (estilo ASP)</nowiki>''' | ||
+ | # '''<nowiki><%= (echo abreviado)</nowiki>''' | ||
+ | # '''<nowiki><script language=""></nowiki> (etiqueta <script>)''' }} | ||
+ | |||
+ | * Guardamos el archivo con extensión .php para que el servidor interprete el código. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | {{MRM_Actividad|Title=Probando primer programa| | ||
+ | {{MRM_Resumen|Title=Información| Existe una función llamada '''''phpinfo()'''''. Vamos a probarla y ver la información que genera.}} | ||
+ | * Crea un programa en PHP que ejecute la función '''''phpinfo()'''''. | ||
+ | {{Plegable|hide|Primer programa| | ||
+ | <source lang=php> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title></title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | </source> | ||
+ | }} | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | {{MRM_Actividad|Title=Probando la extensión| | ||
+ | ; Verifica qué ocurre si el archivo no tiene la extensión .php | ||
+ | }} | ||
+ | </div> | ||
</div> | </div> |
Revisión de 22:42 1 nov 2024
Cómo escribir PHP
- Dentro de páginas HTML:
<?php // Instrucciones de PHP aquí ?>
- Utilizaremos este estilo para escribir código.
- Estilos obsoletos eliminados en PHP 7.0.0:
|
- Guardamos el archivo con extensión .php para que el servidor interprete el código.
</div>