Diferencia entre revisiones de «Plantilla:PHP/Introduccion»
De WikiEducator
(→Introducción a PHP) |
(→Cómo escribir PHP) |
||
(36 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
− | <div | + | {{#widget:Slides}} |
− | + | <div class="slides layout-regular template-default"> | |
<div class="slide"> | <div class="slide"> | ||
==Introducción a PHP== | ==Introducción a PHP== | ||
− | + | </div> | |
<div class="slide"> | <div class="slide"> | ||
===Qué es php=== | ===Qué es php=== | ||
Línea 12: | Línea 12: | ||
*Muy popular (Podríamos pensar en un estándar?), una gran comunidad de soporte en internet que aporta, colabora y soluciona dudas | *Muy popular (Podríamos pensar en un estándar?), una gran comunidad de soporte en internet que aporta, colabora y soluciona dudas | ||
*Especialmente adecuado para desarrollo web (Se puede usar como lenguaje de escritorio, pero no es su principal propósito). | *Especialmente adecuado para desarrollo web (Se puede usar como lenguaje de escritorio, pero no es su principal propósito). | ||
− | * | + | *La versión actualizada (Noviembre 2024) es la 8.3. Es considerada versión estable |
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Versión de php | ||
*En el repositorio de ubuntu está especificada igualmente la versión 8.2,y se recomienda usarla como versión para desarrollo | *En el repositorio de ubuntu está especificada igualmente la versión 8.2,y se recomienda usarla como versión para desarrollo | ||
*Ver las nuevas características de php | *Ver las nuevas características de php | ||
Línea 43: | Línea 47: | ||
{{MRM_Puntos clave| | {{MRM_Puntos clave| | ||
;El código PHP está embebido en documentos HTML, | ;El código PHP está embebido en documentos HTML, | ||
− | ;Esto permite introducir dinamismo | + | ;Esto permite introducir dinamismo en las páginas web, lógicamente en el servidor. |
}} | }} | ||
</div> | </div> | ||
Línea 68: | Línea 72: | ||
<div class="slide"> | <div class="slide"> | ||
===Configuraciones=== | ===Configuraciones=== | ||
− | ; | + | ;PHP se puede instalar de dos formas: |
− | *Un servicio independiente utilizando | + | *Un servicio independiente utilizando '''PHP-FPM''' (FastCGI Process Manager) |
− | *Un módulo de Apache, usando | + | *Un módulo de Apache, usando '''php8.3-mod''' (noviembre del 2024). |
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;Configuraciones | ||
*Ejecutar '''PHP''' como un servicio independiente con '''PHP-FPM''' suele ser más eficiente en términos de gestión de memoria, lo que lo convierte en una elección preferida para entornos de producción. Esta decisión está más relacionada con la administración de servidores que con el desarrollo en sí. | *Ejecutar '''PHP''' como un servicio independiente con '''PHP-FPM''' suele ser más eficiente en términos de gestión de memoria, lo que lo convierte en una elección preferida para entornos de producción. Esta decisión está más relacionada con la administración de servidores que con el desarrollo en sí. | ||
</div> | </div> | ||
+ | |||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | ; | + | ;Configuración |
*Por comodidad, vamos a '''instalar PHP como un módulo de Apache2''', ya que esto permite tener todo centrado en el servicio de Apache. | *Por comodidad, vamos a '''instalar PHP como un módulo de Apache2''', ya que esto permite tener todo centrado en el servicio de Apache. | ||
*Sin embargo, en entornos de producción, es común instalarlo como un servicio independiente (PHP-FPM). | *Sin embargo, en entornos de producción, es común instalarlo como un servicio independiente (PHP-FPM). | ||
*En este caso, cuando se hacen cambios en los archivos de configuración, es necesario reiniciar tanto el servicio de Apache o Nginx (según el servidor utilizado) como el servicio de PHP de manera independiente. | *En este caso, cuando se hacen cambios en los archivos de configuración, es necesario reiniciar tanto el servicio de Apache o Nginx (según el servidor utilizado) como el servicio de PHP de manera independiente. | ||
− | + | </div> | |
− | + | ||
+ | <div class="slide"> | ||
+ | ;Configuraciones | ||
+ | *En cualquier caso, al instalar PHP, ya sea como un módulo de Apache o como un servicio independiente, se genera un archivo de configuración , donde encontramos ''diversas directivas que podemos modificar''. | ||
+ | * Un ejemplo de esto es la configuración de xdebug que se ajusta en el archivo php.ini. | ||
</div> | </div> | ||
Línea 88: | Línea 100: | ||
;Directivas de PHP.ini | ;Directivas de PHP.ini | ||
http://www.php.net/manual/es/ini.list.php | http://www.php.net/manual/es/ini.list.php | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
===Versiones de PHP=== | ===Versiones de PHP=== | ||
*Vamos a ver un poco de historia y evolución | *Vamos a ver un poco de historia y evolución | ||
Línea 94: | Línea 109: | ||
http://php.net/manual/es/migration53.deprecated.php | http://php.net/manual/es/migration53.deprecated.php | ||
{{Nota|Las siguientes funciones quedaron obsoletas en PHP 5.3.x (versión lanzada en 2009). Aunque esta versión ya no recibe soporte oficial, esta información puede resultar interesante para entender la evolución del lenguaje.}} | {{Nota|Las siguientes funciones quedaron obsoletas en PHP 5.3.x (versión lanzada en 2009). Aunque esta versión ya no recibe soporte oficial, esta información puede resultar interesante para entender la evolución del lenguaje.}} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Características obsoletas en PHP 7.0.x | ;Características obsoletas en PHP 7.0.x | ||
http://php.net/manual/es/migration70.deprecated.php | http://php.net/manual/es/migration70.deprecated.php | ||
http://php.net/manual/es/migration70.incompatible.php | http://php.net/manual/es/migration70.incompatible.php | ||
− | + | </div> | |
− | + | ||
− | + | ||
+ | <div class="slide"> | ||
;Nuevas funcionalidades en PHP 7.4 | ;Nuevas funcionalidades en PHP 7.4 | ||
Línea 111: | Línea 127: | ||
http://php.net/manual/es/migration74.new-features.php | http://php.net/manual/es/migration74.new-features.php | ||
}} | }} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Nuevas funcionalidades en PHP 8.0 | ;Nuevas funcionalidades en PHP 8.0 | ||
Línea 119: | Línea 137: | ||
''Principales mejoras'': PHP 8.1 agregó nuevas funcionalidades como ''fibers'' (para mejorar la concurrencia), ''readonly properties'' (propiedades de solo lectura) y ''array unpacking con claves''. | ''Principales mejoras'': PHP 8.1 agregó nuevas funcionalidades como ''fibers'' (para mejorar la concurrencia), ''readonly properties'' (propiedades de solo lectura) y ''array unpacking con claves''. | ||
http://php.net/manual/es/migration81.new-features.php | http://php.net/manual/es/migration81.new-features.php | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;Nuevas funcionalidades en PHP 8.2 | ;Nuevas funcionalidades en PHP 8.2 | ||
''Principales mejoras'': PHP 8.2 introdujo mejoras como la eliminación de la ''dynamic properties'', la nueva clase ''readonly classes'', y la compatibilidad con ''disjunctive normal form types''. | ''Principales mejoras'': PHP 8.2 introdujo mejoras como la eliminación de la ''dynamic properties'', la nueva clase ''readonly classes'', y la compatibilidad con ''disjunctive normal form types''. | ||
http://php.net/manual/es/migration82.new-features.php | http://php.net/manual/es/migration82.new-features.php | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
;Nuevas funcionalidades en PHP 8.3 | ;Nuevas funcionalidades en PHP 8.3 | ||
Línea 129: | Línea 152: | ||
https://www.php.net/releases/8_3_0.php | https://www.php.net/releases/8_3_0.php | ||
</div> | </div> | ||
− | |||
− | |||
+ | <div class="slide"> | ||
==== Resumen de nuevas funcionalidades ==== | ==== Resumen de nuevas funcionalidades ==== | ||
Línea 138: | Línea 160: | ||
* Typed properties (propiedades tipadas): agregando tipos a propiedades de clases. | * Typed properties (propiedades tipadas): agregando tipos a propiedades de clases. | ||
* Spread operator en arrays: para combinar arrays de manera más fácil. | * Spread operator en arrays: para combinar arrays de manera más fácil. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;PHP 8.0 | ;PHP 8.0 | ||
Línea 143: | Línea 167: | ||
* Union types: permite a las funciones aceptar múltiples tipos de datos. | * Union types: permite a las funciones aceptar múltiples tipos de datos. | ||
* Named arguments: los parámetros pueden pasarse por nombre. | * Named arguments: los parámetros pueden pasarse por nombre. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;PHP 8.1 | ;PHP 8.1 | ||
Línea 148: | Línea 174: | ||
* Readonly properties: propiedades de clase que solo pueden establecerse una vez. | * Readonly properties: propiedades de clase que solo pueden establecerse una vez. | ||
* Array unpacking con claves: expansión de arrays con claves asociativas. | * Array unpacking con claves: expansión de arrays con claves asociativas. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;PHP 8.2 | ;PHP 8.2 | ||
* Dynamic properties deprecated: las propiedades dinámicas son ahora obsoletas. | * Dynamic properties deprecated: las propiedades dinámicas son ahora obsoletas. | ||
* Readonly classes: clases completamente de solo lectura. | * Readonly classes: clases completamente de solo lectura. | ||
* Disjunctive normal form types: más flexibilidad en tipos de unión. | * Disjunctive normal form types: más flexibilidad en tipos de unión. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
;PHP 8.3 | ;PHP 8.3 | ||
* json_validate(): para validar datos JSON. | * json_validate(): para validar datos JSON. | ||
* Fetch properties of enum cases: permite acceder a propiedades de las enumeraciones. | * Fetch properties of enum cases: permite acceder a propiedades de las enumeraciones. | ||
* Mejoras en rendimiento y optimización. | * Mejoras en rendimiento y optimización. | ||
− | |||
− | |||
</div> | </div> | ||
− | + | <div class="slide"> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Cómo escribir PHP=== | ===Cómo escribir PHP=== | ||
*Dentro de páginas html | *Dentro de páginas html | ||
Línea 190: | Línea 200: | ||
*Nosotros siempre usaremos este estilo para escribir código | *Nosotros siempre usaremos este estilo para escribir código | ||
*Otros estilos anteriormente permitido están en desuso o no permitidos | *Otros estilos anteriormente permitido están en desuso o no permitidos | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
{{MRM_Resumen|Title=Estilo actualmente descatalogados| | {{MRM_Resumen|Title=Estilo actualmente descatalogados| | ||
*En la versión 7.0.0 de php se eliminan(Desaconsejan) las etiquetas siguientes: | *En la versión 7.0.0 de php se eliminan(Desaconsejan) las etiquetas siguientes: | ||
Línea 196: | Línea 210: | ||
#'''''<nowiki>y la etiqueta de script <script language=""</nowiki>'''''></script> | #'''''<nowiki>y la etiqueta de script <script language=""</nowiki>'''''></script> | ||
}} | }} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
*Guardamos el fichero con extensión .php | *Guardamos el fichero con extensión .php | ||
**Así sabemos que el interprete php tiene que ejecutar código | **Así sabemos que el interprete php tiene que ejecutar código | ||
Línea 206: | Línea 222: | ||
*Vamos a probarla y ver la información que genera}} | *Vamos a probarla y ver la información que genera}} | ||
*Haz un programa que en php que ejecute la función '''''phpinfo()''''' | *Haz un programa que en php que ejecute la función '''''phpinfo()''''' | ||
+ | }} | ||
{{Plegable|hide|Primer programa| | {{Plegable|hide|Primer programa| | ||
<source lang=php> | <source lang=php> | ||
− | |||
<html> | <html> | ||
<head> | <head> | ||
Línea 222: | Línea 238: | ||
</source> | </source> | ||
}} | }} | ||
− | + | ||
+ | |||
+ | |||
</div> | </div> | ||
− | |||
+ | <div class="slide"> | ||
{{MRM_Actividad|Title=Probando la extensión| | {{MRM_Actividad|Title=Probando la extensión| | ||
;Verifica a ver qué ocurre si la extensión del fichero no es php | ;Verifica a ver qué ocurre si la extensión del fichero no es php | ||
}} | }} | ||
</div> | </div> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
</div> | </div> |