PHP

De Wikipedia
Saltar a: navegación, buscar

Plantía:Ficha de llinguaxe de programación

PHP, sigla recursiva n'inglés de PHP: Hypertext Preprocessor (procesador de hipertexto), ye un llinguaxe de programación de propósitu xeneral de códigu del llau del servidor originalmente diseñáu pal desenvuelvo web de conteníu dinámico. Foi unu de los primeros llinguaxes de programación del llau del servidor que podíen incorporase directamente nel documentu HTML en llugar de llamar a un archivu esternu que procese los datos. El códigu ye interpretáu por un servidor web con un módulu de procesador de PHP que xenera la páxina web resultante. PHP evolucionó polo qu'agora inclúi tamién una interfaz de llinia de comandos que puede ser usada en aplicaciones gráfiques independientes. Puede ser usáu na mayoría de los servidores web al igual qu'en casi tolos sistemes operativos y plataformes ensin nengún costo.

Foi creáu originalmente por Rasmus Lerdorf nel añu 1995. Anguaño'l llinguaxe sigue siendo desenvueltu con nueves funciones pol grupu PHP.[1] Esti llinguaxe forma parte del software llibre publicáu so la llicencia PHP, que ye incompatible cola Llicencia Pública Xeneral de GNU por cuenta de les restricciones del usu del términu PHP.[2]

Etimoloxía[editar | editar la fonte]

PHP ye un acrónimo recursivo que significa PHP Hypertext Preprocessor (primeramente PHP Tools, o, Personal Home Page Tools).[3] Foi creáu originalmente por Rasmus Lerdorf; sicasí, la implementación principal de PHP ye producida agora por The PHP Group y sirve como l'estándar de facto pa PHP, al nun haber una especificación formal. Publicáu cola PHP License, la Free Software Foundation considera esta llicencia como software llibre.[2]

Visión xeneral[editar | editar la fonte]

PHP pue ser esplegáu na mayoría de los servidores web y en casi tolos sistemes operativos y plataformes ensin costo dalgunu. El llinguaxe PHP atópase instaláu en más de 20 millones de sitio web y nun millón de servidores. El númberu de sitios basaos en PHP viose amenorgáu progresivamente nos últimos años, cola apaición de nueves tecnoloxíes como Node.JS, Golang, ASP.NET, etc. El sitiu web de Wikipedia ta desenvueltu en PHP.[4] Ye tamién el módulu Apache más popular ente los ordenadores qu'utilicen Apache como servidor web.

La gran paecencia que tien PHP colos llinguaxes más comunes de programación estructurada, como C y Perl, dexen a la mayoría de los programadores crear aplicaciones complexes con una curva d'aprendizaxe bien curtia. Tamién-yos dexa arreyar se con aplicaciones de conteníu dinámico ensin tener qu'aprender tou un nuevu grupu de funciones.

Anque tou nel so diseñu ta empobináu a facilitar la creación de sitio webs, ye posible crear aplicaciones con una interfaz gráfica pal usuariu, utilizando dalguna estensión como pue ser PHP-Qt, PHP-GTK,[5] WxPHP, WinBinder, Roadsend PHP, Phalanger, Phc o HiP Hop VM. Tamién puede ser usáu dende la llinia de comandos, de la mesma manera como Perl o Python pueden faelo; a esta versión de PHP se la llapada PHP-CLI (Command Line Interface).[6]

Cuando'l veceru fai un pidimientu al servidor por que lu unvie una páxina web, el servidor executa'l intérprete de PHP. Ésti procesa'l script solicitáu que va xenerar el conteníu de manera dinámica (por casu llogrando información d'una base de datos). La resultancia ye unviáu pol intérprete al servidor, quien de la mesma se lo unvia al veceru.

Por aciu estensiones ye tamién posible la xeneración d'arquivos PDF,[7] Flax, según imaxes en distintos formatos.

Dexa la conexón a distintos tipos de servidores de bases de datos tantu SQL como NoSQL tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird, SQLite o MongoDB.[8]

PHP tamién tien la capacidá de ser executáu na mayoría de los sistemes operativos, tales como Unix (y de esi tipu, como Linux o Mac VOS X) y Microsoft Windows, y puede interactuar colos servidores de web más populares yá que esiste en versión CGI, módulu pa Apache, y ISAPI.

PHP ye una alternativa a les tecnoloxíes de Microsoft ASP y ASP.NET (qu'utiliza C# y Visual Basic .NET como llinguaxes), a ColdFusion de la empresa Adobe, a JSP/Java, CGI/Perl y a Node.js/Javascript. Anque la so creación y desenvolvimientu dar nel ámbitu de los sistemes llibres, so la llicencia GNU, esiste amás una redolada de desenvolvimientu integráu comercial llamáu Zend Studio. CodeGear (la división de llinguaxes de programación de Borland) sacó al mercáu una redolada de desenvolvimientu integráu pa PHP, denomináu 'Delphi for PHP. Tamién esisten siquier un par de módulos pa Eclís, unu de les redolaes más populares.[9]

Hestoria[editar | editar la fonte]

Foi originalmente diseñáu en Perl, con base na escritura d'un grupu de CGI binarios escritos nel llinguaxe C pol programador danés-canadiense Rasmus Lerdorf nel añu 1994 p'amosar el so currículum vítae y guardar ciertos datos, como la cantidá de tráficu que la so páxina web recibía. El 8 de xunu de 1995 foi publicáu "Personal Home Page Tools" dempués de que Lerdorf combinar col so propiu Form Interpreter pa crear PHP/FI.

Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintácticu (parser, en inglés) en 1997 y crearon la base del PHP3, y camudaron el nome del llinguaxe por PHP: Hypertext Preprocessor.[1] Darréu empezaron esperimentaciones públiques de PHP3, y publicóse oficialmente en xunu de 1998. Pa 1999, Suraski y Gutmans reescribieron el códigu de PHP, y producieron lo que güei se conoz como motor Zend. Tamién fundaron Zend Technologies en Ramat Gan, Israel.[1]

En mayu del 2000, PHP 4 llanzar sol poder del motor Zend 1.0. El 13 de xunetu del 2007 anuncióse la suspensión del soporte y desenvolvimientu de la versión 4 de PHP,[10] y, a pesar de lo anunciao, lliberóse una nueva versión con meyores de seguridá, la 4.4.8, publicada'l 13 de xineru del 2008, y darréu la versión 4.4.9, publicada'l 7 d'agostu del 2008.[11] Según esta noticia,[12] dióse-y soporte a fallos críticos hasta'l 9 d'agostu del 2008.

El 13 de xunetu del 2004, llanzóse PHP 5, utilizando'l motor Zend Engine 2.0 (o Zend Engine 2).[1] Inclúi toles ventayes qu'aprove'l nuevu Zend Engine 2, como:

Historial de llanzamientu[editar | editar la fonte]

Significáu
Coloráu |

Versión antigua, ensin soporte

Mariellu |

Con soporte pa erros de seguridá

Verde |

Con soporte pa erros xenerales y de seguridá

Azul Llanzamientu futuru
Rosa |

Llanzamientu Canceláu


Versión Fecha de llanzamientu Fin de soporte Notes
1.0 08-06-1995 Llamada oficialmente "Personal Home Page Tools (PHP Tools)". Ye la primer versión n'usar el nome "PHP".[13]
2.0 01-11-1997 Considerada polos sos ceadores la "ferramienta más rápido y senciella" pa crear página web dinámiques.[13]
3.0 06-06-1998 20-10-2000 Zeev Suraski y Andi Gutmans reescribieron la base pa esta versión.[13]
4.0 22-05-2000 23-01-2001 Añedióse un sistema de parsing de dos fases llamáu motor Zend.[14]
4.1 10-12-2001 12-03-2002 Introdúcense 'superglobales' ($_GET, $_POST, $_SESSION, etc.)[14]
4.2 22-04-2002 06-09-2002 Evacúense register_globals por defectu. Datos recibíos pola rede nun son ensertaos nel espaciu de nomes global, cerrando posibles furacos de seguridá nes aplicaciones.[14]
4.3 27-12-2002 31-03-2005 Introduzse CLI, y CGI.[14][15]
4.4 11-07-2005 07-08-2008 Añedir páxines man pa phpize y php-config.[14]
5.0 13-07-2004 05-09-2005 Motor Zend II con un nuevu modelu d'oxetos.[16]
5.1 24-11-2005 24-08-2006 Meyores de rendimientu cola introducción de variables de compilador pal nuevu motor de PHP.[16]
5.2 02-11-2006 06-01-2011 Activida estensión de filtru per defectu. Soporte JSON nativu.[16]
5.3 30-06-2009 14-08-2014[17] Soporte pa espacios de nomes, enllaz estáticu en tiempu d'execución, etiqueta de saltu (GOTO llindada), Clausures natives, Soporte nativu p'arquivos PHP (phar), recueya de basura pa referencies circulares, soporte ameyoráu para Windows, sqlite3, mysqlnd como reemplazu a libmysql como biblioteca pa estensiones que funcionen con MySQL, fileinfo como reemplzado d'acorique_magic para meyor soporte ACORIQUE, estensión de Internacionalización, y etiqueta ereg obsoleta.
5.4 01-03-2012 15-09-2015 Soporte pa Trait y sintaxis embrivida de array. Elementos esaniciaos: register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister() y session_is_registered(). Servidor web incorporáu.[18] Delles meyores a característiques esistentes y al rendimientu, y requerimientos de memoria menores.
5.5 20-06-2013 20-06-2016 Nuevos xeneradores pa bucles, empty() soporta espresiones. Piérdese'l soporte pa Windows XP y Windows Server 2003.[19]
5.6 20-08-2014 31-12-2018 Constantes con espresiones esguilares, llistes d'argumentos de llargor variable y esponencial por aciu l'operador **.[20]
6.x El desenvolvimientu de PHP 6 foi retrasáu porque los desarrolladores decidieron que l'enfoque actual pa tratar cadenes Unicode nun ye correctu, y tán considerando formes alternes pa la siguiente versión.[21] Les meyores entamaes pa PHP 6 fueron añedíes nel so llugar en PHP 5.3.0 (Soporte pa espacios de nome, enllaz estáticu en tiempu d'execución, funciones lambda, clausures, goto) y 5.4.0 (traits, revinculación de clausura).

Abandonóse la versión 6 de PHP siendo la siguiente versión la 7.[22]

7.0 03-11-2015[23] 03-11-2018 Meyores de rendimientu ,[24] declaración de tipos de torna en funciones [25]
7.1 01-12-2016[26][27] 01-12-2019 Tipu de torna vacida,[28] Clase constante modificadores de visibilidá,[29] Tipos nullable,[30] iterable de tipu seudo,[31] Captura múltiples tipos d'esceiciones.[32]
7.2 30-11-2017 30-11-2020 Nuevu tipu de torna "object"[33], integración de Libsodium como una estensión del nucleo[34]

Sintaxis[editar | editar la fonte]

Programa Hola mundu con PHP enfiñíu en códigu HTML:

<!DOCTYPE html>
<html lang="ye">
    <head>
        <meta charset="UTF-8" />
        <title> Exemplu básicu PHP</title>
    </head>
    <body>
        <?php
            echo 'Hola mundu';
        ?>
    </body>
</html>

L'intérprete de PHP solo executa'l códigu que s'atopa ente los sos allindiadores. Los allindiadores más comunes son <?php p'abrir una sección PHP y ?> pa cerrala. El propósitu d'estos allindiadores ye dixebrar el códigu PHP del restu de códigu, como por casu l'HTML.[35]

Les variables se prefijan col símbolu del dólar ($) y nun ye necesariu indicar el so tipu. Les variables, a diferencia de les funciones, estremen ente mayúscules y minúscules. Les cadenes de calteres pueden ser encapsuladas tantu en dobles comillas como en comillas simples, anque nel casu de les primeres, pueden ensertase variables na cadena directamente, ensin necesidá de concatenación.

Los comentarios pueden escribise bien con dos barras de primeres de la llinia, o con una almadina. Tamién dexa comentarios multi-llinia encapsulados en /* */.

Tocantes a les palabres clave, PHP comparte cola mayoría d'otros llinguaxes con sintaxis C les condiciones con if, los bucles con for y while y les tornes de funciones. Como ye habitual nesti tipu de llinguaxes, les sentencies tienen d'acabar con puntu y coma (;).

Característiques de PHP[editar | editar la fonte]

Característiques[editar | editar la fonte]

  • Empobináu al desenvolvimientu d'aplicaciones web dinámiques con accesu a información almacenada nuna base de datos.
  • Ye consideráu un llinguaxe fácil d'aprender, yá que nel so desenvolvimientu simplificáronse distintes especificaciones, como ye'l casu de la definición de les variables primitives, exemplu que se fai evidente nel usu de php arrays.
  • El códigu fonte escritu en PHP ye invisible al navegador web y al veceru, yá que ye'l servidor el que s'encarga d'executar el códigu y unviar el so resultáu HTML al navegador.
  • Capacidá de conexón cola mayoría de los motores de base de datos que s'utilicen na actualidá, destaca la so conectividad con MySQL y PostgreSQL.
  • Capacidá d'espandir el so potencial utilizando módulos (llamaos ext's o estensiones).
  • Tien una amplia documentación nel so sitiu web oficial, ente la cual destácase que toles funciones del sistema tán esplicaes y ejemplificadas nun únicu archivu d'ayuda.
  • Ye llibre, polo que se presenta como una alternativa de bon accesu pa toos.
  • Dexa aplicar técniques de programación empobinada a oxetos.
  • Nun riquir definición de tipos de variables anque los sos variables pueden evaluase tamién pol tipu que tean remanando en tiempu d'execución.
  • Tien manexu d'esceiciones (dende PHP5).
  • Magar PHP nun obliga a quien lo usa a siguir una determinada metodoloxía a la de programar, entá faciéndolo, el programador[36] puede aplicar nel so trabayu cualquier técnica de programación o de desenvolvimientu que-y dexe escribir códigu ordenáu, estructurado y afechiscu. Un exemplu d'esto son los desenvolvimientos qu'en PHP fixéronse del patrón de diseñu Modelu Vista Controlador (MVC), que dexen dixebrar el tratamientu y accesu a los datos, la lóxica de control y la interfaz d'usuariu en trés componentes independientes.
  • Por cuenta de la so flexibilidá tuvo una gran acoyida como llinguaxe base pa les aplicaciones WEB de manexu de conteníu, y ye el so usu principal.

Inconvenientes[editar | editar la fonte]

  • Como ye un llinguaxe que s'interpreta n'execución, pa ciertos usos puede resultar un inconveniente que'l códigu fonte nun pueda ser despintáu. La ofuscación ye una técnica que puede enzancar la llectura del códigu pero non necesariamente torga que'l códigu sía esamináu.
  • Por cuenta de que ye un llinguaxe interpretáu, un script en PHP suel funcionar considerablemente más lentu qu'el so equivalente nun llinguaxe de baxu nivel, sicasí esti inconveniente puede embrivise con técniques de caxé tantu n'arquivos como en memoria.
  • Nes versiones previes a la 7, les variables nun son tipificadas, lo cual enzanca a los distintos IDEs ufiertar asistencies pal tipificado del códigu, anque esto nun ye realmente un inconveniente del llinguaxe en sí. Esto ye arregláu por dellos IDEs añediendo un comentariu col tipu a la declaración de la variable.

XAMPP, LAMP, WAMP, MAMP, UwAmp[editar | editar la fonte]

La LAMP entiendi PHP (equí con Squid).

XAMPP ye un servidor independiente de plataforma, software llibre, que consiste principalmente na base de datos MySQL, el servidor Web Apache y los intérpretes pa llinguaxes de script: PHP y Perl. El nome provien del acrónimo de X (pa cualesquier de los distintos sistemes operativos), Apache, MySQL, PHP, Perl. El programa ta lliberáu so la llicencia GNU y actúa como un servidor Web llibre, bono d'usar y capaz d'interpretar páxines dinámiques. Anguaño XAMPP ta disponible pa Microsoft Windows, GNU/Linux, Solaris, y MacOS X. Ye un software "llixeru" que puede utilizase en cualesquier PC. Nun precisa munchos recursos.

LAMP presenta una funcionalidad asemeyada a XAMPP, pero enfocada en Linux, WAMP facer enfocáu en Windows, y MAMP para MacOS X. UwAmp ye bien idénticu a WAMP y destácase en que puede executase dende una memoria USB.

Principales sitios desenvueltos con PHP[editar | editar la fonte]

Utilízase PHP en millones de sitios; ente los más destacaos atópense Wikipedia.org, Facebook.com y Wordpress.com.

Referencies[editar | editar la fonte]

  1. 1,0 1,1 1,2 1,3 «Historia de PHP y Proyectos Rellacionaos». Archiváu dende l'orixinal, el 30 d'ochobre de 2007. Consultáu'l 17 d'ochobre de 2012.
  2. 2,0 2,1 «Proxecto GNU - Llicencies de software llibre incompatibles cola GPL». Consultáu'l 17 d'ochobre de 2012.
  3. FAQ Xeneral PHP.net.
  4. «Historical trends in the usage of server-side programming languages for websites» (inglés). W3Techs. Consultáu'l 10 de setiembre de 2013.
  5. «PHP-GTK» (inglés). PHP Group. Consultáu'l 10 de setiembre de 2013.
  6. «PHP: Funcionamientu en llinia de comandos». PHP Group. Consultáu'l 10 de setiembre de 2013.
  7. «dompdf - HTML to PDF converter (PHP5)» (inglés). Consultáu'l 10 de setiembre de 2013.
  8. «PHP: Estensiones de bases de datos Manual». PHP Group. Consultáu'l 10 de setiembre de 2013.
  9. Esisten tantu PHPEclipse como PDT for Eclís. Veanse http://www.phpeclipse.com y http://www.eclipse.org/pdt
  10. PHP: News Archives 2007 (n'inglés). Consultáu 9 d'avientu de 2007.
  11. PHP: News Archives 2008 (n'inglés).
  12. Archivu: 13 de xunetu de 2007 PHP.net.
  13. 13,0 13,1 13,2 «History of PHP and related projects». The PHP Group. Consultáu'l 25 de febreru de 2008.
  14. 14,0 14,1 14,2 14,3 14,4 «PHP: PHP 4 ChangeLog». The PHP Group (3 de xineru de 2008). Consultáu'l 22 de febreru de 2008.
  15. «PHP: Using PHP from the command line - Manual:». The PHP Group. Consultáu'l 11 de setiembre de 2009.
  16. 16,0 16,1 16,2 «PHP: PHP 5 ChangeLog». The PHP Group (8 de payares de 2007). Consultáu'l 22 de febreru de 2008.
  17. «Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL». PHP. Consultáu'l 20 de setiembre de 2013.
  18. «Built-in web server». Consultáu'l 26 de marzu de 2012.
  19. «What has changed in PHP 5.5.x». Consultáu'l 13 d'abril de 2013.
  20. «Migrating from PHP 5.5.x to PHP 5.6.x». Archiváu dende l'orixinal, el 25 d'abril de 2015. Consultáu'l 20 de setiembre de 2014.
  21. «PHP 6: Features, Release Date, Hosting and Download». Consultáu'l 6 de mayu de 2011.
  22. «Nome de la próxima versión de PHP». Consultáu'l 24 de xunetu de 2014.
  23. «RFC: PHP 7.0 Timeline» (4 de payares de 2015). Consultáu'l 4 de payares de 2015.
  24. «Benchmarking PHPNG!».
  25. «PHP RFC: Return Type Declarations».
  26. «Preparation Tasks». Consultáu'l 5 de xunetu de 2016.
  27. «PHP 7.1.0 GA - Externals». Consultáu'l 30 de payares de 2016.
  28. «PHP: rfc:void_return_type» (9 de payares de 2015). Consultáu'l 14 de payares de 2015.
  29. «PHP: rfc:class_constant_visibility» (27 d'ochobre de 2015). Consultáu'l 8 d'avientu de 2015.
  30. «PHP RFC: Nullable Types» (10 d'abril de 2014). Consultáu'l 14 de xunu de 2016.
  31. «PHP RFC: Iterable» (10 de xunu de 2016). Consultáu'l 19 de febreru de 2017.
  32. «PHP RFC: Catching Multiple Exception Types» (6 de marzu de 2016). Consultáu'l 19 de febreru de 2017.
  33. «PHP: rfc:object-typehint». Consultáu'l 20 d'avientu de 2017.
  34. «PHP: rfc:libsodium». Consultáu'l 20 d'avientu de 2017.
  35. «PHP: Sintaxis básica». Consultáu'l 13 d'abril de 2013.
  36. trabayo programador php. https://www.jobatus.es/trabayo-programador-php. Consultáu el 23 de mayu de 2017. 

Enllaces esternos[editar | editar la fonte]





PHP