martes, 8 de mayo de 2012

1. SESION: Fundamentos del Lenguaje


·         Definición de PHP

Lenguaje de programación usado generalmente en la creación de contenidos para sitios web. Es un lenguaje interpretado especialmente usado para crear contenido dinámico web y aplicaciones para servidores
Es un lenguaje de programación muy potente que, junto con html, permite crear sitios web dinámicos. Php se instala en el servidor y funciona con versiones de Apache, Microsoft IIs, Netscape Enterprise Server y otros.

·         Historia de PHP

PHP tal y como se conoce hoy en día es en realidad el sucesor de un producto llamado PHP/FI. Creado en 1994 por Rasmus Lerdorf, la primera encarnación de PHP era un conjunto simple de ficheros binarios Common Gateway Interface (CGI) escritos en el lenguaje de programación C. Originalmente utilizado para rastrear visitas de su currículum online, llamó al conjunto de scripts "Personal Home Page Tools", más frecuentemente referenciado como "PHP Tools". Con el paso del tiempo se quiso más funcionalidad, y Rasmus reescribió PHP Tools, produciendo una implementación más grande y rica. Este nuevo modelo fue capaz de interaccionar con bases de datos, y mucho más, proporcionando un entorno de trabajo sobre cuyos usuarios podían desarrollar aplicaciones web dinámicas sencillas tales como libros de visitas. En junio de 1995, Rasmus » publicó el codigo fuente de PHP Tools, lo que permitió a los desarrolladores usarlo como considerasen apropiado. Esto también permitió -y animó- a los usuarios a proporcionar soluciones a los errores del código, y generalmente a mejorarlo.

En septiembre de ese mismo año, Rasmus amplió PHP y -por un corto periodo de tiempo- abandonó el nombre de PHP. Ahora, refiriéndose a las herramientas como FI (abreviatura de "Forms Interpreter"), la nueva implementación incluía algunas de las funciones básicas de PHP tal y como la conocemos hoy. Tenía variables como las de Perl, interpretación automática de variables de formulario y sintaxis incrustada HTML. La sintaxis por sí misma era similar a la de Perl, aunque mucho más limitada, simple y algo inconsistente. De hecho, para embeber el código en un fichero HTML, los desarrolladores tenían que usar comentarios de HTML. Aunque este método no era completamente bien recibido, FI continuó gozando de expansión y aceptación como una herramienta CGI --- pero todavía no completamente como lenguaje. Sin embargo, esto comenzó a cambiar al mes siguiente; en octubre de 1995 Rasmus publicó una versión nueva del código. Recordando el nombre PHP, ahora era llamado (resumidamente) "Personal Home Page Construction Kit," y fue la primera versión que presumía de ser, en aquel momento, considerada como una interfaz de scripts avanzada. El lenguaje fue deliberadamente diseñado para asemejarse a C en estructura, haciéndolo una adopción sencilla para desarrolladores familiarizados con C, Perl, y lenguajes similares. Habiendo sido así bastante limitado a sistemas UNIX y compatibles con POSIX, el potencial para una implementación de Windows NT estaba siendo explorada.

El código fue completamente rehecho de nuevo, y en abril de 1996, combinando los nombres de versiones anteriores, Rasmus introdujo PHP/FI. Esta implementación de segunda generación comenzó realmente a desarrollar PHP desde un conjunto de herramientas dentro de un lenguaje de programación de derecho propio. Incluía soporte interno para DBM, mSQL, y bases de datos Postgres95, cookies, soporte para funciones definidas por el usuario, y mucho más. Ese mes de junio, PHP/FI brindó una versión 2.0. Sin embargo, un interesante hecho sobre esto, es que sólo había una única versión completa de PHP 2.0. Cuando finalmente pasó de la versión beta en noviembre de 1997, el motor de análisis subyacente ya estaba siendo reescrito por completo.

Aunque vivió una corta vida de desarrollo, continuó gozando de un crecimiento de popularidad en el aún joven mundo del desarrollo. En 1997 y 1998, PHP/FI tenía un culto de varios miles de usuarios en todo el mundo. Una encuesta de Netcraft en mayo de 1998 indicó que cerca de 60,000 dominios reportaron que tenían cabeceras que contenían "PHP", indicando que el servidor host en efecto lo tenía instalado. Este número se correspondía con aproximadamente el 1% de todos los dominios de Internet del momento. A pesar de estas impresionantes cifras, la maduración de PHP/FI estaba condenada por limitaciones; mientras habían varios contribuidores menores, aún era desarrollado principalmente por un individuo.

PHP 3

PHP 3.0 fue la primera versión que más se parecía al PHP que existe hoy. Encontrando todavía PHP/FI 2.0 ineficiente y falto de las características que necesitaban para impulsar una aplicación de comercio electrónico que estaban desarrollando para un proyecto de universidad, Andi Gutmans y Zeev Suraski, de Tel Aviv, Israel, comenzaron otra nueva versión del analizador subyacente en 1997. Proponiendo Rasmus online, discutieron varios aspectos de la implementación actual y su redesarrollo de PHP. En un esfuerzon para mejorar el motor y comenzar a construir sobre la base de usuario de PHP/FI existente, Andi, Rasmus y Zeev decidieron colaborar en el desarrollo de un nuevo e independiente lenguaje de programación. Este lenguaje completamente nuevo fue publicado bajo un nuevo nombre, que eliminó la implicación del uso limitado personal que el nombre PHP/FI tenía. Fue renombrado simplemente como 'PHP', con el significado de un acrónimo recursivo - PHP: Hypertext Preprocessor.

Una de las mejores características de PHP 3.0 era su gran extensibilidad. Además de proveer a los usuarios finales de una interfaz madura para múltiplies bases de datos, protocolos, y APIs, la sencillez de ampliar el lenguaje mismo atrajo a docenas de desarrolladores que presentaron variedad de módulos. Podría decirse que esta fue la clave para el tremendo éxito de PHP 3.0. Otras características clave introducidas en PHP 3.0 incluían el soporte para programación orientada a objetos y una sintaxis de lenguaje mucho más potente y consistente.

En junio de 1998, con muchos nuevos desarrolladores de todo el mundo unidos al esfuerzon, PHP 3.0 fue anunciado por el nuevo Equipo de Desarrollo de PHP como el sucesor oficial de PHP/FI 2.0. El desarrollo activo de PHP/FI 2.0, que estaba casi parado desde noviembre del año anterior, fue oficialmente finalizado. Después de aproximadamente nueve meses de pruebas públicas, cuando el anuncio de la versión oficial de PHP 3.0 vino, ya estaba instalado en más de 70,000 dominios de todo el mundo, y ya no estaba limitado a sistemas operativos compatibles con POSIX. Una relativamente pequeña parte de de los dominios que tenían instalado PHP estaban albergados en servidores que ejecutaban Windows 95, 98, y NT, y Macintosh. En este punto, PHP 3.0 estaba instalado en aproximadamente el 10% de los servidores web de Internet.
PHP 4

En el invierno de 1998, poco después del lanzamiento oficial de PHP 3.0, Andi Gutmans y Zeev Suraski comenzaron a trabajar en una nueva versión del núcleo de PHP. Los objetivos de diseño fueron mejorar la ejecución de aplicaciones complejas y mejorar la modularidad del código base de PHP. Estas aplicaciones se hicieron posibles por las nuevas características de PHP 3.0 y el apoyo de una gran variedad de bases de datos y APIs de terceros, pero PHP 3.0 no estaba diseñado para un mantenimiento tan complejo de aplicaciones eficientemente.

El nuevo motor, apodado 'Motor Zend' (proviene de sus nombres de pila, Zeev y Andi), alcanzó estos objetivos de diseño satisfactoriamente, y se introdujo por primera vez a mediados de 1999. PHP 4.0, basado en este motor, y asociado con un gran rango de nuevas características adicionales, fue oficialmente publicado en Mayo del 2000, casi dos años después que su predecesor. Además de la mejora de rendimiento de esta versión, PHP 4.0 incluía otras características clave como el soporte para la mayoría de los servidores Web, sesiones HTTP, buffers de salida, formas más seguras de controlar las entradas de usuario y muchas nuevas construcciones de lenguaje.
PHP 5

PHP 5 fué lanzado en Julio del 2004 después de un largo desarrollo y varios pre-releases. Está básicamente impulsado por su núcleo, Zend Engine 2.0 que contiene un nuevo modelo de objectos y docenas de nuevas opciones.

El equipo de desarrollo de PHP incuye docenas de desarrolladores, así como docenas de otras personas trabajando en proyectos relacionados y de soporte para PHP, como PEAR, PECL, y documentación, y una infraestructura en red subyacente de más de cien servidores web individuales en seis de los siete continentes del mundo. Aunque es solo una estimación basada en estadísticas de años ateriores, es seguro suponer que PHP ahora está instalado en diez o quizá cien millones de dominios en todo el mundo.
PHP es un lenguaje creado por una gran comunidad de personas. El sistema fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito en C que permitía la interpretación de un número limitado de comandos. El sistema fue denominado Personal Home Page Tools y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas. Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.

 La siguiente gran contribución al lenguaje se realizó a mediados del 97 cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales. Todas estas mejoras sentaron las bases de PHP versión 3. Actualmente PHP se encuentra en su versión 4, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades actuales y solucionar algunos inconvenientes de la anterior versión. Algunas mejoras de esta nueva versión son su rapidez -gracias a que primero se compila y luego se ejecuta, mientras que antes se ejecutaba mientras se interpretaba el código-, su mayor independencia del servidor web -creando versiones de PHP nativas para más plataformas- y un API más elaborado y con más funciones.

·         Servidor Web Apache

El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un servidor "parcheado") suena igual que Apache Server.

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft3 ).

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.

·         Sintaxis y Estructura de PHP

Hay cuatro conjuntos de etiquetas que delimitan el código PHP:


ü  <?php   y     ?>
ü  <?       y      ?>
ü  <%        y      %>
ü  <script language="php">  y   </script>

De estos cuatro tipos de etiquetas, sólo dos, <?php. . .?> y <script language="php">. . .</script>, están siempre disponibles. El resto pueden ser configuradas en el fichero php.ini para ser o no aceptadas por el intérprete.

·         Mostrar la Información

o   Echo

No es realmente una función (es un constructor del lenguaje), por lo que no se requiere el uso de paréntesis con el. echo (a diferencia de otros constructores del lenguaje) no se comporta como una función, es decir no siempre se puede usar en el contexto de una función. Además, si se quieren pasar más de un parámetro a echo, los parámetros no deben estar entre paréntesis.

echo también tiene sintaxis corta, donde se puede poner el símbolo igual justo después del inicio de la etiqueta de PHP. Este tipo de sintaxis corta solo funciona con la opción de configuración short_open_tag activada.

o   Print

Se utiliza el print como parte de una expresón más compleja, donde el echo no se podría aplicar, debido a que print puede retornar un valor true o false y el echo no. Ahora bien, ¿Por qué se recomienda en la mayoria de foros el uso de la función echo? Pues el principal motivo es la velocidad, el echo es mucho más veloz que el print, algunos estiman que hasta en un 50%.
Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

o   Printf

  La función printf se utiliza para generar una cadena formateada en PHP.
 En la sintaxis anterior "format", especifica el formato de salida de la cadena, en el cual el usuario puede incluir los siguientes caracteres de formato " %% ,%b, %c, %d, %e, %u, %f, %F, %o, %s, %x, %X ", "arg1" es el argumento insertado en el primer signo %, "arg2" en el segundo signo %,"arg++" es el valor opcional que se puede insertar en el tercer y cuarto signo %.

·         Uso de Variables Locales

Una variable declarada en una función se considera local, es decir, que se puede hacer referencia exclusivamente en esa función. Cualquier cesión fuera de esa función se considera que una variable totalmente diferente de la que figura en la función:

 <?
 $ X = 4;
 assignx función () {
 $ X = 0;
 print "\ $ x dentro de la función es de $ x.
  ";
 }
 assignx ();
 print "\ $ x fuera de la función es de $ x.
  ";
 >

Esto producirá el siguiente resultado.

 $ X dentro de la función es 0.
 $ X fuera de la función es 4.

·         Alcance de las Variables

El alcance de una variable (scope en inglés) determina desde que porción de código PHP dicha variable es accesible. Una variable definida en el cuerpo del script (es decir fuera de una function o class) tiene un alcance global, y puede ser accedida por el script durante cualquier momento de su ejecución. Una variable dentro de una función no está disponible al resto del programa, externo a dicha función, y por ello tiene un alcance local; de la misma manera, las variables definidas fuera de una función tampoco pueden ser accedidas desde dentro de la función.

·         Operadores Aritméticos

En PHP un operador es un simbolo especial que indica al compilador que debe efectuar una operacion matematica o logica.

Php reconoce los siguientes operadores aritmeticos:
Operador           Operacion
+                            SUMA
-                             RESTA
*                            MULTIPLICACION
/                             DIVISION
%                           MODULO O RESIDUO

·         Tipos de Datos

PHP dispone distintos tipos de estos datos que es necesario conocer para poder programar con garantías. Ninguno de ellos es difícil de asimilar, aunque unos son más simples que otros.

También hay que decir que si asignamos una variable a un tipo de dato, ésta adquirirá en su denominación la del tipo de dato. Por ejemplo, si asignamos a una variable un dato booleano ésta se llamará variable de tipo booleano.
Booleanos

Es el tipo de dato más simple que existe, ya que solo puede tener dos valores posibles que se conocen como true o false. El primer valor significa verdadero, y el segundo falso.

Para hacer una variable de este tipo tan solo hay que escribir su nombre y asignarle o true o false; ya que éstos son los dos únicos datos booleanos que existen.

    <?php
     $guapo = true;
     $simpatico = false;
    ?>

Cabe decir también que el valor false equivale al número 0; mientras que el valor true a cualquier otro número. No obstante, se suele utilizar el número 1 para true.
Enteros

Como en matemáticas, este tipo de dato se refiere a números enteros; es decir, a números que no son decimales, sinó que poseen unidades enteras. También se incluye el cero y los números negativos.

    <?php
     $cero = 0;
     $ocho = 8;
     $ocho = -3;
    ?>

Decimales

Los decimales también son un tipo de datos en PHP, son similares a los enteros pero con la particulariedad de soportar decimales. Estos decimales hay que separarlos del número entero por un punto, y no por una coma como estamos acostumbrados en matemáticas.

    <?php
     $mi_nota = 7.5;
     $tu_nota = 8.67;
     $mi_negativo = -2.32;
    ?>

Cadenas

Estie tipo de dato, las cadenas, es uno de los más importantes ya que es un tipo de dato que se tiene que utilizar muy a menudo en programación PHP. Una cadena es una sucesión de caractéres. Estos pueden ser letras, números, signos de puntuación...

Para escribir cadenas es necesario ponerlas entre comillas, con la posibilidad que sean comillas simples o dobles. Vemos un ejemplo:

    <?php
     $mi_cadena = 'hola,  mundo.';
    ?>

·         Constantes 


Una constante es un identificador para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script. (Las constantes especiales __FILE__ y __LINE__ son una excepción a esto, ya que actualmente no lo soin). Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de constantes suelen declararse en mayúsculas

El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre de constante válido empieza con una letra o un caracter de subrayado, seguido por cualquier número de letras, números, o subrayados. Se podrían expresar mediante la siguiente expresión regular: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Nota: Para nuestros propósitos , entenderemos como letra los carácteres a-z, A-Z, y los ASCII del 127 hasta el 255 (0x7f-0xff).

El alcanze de una constante es global, Es decir, es posible acceder a ellas sin preocuparse por el ámbito de alcance.
Sintaxis

Se puede definir una constante usando la función define(). Una vez definida, no puede ser modificada ni eliminada .

Solo se puede definir como constantes valores escalares (boolean, integer, float y string ).

Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de las variables, no se tiene que especificar el prefijo $. Tambien se puede utilizar la función constant(), para obtener el valor de una constante, en el caso de que queramos expresarla de forma dinámica Usa la función get_defined_constants() parar obtener una lista de todas las constantes definidas.

·         Variables Estáticas y Globales 

Las variables estáticas (static) se definen dentro de una función, inicializándose la variable la primera vez que se llama a la función, y recordando su valor en posteriores llamadas a la función.
Las variables globales no se pueden declarar dentro de una función, sino que se declaran fuera y desde la función se invócan tomando el valor que tengan fuera y viéndose la variable alterada por las modificaciones que le hagamos dentro de la función (se pasan por referencia).

Para declarar una variable global se utiliza la sentencia var y para llamarla dentro de una función utilizaremos global.

No hay comentarios:

Publicar un comentario