Curso online de PHP  - Ciberaula





Valore esta página:

Votos: 4.0/5 (398 votos)

PHP5

Cursos de PHP 5 online

Ficha básica del curso

Duración del curso


El alumno puede comenzar el curso 24 horas después de formalizada la matrícula. La duración del mismo será de 3 a 6 meses aproximadamente, dependiendo del plan de curso acordado con el alumno.

Descripción del curso PHP 5

Cursos de PHP5 On-Line ¿Qué es PHP5?

Curso de PHP5  On-Line PHP 5 junto al motor de base de datos más popular, MySQL, son la base del desarrollo de este curso. PHP ha incrementado paulatinamente su dominio como lenguaje de creación de sitios en Internet. En su última versión PHP 5 incorpora Programación Orientada a Objetos, lo que le convierte en un lenguaje aún más versátil.

Cursos de PHP5  On-Line ¿En qué consiste el Curso de PHP5 de CiberAula?

Curso de PHP5  On-Line El Curso de PHP 5 está enfocado a aprender a desarrollar aplicaciones empresariales basadas en las nuevas capacidades de PHP 5, como la nueva orientación a objetos que permite encapsular muy bien los componentes de negocio, además del uso de motores de plantillas que nos permitirán crear aplicaciones separando la lógica de negocios de la presentación.

Cursos de PHP5 ¿En qué podré emplear los conocimientos adquiridos en el Curso de PHP5?

Curso de PHP5 Con los conocimientos adquiridos en el Curso de PHP 5 on line podrá realizar las siguientes aplicaciones prácticas:

CONOCIMIENTO

APLICACIÓN PRÁCTICA

Introducción a Apache, PHP 5 y MySQL. ¿Qué es PHP 5?. Instalar Apache, PHP 5 y MySQL tanto en Windows como en Linux.
La sintaxis de PHP 5. Editores para PHP 5. Variables y operadores de PHP 5. Manejo de las sentencias de control. Matrices, funciones y funciones importantes.
La librería estándar de PHP 5. Funciones de vectores y formularios en PHP 5. Tratamiento de cadenas de caracteres en PHP 5. Acceso a ficheros. Envío de emails con PHP 5 y validación y proceso de formularios.
La programación orientada a objetos (POO). POO en PHP 5 Introducción a la POO. Herencia y polimorfismo. Evolución de los objetos en PHP 5 y el motor Zend 2.
Introducción a MySQL. Interacción MySQL con PHP 5. Funciones de PHP 5 para el acceso a MySQL. Importar bases de datos. Operaciones con registros.
Identificación de usuarios en PHP 5. SQLite y XML con PHP 5. Motores de plantillas. Integrar todos los conocimientos de PHP 5 para crear un carrito de la compra y un sistema de administración de tienda.

Curso de PHP5 Ventajas del Curso de PHP5 sobre cualquier tipo de manuales de PHP5 o tutoriales de PHP5

Cursos de PHP5 Los Cursos de PHP 5 online de Ciberaula le permitirán profundizar en los conocimientos de esta materia gracias a las nuevas técnicas de e-learning que facilitan el aprendizaje, a diferencia de un simple tutorial de PHP 5 en el que se hace más complicada la asimilación. Esta diferencia con otro tipo de cursos o con cualquier manual de PHP 5 es particularmente notable en el caso de cursos personalizados, en los que el alumno recibe asistencia del tutor de Ciberaula durante todo el curso.

Alumno objetivo

Cursos de PHP5 On-Line ¿A quién va dirigido el Curso de PHP5 de Ciberaula?

Curso de PHP5  On-Line Nuestro Curso PHP 5 on-line está dirigido a cualquier programador o diseñador con conocimientos básicos de la arquitectura Internet, que desee aprender a realizar aplicaciones interactivas en la Web con acceso a base de datos en las tecnologías más recientes. Como proyecto de curso se realizará una tienda virtual para ver un ejemplo práctico de comercio electrónico.

PHP


PHP es un lenguaje de scripting del lado del servidor diseñado principalmente para el desarrollo web, pero también se utiliza como un lenguaje de programación de propósito general. Originalmente creado por Rasmus Lerdorf en 1994, la implementación de referencia PHP ahora es producida por The PHP Development Team. PHP originalmente representaba Personal Home Page, pero ahora representa el acrónimo recursivo PHP: Hypertext Preprocessor.

El código PHP puede estar incrustado en marcado HTML o HTML5, o puede usarse en combinación con varios sistemas de plantillas web, sistemas de administración de contenido web y marcos web. El código PHP suele ser procesado por un intérprete PHP implementado como un módulo en el servidor web o como un ejecutable CGI (Common Gateway Interface). El software del servidor web combina los resultados del código PHP interpretado y ejecutado, que puede ser cualquier tipo de datos, incluyendo imágenes, con la página web generada. El código PHP también se puede ejecutar con una interfaz de línea de comandos (CLI) y puede utilizarse para implementar aplicaciones gráficas independientes.

El intérprete de PHP estándar, impulsado por el motor Zend, es un software libre lanzado bajo la licencia PHP. PHP ha sido ampliamente portado y puede ser desplegado en la mayoría de los servidores web en casi todos los sistemas operativos y plataformas, de forma gratuita.

El lenguaje PHP evolucionó sin una especificación formal escrita hasta 2014, dejando al intérprete canónico PHP como un estándar de facto. Desde 2014 el trabajo ha pasado a crear una especificación formal de PHP.


Historia

Inicios de PHP

El desarrollo de PHP comenzó en 1995 cuando Rasmus Lerdorf escribió varios programas comunes de la interfaz de la entrada (CGI) en C, que él utilizó para mantener su homepage personal. Los amplió para trabajar con formularios web y comunicarse con bases de datos, y llamó a esta implementación "Personal Home Page / Forms Interpreter" o PHP / FI.

PHP / FI podría ayudar a crear aplicaciones web sencillas y dinámicas. Para acelerar el reporte de errores y mejorar el código, Lerdorf anunció inicialmente el lanzamiento de PHP / FI como "Herramientas personales de página de inicio (PHP Tools) versión 1.0" en el grupo de discusión Usenet comp.infosystems.www.authoring.cgi on June 8, 1995. Esta versión ya tenía la funcionalidad básica que tiene PHP a partir de 2013. Esto incluye variables tipo Perl, manejo de formularios y la capacidad de incrustar HTML. La sintaxis se parecía a la de Perl, pero era más simple, más limitada y menos coherente.

Lerdorf no pretendía que PHP temprano se convirtiera en un nuevo lenguaje de programación, pero creció orgánicamente, con Lerdorf notando en retrospectiva: "No sé cómo detenerlo, nunca hubo intención alguna de escribir un lenguaje de programación [...] No tengo absolutamente ninguna idea de cómo escribir un lenguaje de programación, seguí añadiendo el siguiente paso lógico en el camino ". Un equipo de desarrollo comenzó a formarse y, después de meses de trabajo y pruebas beta, lanzó oficialmente PHP / FI 2 en Noviembre de 1997.

El hecho de que PHP careciera de un diseño global original pero en su lugar, desarrollado orgánicamente ha llevado a la nomenclatura inconsistente de las funciones y ordenación inconsistente de sus parámetros. En algunos casos, los nombres de las funciones se eligieron para que coincidan con las bibliotecas de nivel inferior que PHP era "wrapping", mientras que en algunas versiones muy tempranas de PHP la longitud de los nombres de las funciones se usaba internamente como una función hash, fueron elegidos para mejorar la distribución de los valores de hash.

PHP 3 y 4

Zeev Suraski y Andi Gutmans reescribieron el analizador en 1997 y formaron la base de PHP 3, cambiando el nombre del lenguaje al acrónimo recursivo PHP: Hypertext Preprocessor. Posteriormente, comenzaron las pruebas públicas de PHP 3 y el lanzamiento oficial se produjo en junio de 1998. Suraski y Gutmans comenzaron una nueva reescritura del núcleo de PHP, produciendo el Motor Zend en 1999. También fundaron Zend Technologies en Ramat Gan, Israel.

El 22 de mayo de 2000, PHP 4, impulsado por el Zend Engine 1.0, fue estrenado. A partir de agosto de 2008 esta rama alcanzó la versión 4.4.9. PHP 4 ya no está en desarrollo ni se publicarán actualizaciones de seguridad.

PHP 5

El 13 de julio de 2004, PHP 5 fue lanzado, impulsado por el nuevo motor Zend II. PHP 5 incluía nuevas funciones, como el soporte mejorado para la programación orientada a objetos, la extensión PDO (que define una interfaz ligera y consistente para acceder a las bases de datos) y numerosas mejoras de rendimiento. En 2008 PHP 5 se convirtió en la única versión estable en desarrollo. La vinculación estática tardía había desaparecido de PHP y se añadió en la versión 5.3.

Muchos proyectos open-source de alto perfil dejaron de soportar PHP 4 en el nuevo código a partir del 5 de febrero de 2008, debido a la iniciativa GoPHP5, proporcionada por un consorcio de desarrolladores PHP que promovían la transición de PHP 4 a PHP 5.

Con el tiempo, los intérpretes de PHP se hicieron disponibles en la mayoría de los sistemas operativos existentes de 32 bits y 64 bits, construyéndolos a partir del código fuente de PHP o utilizando binarios pre-construidos. Para las versiones 5.3 y 5.4 de PHP, las únicas distribuciones binarias disponibles de Microsoft Windows eran compilaciones x86 de 32 bits, que requieren modo de compatibilidad de 32 bits de Windows mientras utilizan Internet Information Services (IIS) en una plataforma Windows de 64 bits . La versión 5.5 de PHP hizo las compilaciones x86-64 de 64 bits disponibles para Microsoft Windows.

PHP 6 y Unicode

PHP ha recibido críticas debido a la falta de soporte nativo de Unicode en el nivel básico del lenguaje, en lugar de soportar sólo las cadenas de bytes. En 2005, un proyecto encabezado por Andrei Zmievski fue iniciado para traer soporte nativo de Unicode a través de PHP, incrustando la biblioteca de componentes internacionales para Unicode (ICU) y representando las cadenas de texto como UTF-16 internamente. Puesto que esto causaría cambios importantes tanto a los internos del lenguaje como al código de usuario, se planeó lanzarlo como versión 6.0 del lenguaje, junto con otras características principales entonces en el desarrollo.

Sin embargo, la escasez de desarrolladores que comprendieron los cambios necesarios y los problemas de rendimiento derivados de la conversión a UTF-16, que rara vez se utiliza en un contexto web, provocaron retrasos en el proyecto. Como resultado, una versión de PHP 5.3 fue creada en 2009, con muchas características no Unicode back-portted de PHP 6, notablemente namespaces. En marzo de 2010, el proyecto en su forma actual fue abandonado oficialmente, y se preparó una versión de PHP 5.4 que contenía la mayoría de las características no-Unicode restantes de PHP 6, tales como rasgos y re-binding del cierre. Las primeras esperanzas fueron que se formaría un nuevo plan para la integración de Unicode, pero a partir de 2014 no se había adoptado ninguno.

PHP 7

Durante los años 2014 y 2015, se desarrolló una nueva versión principal de PHP, que fue numerada como PHP 7. La numeración de esta versión implicó un cierto debate. Aunque el experimento Unicode de PHP 6 nunca había sido publicado, varios artículos y títulos de libros hicieron referencia al nombre de PHP 6, lo que podría haber causado confusión si una nueva versión reutilizara el nombre. Después de una votación, se eligió el nombre PHP 7.

La base de PHP 7 es una rama de PHP que originalmente fue apodada PHP de próxima generación (phpng). Fue diseñado por Dmitry Stogov, Xinchen Hui y Nikita Popov, y tenía como objetivo optimizar el rendimiento de PHP refactorizando el motor de Zend para usar estructuras de datos más compactas con la localidad de caché mejorada, manteniendo la compatibilidad de idioma casi completa. A partir del 14 de julio de 2014, los benchmarks basados en WordPress, que sirvieron como la principal suite de referencia para el proyecto phpng, mostraron un aumento de casi 100% en el rendimiento. También se espera que los cambios de phpng faciliten la mejora del rendimiento en el futuro, ya que las estructuras de datos más compactas y otros cambios se consideran más adecuados para una migración exitosa a un compilador just-in-time (JIT). Debido a los cambios significativos, el motor de Zend reelaborado se llama Zend Engine 3, sucediendo Zend Engine 2 utilizado en PHP 5.

Debido a los principales cambios internos en phpng, debe recibir un nuevo número de versión principal de PHP, en lugar de una versión menor de PHP 5, de acuerdo con el proceso de liberación de PHP. Las versiones principales de PHP se les permite romper la compatibilidad hacia atrás de código y por lo tanto PHP 7 presentó una oportunidad para otras mejoras más allá de phpng que requieren pausas de compatibilidad hacia atrás, incluyendo el uso más amplio de excepciones, Consistentes y completas, y la depreciación o eliminación de diversas características de legado.

PHP 7 también introdujo nuevas características de lenguaje, incluyendo declaraciones de tipo de retorno para funciones, que complementan las declaraciones de tipos de parámetros existentes y soportan los tipos escalares (integer, float, string y boolean) en declaraciones de tipo parameter y return.

Historial de lanzamiento

A partir del 28 de junio de 2011, el Grupo PHP implementó una línea de tiempo para el lanzamiento de nuevas versiones de PHP. Bajo este sistema, al menos una liberación debe ocurrir cada mes. Una vez al año, debe ocurrir una liberación menor que puede incluir nuevas características. Cada versión secundaria debe ser soportada por dos años con seguridad y corrección de errores, seguida por al menos un año de solo arreglos de seguridad, por un total de un proceso de lanzamiento de tres años para cada versión menor. No se introducirán nuevas características, a menos que sean pequeñas y autónomas, en una versión menor durante el proceso de liberación de tres años.


Mascota de PHP

La mascota del proyecto PHP es el elePHPant, un elefante azul con el logo de PHP en su lado, diseñado por Vincent Pontier en 1998. El elePHPant es a veces de color diferente cuando está en forma de juguete de peluche.

Tipos de datos

PHP almacena enteros en un rango dependiente de la plataforma, ya sea un entero con signo de 64 bits o 32 bits equivalente al tipo largo de lenguaje C. Los enteros no firmados se convierten en valores firmados en ciertas situaciones; Este comportamiento es diferente del de otros lenguajes de programación. Las variables enteras se pueden asignar usando decimal (positivo y negativo), octal, hexadecimal y las anotaciones binarias.

Los números de punto flotante también se almacenan en un rango específico de plataforma. Pueden ser especificados usando la notación de punto flotante, o dos formas de notación científica. PHP tiene un tipo booleano nativo que es similar a los tipos booleanos nativos en Java y C ++. Utilizando las reglas de conversión de tipo booleano, los valores distintos de cero se interpretan como true y cero como false, como en Perl y C ++.

El tipo de datos nulo representa una variable que no tiene valor; NULL es el único valor permitido para este tipo de datos.

Las variables del tipo "recurso" representan referencias a recursos de fuentes externas. Éstos son creados típicamente por las funciones de una extensión particular, y se pueden procesar solamente por las funciones de la misma extensión; Ejemplos incluyen archivos, imágenes y recursos de base de datos.

Las matrices pueden contener elementos de cualquier tipo que PHP pueda manejar, incluyendo recursos, objetos y otras matrices. El orden se conserva en listas de valores y en hashes con las dos llaves y los valores, y los dos pueden ser entremezclados. PHP también soporta cadenas, que pueden usarse con comillas simples, comillas dobles, sintaxis nowdoc o heredoc.

La biblioteca estándar de PHP (SPL) intenta resolver problemas estándar e implementa interfaces y clases de acceso a datos eficientes.


Funciones

PHP define una gran variedad de funciones en el lenguaje principal y muchas también están disponibles en varias extensiones; Estas funciones están bien documentadas en la documentación en línea de PHP. Sin embargo, la biblioteca incorporada tiene una gran variedad de convenciones de nomenclatura e inconsistencias asociadas, como se describe en la historia anterior.

Las funciones personalizadas pueden ser definidas por el desarrollador, por ejemplo:

código de ejemplo en PHP

En 2017, la salida del programa anterior es 'I am currently 36 years old.'

En lugar de los punteros de funciones, las funciones en PHP pueden ser referenciadas por una cadena que contiene su nombre. De esta manera, las funciones normales de PHP se pueden utilizar, por ejemplo, como callbacks o dentro de tablas de funciones. Las funciones definidas por el usuario pueden crearse en cualquier momento sin ser prototipadas. Las funciones se pueden definir dentro de los bloques de código, lo que permite una decisión en tiempo de ejecución sobre si una función debe ser definida o no. Existe una función function_exists que determina si ya se ha definido una función con un nombre dado. Las llamadas de función deben usar paréntesis, con la excepción de las funciones de constructor de clase de argumento cero llamadas con el operador PHP nuevo, en cuyo caso los paréntesis son opcionales.

Hasta PHP 5.3, el soporte para funciones y cierres anónimos no existía en PHP. Mientras que create_function () existe desde PHP 4.0.1, es simplemente un thin wrapper alrededor de eval () que permite que las funciones normales de PHP sean creadas durante la ejecución del programa. PHP 5.3 añadió sintaxis para definir una función anónima o "cierre" que puede capturar variables desde el ámbito circundante:

código de ejemplo en PHP

En el ejemplo anterior, la función getAdder () crea un cierre usando el argumento pasado $ x (el uso de palabra clave importa una variable del contexto léxico), que toma un argumento adicional $ y, y devuelve el cierre creado al llamador. Esta función es un objeto de primera clase, lo que significa que se puede almacenar en una variable, pasarse como parámetro a otras funciones, etc.

Inusualmente para un lenguaje de tipo dinámico, PHP admite declaraciones de tipo en parámetros de función, que se aplican en tiempo de ejecución. Esto ha sido soportado para clases e interfaces desde PHP 5.0, para arrays desde PHP 5.1, para “callables” desde PHP 5.4 y tipos escalares (integer, float, string y boolean) desde PHP 7.0. PHP 7.0 también tiene declaraciones de tipos para los tipos de retorno de función, expresado colocando el nombre del tipo después de la lista de parámetros, precedido por dos puntos. Por ejemplo, la función getAdder del ejemplo anterior podría ser anotada con tipos como el de PHP 7:

código de ejemplo en PHP

De forma predeterminada, las declaraciones de tipo escalar siguen principios de escritura débiles. Así, por ejemplo, si el tipo de un parámetro es int, PHP permitiría no sólo enteros, sino también cadenas numéricas convertibles, flotadores o booleanos para ser pasado a esa función, y los convertiría. Sin embargo, PHP 7 tiene un modo de "tipificación estricta" que, cuando se usa, no permite tales conversiones para llamadas de función y devoluciones dentro de un archivo.


Programación orientada a objetos

La funcionalidad básica de programación orientada a objetos fue agregada en PHP 3 y mejorada en PHP 4. Esto permitió que PHP obtuviera más abstracción, facilitando las tareas creativas para los programadores que usan el lenguaje. El manejo de objetos fue completamente reescrito para PHP 5, ampliando el conjunto de características y mejorando el rendimiento. En versiones anteriores de PHP, los objetos se manejaban como tipos de valor. El inconveniente de este método era que el código tenía que hacer un uso intensivo de las variables de "referencia" de PHP si quería modificar un objeto que se pasaba en lugar de crear una copia de él. En el nuevo enfoque, los objetos son referenciados por handle, y no por value.

PHP 5 introdujo variables y métodos de miembros privados y protegidos, junto con clases abstractas, clases finales, métodos abstractos y métodos finales. También introdujo una forma estándar de declarar constructores y destructores, similar a la de otros lenguajes orientados a objetos como C ++, y un modelo estándar de manejo de excepciones. Además, PHP 5 agregó interfaces y permitió la implementación de múltiples interfaces. Hay interfaces especiales que permiten a los objetos interactuar con el sistema runtime. Los objetos que implementan ArrayAccess se pueden usar con la sintaxis del array y los objetos que implementan Iterator o IteratorAggregate se pueden usar con la construcción del lenguaje foreach. No hay ninguna característica de tabla virtual en el motor, por lo que las variables estáticas están vinculadas con un nombre en lugar de una referencia en tiempo de compilación.

Si el desarrollador crea una copia de un objeto utilizando el clon de palabra reservada, el motor Zend comprobará si se ha definido un método __clone (). Si no, llamará a un __clone () que copiará las propiedades del objeto. Si se define un método __clone (), entonces será responsable de establecer las propiedades necesarias en el objeto creado. Por conveniencia, el motor suministrará una función que importa las propiedades del objeto de origen, por lo que el programador puede comenzar con una réplica de valor por defecto del objeto de origen y sólo anular las propiedades que necesitan ser cambiadas.

El siguiente es un ejemplo básico de programación orientada a objetos en PHP:

código de ejemplo en PHP

La visibilidad de las propiedades y los métodos de PHP se define utilizando las palabras clave público, privado y protegido. El valor predeterminado es público, si sólo se utiliza var; Var es un sinónimo de público. Los artículos declarados públicos se pueden acceder en todas partes. Los límites protegidos permiten el acceso a las clases heredadas (ya la clase que define el elemento). Private limita la visibilidad sólo a la clase que define el elemento. Los objetos del mismo tipo tienen acceso a los miembros privados y protegidos del otro aunque no sean la misma instancia. Las características de visibilidad de los miembros de PHP a veces han sido descritas como "muy útiles". Sin embargo, también han sido descritas a veces como "en el mejor de los casos irrelevantes y en el peor positivamente dañinas".


Implementaciones

La implementación de PHP original, única y ampliamente utilizada, es impulsada por el motor Zend y conocida simplemente como PHP. Para desambiguarlo de otras implementaciones, a veces se denomina extraoficialmente como "Zend PHP". El motor de Zend compila el código fuente de PHP sobre la marcha en un formato interno que puede ejecutar, por lo que funciona como un intérprete. También es la "implementación de referencia" de PHP, ya que PHP no tiene especificación formal, por lo que la semántica de Zend PHP define la semántica de PHP. Debido a la semántica compleja y matizada de PHP, definida por el funcionamiento de Zend, es difícil para las implementaciones competidoras ofrecer compatibilidad completa.

El modelo de solicitud única por solicitud de script de PHP y el hecho de que el motor de Zend es un intérprete, conduce a la ineficiencia; Como resultado, se han desarrollado varios productos para ayudar a mejorar el rendimiento de PHP. Con el fin de acelerar el tiempo de ejecución y no tener que compilar el código fuente de PHP cada vez que se accede a la página web, los scripts PHP también se pueden implementar en el formato interno del motor PHP utilizando una caché de opcode, que funciona almacenando en caché la forma compilada de Un script PHP (opcodes) en memoria compartida para evitar la sobrecarga de analizar y compilar el código cada vez que se ejecuta la secuencia de comandos. Una caché de opcode, Zend Opcache, está incorporada en PHP desde la versión 5.5. Otro ejemplo de una caché de opcode ampliamente utilizada es el caché PHP alternativo (APC), que está disponible como una extensión PECL.

Aunque Zend PHP sigue siendo la implementación más popular, se han desarrollado varias otras implementaciones. Algunos de estos son compiladores o compatibles JIT compilation, y por lo tanto ofrecen beneficios de rendimiento sobre Zend PHP a expensas de carecer de plena compatibilidad con PHP. Las implementaciones alternativas incluyen lo siguiente:

HipHop Virtual Machine (HHVM) - desarrollado en Facebook y disponible como código abierto, convierte el código PHP en un bytecode de alto nivel (comúnmente conocido como un lenguaje intermedio), que se traduce en x86-64 código de máquina dinámicamente en tiempo de ejecución por un Just-in-time (JIT), lo que resulta en hasta 6 × mejoras en el rendimiento.

Parrot - una máquina virtual diseñada para ejecutar lenguajes dinámicos eficientemente; Pipp transforma el código fuente de PHP en la representación Parrot intermedia, que luego se traduce al bytecode del Parrot y se ejecuta en la máquina virtual.

Phalanger - compila PHP en lenguaje intermedio común (CIL) bytecode

HipHop - desarrollado en Facebook y disponible como código abierto, transforma los scripts PHP en código C ++ y compila el código resultante, reduciendo la carga del servidor hasta el 50%.A principios de 2013, Facebook lo desaprobó a favor de HHVM debido a múltiples razones, incluyendo dificultades de implementación y falta de soporte para todo el lenguaje PHP, incluyendo las construcciones create_function () y eval ().


Licencia

PHP es un software libre lanzado bajo la licencia PHP, que estipula que:

Los productos derivados de este software no pueden llamarse "PHP", ni "PHP" puede aparecer en su nombre, sin permiso previo por escrito de group@php.net. Puede indicar que su software funciona junto con PHP diciendo "Foo for PHP" en lugar de llamar "PHP Foo" o "phpfoo".

Esta restricción sobre el uso de "PHP" hace que la Licencia de PHP sea incompatible con la Licencia Pública General (GPL), mientras que la Licencia de Zend es incompatible debido a una cláusula de publicidad similar a la de la licencia BSD original.


Desarrollo y comunidad

PHP incluye varias bibliotecas libres y de código abierto en su distribución de origen, o las utiliza en las compilaciones binarias de PHP resultantes. PHP es fundamentalmente un sistema basado en Internet con módulos incorporados para acceder a servidores FTP (File Transfer Protocol) y muchos servidores de bases de datos, incluyendo PostgreSQL, MySQL, Microsoft SQL Server y SQLite (que es una base de datos incorporada), servidores LDAP y otros . Numerosas funciones familiares a los programadores C, como las de la familia stdio, están disponibles en las compilaciones estándar de PHP.

PHP permite a los desarrolladores escribir extensiones en C para agregar funcionalidad al lenguaje PHP. Las extensiones de PHP se pueden compilar de forma estática en PHP o cargarse dinámicamente en tiempo de ejecución. Se han escrito numerosas extensiones para agregar soporte para la API de Windows, gestión de procesos en sistemas operativos tipo Unix, cadenas multibyte (Unicode), cURL y varios formatos de compresión populares. Otras características de PHP disponibles a través de extensiones incluyen la integración con IRC, la generación dinámica de imágenes y el contenido de Adobe Flash, PDO como una capa de abstracción utilizada para acceder a bases de datos, e incluso la síntesis del habla. Algunas de las funciones básicas del lenguaje, como las que se ocupan de las cadenas y arrays, también se implementan como extensiones. El proyecto de biblioteca de extensiones de PHP (PECL) es un repositorio de extensiones para el lenguaje PHP.

Algunos otros proyectos, como Zephir, ofrecen la posibilidad de que las extensiones PHP se creen en un lenguaje de alto nivel y se compilen en extensiones nativas de PHP. Este enfoque, en lugar de escribir extensiones de PHP directamente en C, simplifica el desarrollo de extensiones y reduce el tiempo necesario para la programación y las pruebas.

El Grupo PHP consta de diez personas (a partir de 2015): Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead y Andrei Zmievski.

Zend Technologies proporciona una Certificación PHP basado en PHP 5.5 examen para los programadores para convertirse en desarrolladores de PHP certificados.


Instalación y configuración

Hay dos formas principales para añadir soporte para PHP en un servidor web - como un módulo de servidor web nativa, o como un ejecutable de CGI. PHP tiene un módulo de interfaz de programación de aplicaciones llamada directa Server Interface (SAPI), que es apoyado por muchos servidores web como Apache HTTP Server, Microsoft IIS, Netscape (ahora difunto) y iPlanet. Algunos otros servidores web, como OmniHTTPd, apoyan la programación de aplicaciones para servidores de Internet (ISAPI), que es un módulo de interfaz de servidor web de un Microsoft. Si PHP no soporta un módulo para un servidor web, que siempre puede ser utilizado como una Common Gateway Interface (CGI) o procesador FastCGI; en ese caso, el servidor web está configurado para utilizar ejecutable CGI de PHP para procesar todas las solicitudes a archivos PHP.

PHP-FPM (FastCGI Process Manager) es una aplicación FastCGI alternativa para PHP, incluido con la distribución oficial de PHP desde la versión 5.3.3. Cuando se compara a la aplicación FastCGI mayor, que contiene algunas características adicionales, sobre todo útil para servidores web con mucha carga.

Cuando se usa PHP para secuencias de comandos de línea de comandos, se necesita una interfaz PHP de línea de comandos (CLI) ejecutable. PHP soporta una SAPI CLI a partir de PHP 4.3.0. El objetivo principal de este SAPI está desarrollando aplicaciones de concha usando PHP. Hay bastantes diferencias entre la CLI SAPI y otros SAPI, aunque sí comparten muchos de los mismos comportamientos.

PHP tiene una interfaz de módulo directa llamado SAPI para los servidores web diferentes; en el caso de PHP 5 y Apache 2.0 en Windows, se proporciona en forma de un archivo DLL llamado php5apache2.dll, que es un módulo que, entre otras funciones, proporciona una interfaz entre PHP y el servidor web, implementado en una forma que comprenda el servidor. Esta forma es lo que se conoce como una SAPI.

Hay diferentes tipos de SAPIs para varias extensiones de servidor web. Por ejemplo, además de los enumerados anteriormente, otros SAPIs para el lenguaje PHP incluyen el Common Gateway Interface (CGI) y la interfaz de línea de comandos (CLI).

PHP también se puede utilizar para escribir escritorio interfaz gráfica de usuario las aplicaciones de usuario (GUI), utilizando la extensión PHP-GTK. PHP-GTK no está incluido en la distribución oficial PHP, [132] y como una extensión que sólo se puede utilizar con versiones de PHP 5.1.0 y más nuevos. La forma más común de la instalación de PHP-GTK está compilando desde el código fuente.

Cuando PHP se instala y se utiliza en entornos de nube, se proporcionan kits de desarrollo de software (SDK) para el uso de las características específicas de la nube. Por ejemplo:

Amazon Web Services proporciona el SDK de AWS para PHP

Windows Azure se puede utilizar con el Azure SDK Windows para PHP.

Numerosas opciones de configuración son compatibles, que afecta tanto a las características de PHP centrales y extensiones. php.ini archivo de configuración se busca en diferentes lugares, dependiendo de la forma en que se utiliza PHP. El archivo de configuración está dividido en varias secciones, mientras que algunas de las opciones de configuración también se puede establecer dentro de la configuración del servidor web.


Usos

PHP es un lenguaje de programación de propósito general que es especialmente adecuado para el desarrollo web del lado del servidor, en cuyo caso PHP se ejecuta generalmente en un servidor web. Cualquier código PHP en un archivo solicitado es ejecutado por el tiempo de ejecución de PHP, por lo general para crear contenido de la página web dinámica o imágenes dinámicas utilizadas en sitios web o en otros lugares. También se puede usar para las secuencias de línea de comandos y la interfaz gráfica de usuario del lado del cliente (GUI) de aplicaciones. PHP se puede implementar en la mayoría de los servidores web, muchos sistemas operativos y plataformas, y se puede utilizar con muchos sistemas de gestión de bases de datos relacionales (RDBMS). La mayoría de los proveedores de alojamiento web de soporte de PHP para uso de sus clientes. Está disponible de forma gratuita, y el Grupo de PHP proporciona el código fuente completo para los usuarios crear, personalizar y ampliar para su propio uso.

PHP actúa principalmente como un filtro, teniendo la entrada de un archivo o corriente que contiene instrucciones PHP texto y / o y dar salida a otro flujo de datos. Lo más común es la salida será HTML, aunque podría ser JSON, XML o datos binarios, tales como imágenes o formatos de audio. A partir de PHP 4, el analizador PHP compila entrada para producir bytecode para el procesamiento por el Zend Engine, dando un rendimiento mejorado respecto a su predecesor intérprete.

Originalmente diseñado para crear páginas web dinámicas, PHP ahora se centra principalmente en secuencias de comandos del lado del servidor, y es similar a otros lenguajes de script del lado del servidor que proporcionan contenido dinámico desde un servidor web a un cliente, tales como ASP clásico de Microsoft, JavaServer Pages de Sun Microsystems, y mod_perl. PHP también ha atraído el desarrollo de muchos marcos de software que proporcionan bloques de construcción y una estructura de diseño para promover el desarrollo rápido de aplicaciones (RAD). Algunos de estos incluyen PRADO, CakePHP, Symfony, CodeIgniter, laravel, Marco Yu, Phalcon y Zend Framework, que ofrece características similares a otros marcos web.

La arquitectura LAMP ha hecho popular en la industria de la web como una forma de desplegar aplicaciones web. PHP se usa comúnmente como el P en este paquete junto con Linux, Apache y MySQL, aunque el P también puede referirse a Python, Perl, o alguna combinación de los tres. paquetes similares, WAMP y MAMP, también están disponibles para Windows y MacOS, con la primera letra de pie para el sistema operativo correspondiente. Aunque tanto PHP y Apache se proporcionan como parte de la base macOS instalación, los usuarios de estos paquetes buscan un mecanismo de instalación más simple que puede ser más fácil de mantener al día.

A partir de abril de 2007, más de 20 millones de dominios de Internet tenían los servicios web alojados en servidores con PHP instalado y mod_php se registró como el módulo más popular servidor HTTP Apache. A partir de mayo de 2017, se utilizó PHP como lenguaje de programación del lado del servidor en el 83% de los 10 millones de sitios web más populares. Sistemas de gestión de contenido Web escritas en PHP incluyen MediaWiki, Joomla, eZ Publish, Plataforma eZ, SilverStripe, WordPress, Drupal, y Moodle. Sitios Web escritas en PHP, en back-end y / o la porción de cara al usuario, incluyen Facebook, Digg, Tumblr, Dailymotion, y Slack.

Para escenarios específicos y más avanzada de uso, PHP ofrece una manera bien definida y documentado para escribir extensiones personalizadas en C o C ++. Además de extender el lenguaje mismo en forma de bibliotecas adicionales, las extensiones están proporcionando una manera para mejorar la velocidad de ejecución donde es crítico y hay espacio para mejoras mediante el uso de un lenguaje compilado cierto. PHP también ofrece formas bien definidas para clavarse en otros proyectos de software. De esa manera PHP puede ser fácilmente utilizado como un lenguaje de programación interna para otro proyecto, que también proporciona una interfaz ajustada con estructuras de datos internos específicos del proyecto.

PHP recibió críticas mixtas debido a la falta de apoyo de múltiples hilos a nivel de lenguaje fundamental, aunque el uso de hilos es posible gracias a la "pthreads" extensión PECL.

A partir de enero de 2013, se utilizó PHP en más de 240 millones de sitios web (39% de los muestreados) y se instaló en 2,1 millones de servidores web.


Seguridad

En 2013, el 9% de todas las vulnerabilidades que se enumeran por la National Vulnerability Database estaban relacionados con PHP; Históricamente, alrededor del 30% de todas las vulnerabilidades que figuran desde 1996 en esta base de datos están relacionados con PHP. Fallas de seguridad técnicas del lenguaje en sí mismo o de sus bibliotecas del núcleo no son frecuentes (éstos fueron 22 en 2009, que era de aproximadamente 1% del total, aunque PHP se aplica a alrededor del 20% de los programas enumerados.) Reconociendo que los programadores hacen errores, algunos idiomas incluyen mancha comprobación para detectar automáticamente la falta de validación de entrada que induce a muchos problemas. Dicha característica está siendo desarrollado para PHP, pero su inclusión en una liberación ha sido rechazada varias veces en el pasado.

Hay parches avanzadas de protección, tales como Suhosin y Endurecer-Patch, que están especialmente diseñados para entornos de alojamiento web, debido principalmente a que estos entornos son vistos como lugares donde se puede ejecutar código escrito descuidadamente.

Hay ciertas características del lenguaje y los parámetros de configuración (principalmente los valores por defecto para estos entornos de tiempo de ejecución) para que las aplicaciones PHP propensas a problemas de seguridad. Entre estos, magic_quotes_gpc y register_globals directivas de configuración son los más conocidos; este último hizo ningún parámetro de URL se convierten en variables de PHP, abriendo un camino para que las vulnerabilidades de seguridad graves al permitir que un atacante para ajustar el valor de cualquier variable global sin inicializar e interferir con la ejecución de un script PHP. Soporte para "comillas mágicas" y "el registro de globales" ha dejado de utilizarse a partir de PHP 5.3.0, y se retira a partir de PHP 5.4.0.

Otro ejemplo de la vulnerabilidad de configuración de tiempo de ejecución proviene de no poder desactivar la ejecución de PHP (vía directiva de configuración del motor) para el directorio donde se almacenan las imágenes cargadas; dejando que la configuración por defecto puede provocar la ejecución de código PHP malicioso incrustado en las imágenes subidas. Además, si deja activada la carga dinámica de extensiones PHP (a través de directiva de configuración enable_dl) en un entorno de alojamiento web compartido puede conducir a problemas de seguridad.

Además, las conversiones de tipo implícitas que dan lugar a valores incompatibles siendo tratados como iguales en contra de la intención del programador puede conducir a problemas de seguridad. Por ejemplo, el resultado de la comparación "0e1234" == "0" comparación es cierto porque el primer valor de comparación es tratado como notación científica que tiene el valor (0 × 101 234), es decir cero. Esta característica resultó en vulnerabilidades de autenticación en el Foro de máquinas simples, Typo3 y phpBB cuando se compararon los hashes de contraseñas MD5. En lugar de ello, o bien el strcmp función o el operador de identidad (===) deben ser utilizados; === resultados "0e1234" "0" en falso.

En un análisis de 2013 de más de 170.000 desfiguraciones de sitios web, publicada por Zone-H, la más frecuente (53%) técnica utilizada fue la explotación de la vulnerabilidad de inclusión de archivo, en su mayoría relacionados con el uso inseguro de funciones PHP incluyen, requerir, y allow_url_fopen.


Preguntas Frecuentes

¿De qué plazo máximo se dispone para el Curso online de PHP ?
Tanto en el caso de particulares como de empresas el plazo para la realización del curso es flexible y a convenir con el alumno o empresa. Nuestros cursos están pensados para ser realizados de forma cómoda por quienes tienen que compaginar la dedicación al curso con su trabajo diario.

¿Hay un horario para la realización del curso?
En el caso del curso de PHP el acceso a los contenidos está disponible las 24 hs. todos los días de la semana, de modo que el alumno puede acceder a su discreción incluso en días festivos y a cualquier hora. En estas sesiones el alumno puede visionar los vídeos de las lecciones, así como realizar los ejercicios y prácticas propuestos. Ahora bien, las consultas al profesor son atendidas en horario laboral.

¿Se recibe un certificado de curso?
Efectivamente al finalizar el Curso online de PHP , el alumno recibe un certificado acreditando el éxito en su realización, y si lo necesita especificando también las horas lectivas y el contenido del curso.

¿Existe una modalidad del curso para empresas?
Todos nuestros cursos están disponibles para empresas. En el caso de un plan de formación corporativo, este se adapta además en contenidos, plazos y otras características a los objetivos o necesidades de la empresa.











Nos interesan mucho sus comentarios. Envíenos cualquier sugerencia, crítica o alabanza que desee realizar.
Si lo que desea es formular una consulta sobre formación online, cursos bonificados, cursos subvencionados, etc. por favor utilice el formulario de contacto express para recibir una rápida respuesta.
Por el momento no hay comentarios













Nombre:

Email:

Comentario: