PHP
PHP | |
---|---|
Paradigma | multiparadigma |
Data | 1995 |
Deseñador | Rasmus Lerdorf |
Desenvolvedor | PHP Group |
Última versión | 7.3.2 6 de febreiro de 2019 |
Tipo de dato | dinámico |
Influído por | C, C++, Perl, Java, Python |
Sistema operativo | Multiplataforma |
Licenza | PHP License 3.01 |
Web | www.php.net |
PHP era orixinalmente o acrónimo de "Personal Home Pages" ("Páxina web persoal") e posteriormente o acrónimo recursivo de "PHP Hypertext Preprocesor" (Pre-procesador de Hipertexto PHP). PHP é unha linguaxe de programación de computadores interpretada, libre e moi utilizada para xerar contido dinámico na Web.
A linguaxe apareceu no ano 1994, como un subconxunto de scripts en Perl creados por Rasmus Lerdof. Coas adicións de Zeev Suraski e Andi Gutmans, dous programadores israelitas pertencentes ao Technion, o instituto israelita de tecnoloxía, que reescribiron o parser, foi lanzada en 1997 como PHP 3, primeira versión estábel e parecida á linguaxe actual. En maio de 2000 fíxose pública a versión 4, e en xullo de 2004, a versión 5.
Características
[editar | editar a fonte]Trátase dunha linguaxe extremamente modularizada, o que a fai ideal para a súa instalación e uso en servidores web. É moi parecida, en tipos de dados, sintaxe e mesmo funcións, á linguaxe C. e á C++. (A partir da versión 5, inclusive, PHP conta cun suporte maior á orientación a obxectos.) Pode ser, dependendo da configuración do servidor, embutida no código HTML. Ademais diso, destácase a extrema facilidade con que PHP é lida por servidores de base de datos, como MySQL, Microsoft SQL Server e Oracle.
Existen versións do PHP dispoñíbeis para ambientes Windows e Linux. A Wikipedia funciona sobre un software enteiramente escrito en PHP, usando bases de datos MySQL ou MediaWiki.
Construír unha páxina dinámica baseada en bases de dados é sinxelo con PHP, xa que este fornece soporte a un gran número de bases de datos: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSQL etc, podendo abstraer o Banco coa biblioteca ADOdb, entre outras.
PHP dá soporte aos protocolos IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. É posíbel abrir sockets e interactuar con outros protocolos, e as bibliotecas de terceiros expanden aínda máis estas funcionalidades.
É moi frecuente a creación de sitios web utilizando o sistema operativo Linux, o servidor web Apache, a base de datos MySQL e a linguaxe de guións PHP, nunha combinación coñecida polo acrónimo LAMP. Se en vez de Linux se emprega Windows, fálase de WAMP.
Historia
[editar | editar a fonte]Foi orixinalmente deseñado en Perl, coa base na escritura dun grupo de CGI binarios escritos na linguaxe C polo programador danés-canadense Rasmus Lerdorf no ano 1994 para mostrar o seu currículum vítae e gardar certos datos, coma a cantidade de tráfico que a súa páxina web recibía. O 8 de xuño do 1995 foi publicado "Personal Home Page Tools" despois de que Lerdorf o combinara co seu propio Form Interpreter para crear PHP/FI.
Dous programadores israelís do Technion, Zeev Suraski e Andi Gutmans, reescribiron o analizador sintáctico (parser en inglés) no ano 1997 e crearon a base do PHP3, cambiando o nome da linguaxe á forma actual. Inmediatamente comezaron experimentacións públicas de PHP3 e foi publicado oficialmente en xuño de 1998.
Para 1999, Suraski e Gutmans reescribiron o código de PHP, producindo o que hoxe se coñece como motor Zend. Tamén fundaron Zend Technologies en Ramat Gan, Israel.
En maio de 2000 PHP 4 foi lanzado baixo o poder do motor Zend Engine 1.0. O día 13 de xuño de 2007 anunciouse a suspensión do soporte e desenvolvemento da versión 4 de PHP,[1] a pesar do anunciado liberouse unha nova versión con melloras de seguridade, a 4.4.8 publicada o 13 de xaneiro do 2008 e posteriormente a versión 4.4.9 publicada o 7 de agosto do 2008.[2] Segundo esta nova [1] darase soporte a fallos críticos ata o 9 de agosto de 2008.
O 13 de xuño de 2004, foi lanzado PHP 5, utilizando o motor Zend Engine 2.0 (o Zend Engine 2). Inclúe todas as vantaxes de que prové o novo Zend Engine 2, como:
- Mellor soporte para a programación orientada a obxectos, que en versións anteriores era extremadamente rudimentario.
- Melloras de rendemento.
- Mellor soporte para MySQL con extensión completamente reescrita.
- Mellor soporte a XML (XPath, DOM etc.).
- Soporte nativo para SQLite.
- Soporte integrado para SOAP.
- Iteradores de datos.
- Manexo de excecións.
- Melloras coa posta en funcionamento de Oracle.
Historial de lanzamento
[editar | editar a fonte]Significado | |
---|---|
Vermello | Sen soporte |
Verde | Con soporte |
Azul | Lanzamento futuro |
Versión maior | Versión menor | Data de lanzamento | Notas |
---|---|---|---|
1 | 1.0.0 | 1995-06-08 | Chamada oficialmente "Personal Home Page Tools (PHP Tools)". É a primeira versión en usar o nome "PHP".[3] |
2 | 2.0.0 | 1997-11-01 | Considerada polos seus creadores a "ferramenta máis rápida e sinxela" para crear páxinas web dinámicas.[3] |
3 | 3.0.0 | 1998-06-06 | Zeev Suraski e Andi Gutmans reescribiron a base para esta versión.[3] |
4 | 4.0.0 | 2000-05-22 | Engadiuse un sistema de parsing de dúas fases chamado motor Zend.[4] |
4.1.0 | 2001-12-10 | Introdúcense 'superglobais' ($_GET , $_POST , $_SESSION etc.)[4]
| |
4.2.0 | 2002-04-22 | Deshabilítanse register_globals por defecto. Os datos recibidos pola rede non son insertados no espazo de nomes global, pechando posíbeis ocos de seguridade nas aplicacións.[4]
| |
4.3.0 | 2002-12-27 | Introdúcese CLI, e CGI.[4][5] | |
4.4.0 | 2005-07-11 | Engádense páxinas man para phpize e php-config .[4]
| |
4.4.9 | 2008-08-07 | Melloras de seguridade e arranxo de bugs. Último lanzamento da serie PHP 4.4.[6][7] | |
5 | 5.0.0 | 2004-07-13 | Motor Zend II cun novo modelo de obxectos.[8] |
5.1.0 | 2005-11-24 | Melloras de rendemento coa introdución de variábeis de compilador para o novo motor de PHP.[8] | |
5.2.0 | 2006-11-02 | Actívase a extensión de filtro por defecto. Soporte JSON nativo.[8] | |
5.2.17 | 2011-01-06 | Arranxo de vulnerabilidade crítica conectada a punto flotante. | |
5.3.0 | 2009-06-30 | Soporte para espazos de nomes ; etiqueta de salto (goto limitada), Clausuras nativas, Soporte nativo para arquivos PHP (phar), recolección de lixo para referencias circulares, soporte mellorado para Windows, sqlite3, mysqlnd como substitución a libmysql como librería para extensións que funcionan con MySQL, fileinfo como substitución de mime_magic para mellor soporte MIME, extensión de Internacionalización, e etiqueta ereg obsoleta. | |
5.3.1 | 2009-11-19 | Preto de 100 bug fixes. | |
5.3.2 | 2010-03-04 | Gran número de bug fixes. | |
5.3.3 | 2010-07-22 | Maioritariamente arranxo de erros; FPM SAPI. | |
5.3.4 | 2010-12-10 | Melloras a FPM SAPI. | |
5.3.5 | 2011-01-06 | Arranxo de vulnerabilidade crítica relacionada a punto flotante. | |
5.3.6 | 2011-03-10 | Preto de 60 bug fixes. | |
5.3.7 | 2011-08-18 | Esta versión enfócase na estabilidade con preto de 90 bug fixes, algúns dos cales teñen implicacións na seguridade. | |
5.3.8 | 2011-08-23 | Esta versión arranxa os erros introducidos pola versión 5.3.7. | |
5.4.0RC3 | 2011-12-08 | Ítems eliminados: register_globals , safe_mode , allow_call_time_pass_reference , session_register() , session_unregister() e session_is_registered() . Melloras nas características existentes.
| |
6 | ?.? | Sen data | O desenvolvemento de PHP 6 atrasouse porque os desenvolvedores decidiron que o enfoque actual para tratar cadeas Unicode non é correcto, e están considerando formas alternas para a seguinte versión. |
7.0 | 3 de decembro de 2015[9] | 3 de decembro de 2018 | |
7.1 | 1 de decembro de 2016 | 1 de decembro de 2019 | void return type,[10] class constant visibility modifiers[11] |
7.2 | 30 de novembro de 2017 | 30 de novembro de 2020 | Object parameter and return type hint[12], Libsodium extension[13], Abstract method overriding[14], Parameter type widening[15] |
7.3 | 6 de decembro de 2018[16] | 6 de decembro de 2021 | Flexible Heredoc and Nowdoc syntax[17], support for reference assignment and array deconstruction with list()[18], PCRE2 support[19], hrtime() function[20] |
Exemplos de código
[editar | editar a fonte]As liñas de código php deben ir precedidas de <?php e finalizadas con ?>.
- info.php (mostra as características e variábeis do sistema no que está a funcionar).
<?php
phpinfo();
?>
- data.php (imprime a data no formato día/mes/ano)
<?php
echo date('d/m/Y');
?>
Notas
[editar | editar a fonte]- ↑ PHP: News Archives 2007 (en inglés) Consultado 9 de decembro de 2007
- ↑ PHP: News Archives 2008 (en inglés)
- ↑ 3,0 3,1 3,2 "History of PHP and related projects". The PHP Group. Consultado o 25-02-2008.
- ↑ 4,0 4,1 4,2 4,3 4,4 "PHP: PHP 4 ChangeLog". The PHP Group. 03-01-2008. Consultado o 22-02-2008.
- ↑ "PHP: Using PHP from the command line - Manual:". The PHP Group. Consultado o 11-09-2009.
- ↑ "Downloads". PHP. Consultado o 29-07-2009.
- ↑ "4.4.9 Release Announcement". PHP. Consultado o 29-07-2009.
- ↑ 8,0 8,1 8,2 "PHP: PHP 5 ChangeLog". The PHP Group. 08-11-2007. Consultado o 22-02-2008.
- ↑ "News Archive – 2018: PHP 7.2.9 Released".
- ↑ "PHP: rfc:void_return_type".
- ↑ "PHP: rfc:class_constant".
- ↑ "PHP: rfc:object-typehint".
- ↑ "PHP: rfc:libsodium".
- ↑ "PHP: rfc:allow-abstract-function-override".
- ↑ "PHP: rfc:parameter-no-type-variance".
- ↑ "PHP: todo:php73".
- ↑ "PHP: rfc:flexible_heredoc_nowdoc_syntaxes".
- ↑ "PHP: rfc:list_reference_assignment". wiki.php.net.
- ↑ "PHP: rfc:pcre2-migration". wiki.php.net.
- ↑ "PHP: hrtime - Manual". php.net.
Véxase tamén
[editar | editar a fonte]Outros artigos
[editar | editar a fonte]Ligazóns externas
[editar | editar a fonte]PHP.net
[editar | editar a fonte]- Páxina web oficial
- Subpáxinas seleccionadas:
- Subdominios seleccionados:
Recursos
[editar | editar a fonte]Seguranza
[editar | editar a fonte]- PHP Security Consortium Arquivado 31 de agosto de 2005 en Wayback Machine. — Grupo internacional de programadores de PHP.
- PHP Security Workbook — Un libro de 55 páxinas sobre varios tópicos de seguranza.