Diferencia entre revisiones de «Plantilla:PHP/Introduccion»
De WikiEducator
| (29 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 1: | Línea 1: | ||
{{#widget:Slides}} | {{#widget:Slides}} | ||
<div class="slides layout-regular template-default"> | <div class="slides layout-regular template-default"> | ||
| + | __NOTOC__ | ||
<div class="slide"> | <div class="slide"> | ||
| − | ==Introducción a PHP | + | <span id=indice></span> |
| + | <div class="toc"> | ||
| + | <div class="toctitle"><h3>Contenido</h3></div> | ||
| + | <ul> | ||
| + | <li>[[#introduccion|1 Introducción a PHP]]</li> | ||
| + | <ul> | ||
| + | <li>[[#que_es_php|1.1 Qué es PHP]]</li> | ||
| + | <li>[[#restricciones|1.2 Restricciones del servidor con PHP]]</li> | ||
| + | <li>[[#configuraciones|1.3 Configuraciones]]</li> | ||
| + | <li>[[#versiones|1.4 Versiones de PHP]]</li> | ||
| + | <li>[[#resumen_funcionalidades|1.5 Resumen de nuevas funcionalidades]]</li> | ||
| + | <li>[[#php84|1.6 PHP 8.4 (Versión actual- Octubre 2025)]]</li> | ||
| + | <li>[[#como_escribir|1.7 Cómo escribir PHP]]</li> | ||
| + | </ul> | ||
| + | </ul> | ||
</div> | </div> | ||
| + | </div > | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <div class="slide"> | ||
| + | <span id="introduccion"></span> | ||
| + | ==Introducción a PHP [[#indice|(↑ volver al índice)]]== | ||
| + | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===Qué es php=== | + | <span id="que_es_php"></span> |
| + | ===Qué es php [[#indice|(↑ volver al índice)]]=== | ||
*'''''PHP''''' (acrónimo de PHP: Hypertext Preprocessor) | *'''''PHP''''' (acrónimo de PHP: Hypertext Preprocessor) | ||
De php podríamos decir | De php podríamos decir | ||
| Línea 61: | Línea 87: | ||
<div class="slide"> | <div class="slide"> | ||
| − | + | <span id="restricciones"> | |
| − | ===Restricciones del servidor con php=== | + | ===Restricciones del servidor con php [[#indice|(↑ volver al índice)]]=== |
| + | </span> | ||
*Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor. | *Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor. | ||
**No puede acceder a los recursos del cliente | **No puede acceder a los recursos del cliente | ||
| Línea 71: | Línea 98: | ||
<div class="slide"> | <div class="slide"> | ||
| − | ===Configuraciones=== | + | <span id="configuraciones"></span> |
| − | ; | + | ===Configuraciones [[#indice|(↑ volver al índice)]]=== |
| − | *Un servicio independiente utilizando | + | ;PHP se puede instalar de dos formas: |
| − | *Un módulo de Apache, usando | + | *Un servicio independiente utilizando '''PHP-FPM''' (FastCGI Process Manager) |
| + | *Un módulo de Apache, usando '''php8.3-mod''' (noviembre del 2024). | ||
</div> | </div> | ||
| Línea 81: | Línea 109: | ||
*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"> | ||
| Línea 89: | Línea 119: | ||
</div> | </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 class="slide"> | ||
| + | ;Directivas de PHP.ini | ||
| + | http://www.php.net/manual/es/ini.list.php | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | <span id="versiones"></span> | ||
| + | ===Versiones de PHP [[#indice|(↑ volver al índice)]]=== | ||
| + | |||
| + | *Vamos a ver un poco de historia y evolución | ||
| + | |||
| + | ;Funciones que quedaron obsoletas en PHP 5.3.x | ||
| + | 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.}} | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ;Características obsoletas en PHP 7.0.x | ||
| + | http://php.net/manual/es/migration70.deprecated.php | ||
| + | http://php.net/manual/es/migration70.incompatible.php | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ;Nuevas funcionalidades en PHP 7.4 | ||
| + | |||
| + | ;''Principales mejoras''. Las nuevas características introducidas en PHP 7.4 incluyen: | ||
| + | * la asignación de valores mediante ''arrow functions'', | ||
| + | * ''typed properties'' (propiedades tipadas), | ||
| + | * ''spread operator'' en arrays, entre otras. | ||
| + | {{MRM_Web| | ||
| + | http://php.net/manual/es/migration74.new-features.php | ||
| + | }} | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ;Nuevas funcionalidades en PHP 8.0 | ||
| + | ''Principales mejoras'': PHP 8.0 trajo grandes cambios, como el compilador ''Just-in-time'' (JIT), ''union types'' (tipos de unión), y la característica de ''named arguments'' (argumentos nombrados), permitiendo más flexibilidad en la llamada a funciones. | ||
| + | http://php.net/manual/es/migration80.new-features.php | ||
| + | |||
| + | ;Nuevas funcionalidades en PHP 8.1 | ||
| + | ''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 | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ;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''. | ||
| + | http://php.net/manual/es/migration82.new-features.php | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
| + | ;Nuevas funcionalidades en PHP 8.3 | ||
| + | ''Principales mejoras'': PHP 8.3 incluye mejoras como las funciones ''json_validate()'', los ''fetch properties of enum cases'', y optimizaciones adicionales en el rendimiento. | ||
| + | https://php.watch/versions/8.3 | ||
| + | https://www.php.net/releases/8_3_0.php | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | <span id="resumen_funcionalidades"></span> | ||
| + | === Resumen de nuevas funcionalidades [[#indice|(↑ volver al índice)]]=== | ||
| + | ;PHP 7.4 | ||
| + | * Arrow functions (funciones flecha): para simplificar las funciones anónimas. | ||
| + | * Typed properties (propiedades tipadas): agregando tipos a propiedades de clases. | ||
| + | * Spread operator en arrays: para combinar arrays de manera más fácil. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ;PHP 8.0 | ||
| + | * JIT (Just-in-time compiler): mejora significativa de rendimiento. | ||
| + | * Union types: permite a las funciones aceptar múltiples tipos de datos. | ||
| + | * Named arguments: los parámetros pueden pasarse por nombre. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ;PHP 8.1 | ||
| + | * Fibers: permite concurrencia sin threads. | ||
| + | * Readonly properties: propiedades de clase que solo pueden establecerse una vez. | ||
| + | * Array unpacking con claves: expansión de arrays con claves asociativas. | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ;PHP 8.2 | ||
| + | * Dynamic properties deprecated: las propiedades dinámicas son ahora obsoletas. | ||
| + | * Readonly classes: clases completamente de solo lectura. | ||
| + | * Disjunctive normal form types: más flexibilidad en tipos de unión. | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ;PHP 8.3 | ||
| + | * json_validate(): para validar datos JSON. | ||
| + | * Fetch properties of enum cases: permite acceder a propiedades de las enumeraciones. | ||
| + | * Mejoras en rendimiento y optimización. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | <span id="php84"></span> | ||
| + | === PHP 8.4 (Versión actual- Octubre 2025) [[#indice|(↑ volver al índice)]]=== | ||
| + | * '''''Property hooks (`get` / `set`):''''' permiten asociar lógica directamente a la lectura y escritura de propiedades. | ||
| + | * '''''Visibilidad asimétrica (`public private(set)`):''''' distinta visibilidad para lectura y escritura de propiedades. | ||
| + | * '''''Nueva API de números aleatorios:''''' generación de números aleatorios más segura y consistente. | ||
| + | * '''''Deprecaciones y limpieza:''''' eliminación de comportamientos heredados y mejoras de rendimiento en el núcleo. | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | <span id="como_escribir"></span> | ||
| + | ===Cómo escribir PHP [[#indice|(↑ volver al índice)]]=== | ||
| + | *Dentro de páginas html | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | instrucciones | ||
| + | ?> | ||
| + | </source> | ||
| + | *Nosotros siempre usaremos este estilo para escribir código | ||
| + | *Otros estilos anteriormente permitido están en desuso o no permitidos | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
| + | {{MRM_Resumen|Title=Estilo actualmente descatalogados| | ||
| + | *En la versión 7.0.0 de php se eliminan(Desaconsejan) las etiquetas siguientes: | ||
| + | #'''''<nowiki><%, %> (formato ASP)</nowiki>''''' | ||
| + | #'''''<nowiki>#<%= (formato corto)</nowiki>''''' | ||
| + | #'''''<nowiki>y la etiqueta de script <script language=""</nowiki>'''''></script> | ||
| + | }} | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | *Guardamos el fichero con extensión .php | ||
| + | **Así sabemos que el interprete php tiene que ejecutar código | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | {{MRM_Actividad|Title=Probando primer programa| | ||
| + | {{MRM_Resumen|Title=Información|existen una función llamada '''''phpinfo()'''''. | ||
| + | *Vamos a probarla y ver la información que genera}} | ||
| + | *Haz un programa que 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 a ver qué ocurre si la extensión del fichero no es php | ||
| + | }} | ||
| + | </div> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
</div> | </div> | ||
