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 09: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>

