Anoia PHP Conference - Introducción, instalación y uso

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    Anoia PHP Conference - Introducción, instalación y uso - Presentation Transcript

    1. Anoia PHP Conference Igualada, noviembre 2007 Introducción, instalación y uso.
    2. Agenda ► Un poco de historia ► Características generales ► Configurar una plataforma PHP ► Configurar un entorno de desarrollo ► Anatomía del lenguaje y sintaxis ► Extensiones y librerías ► Ejemplo práctico: Portal de ocio
    3. Un poco de historia
    4. Un poco de historia ► PHP  Creado por Rasmus Lerford en 1995  Inicialmente un conjunto de scripts en Perl  La versión en C permitía acceder a BBDD  Código fuente publico
    5. Un poco de historia ► PHP Funcionalidad básica  Variables estilo Perl  Embebido en HTML  Interpretación de las variables de un formulario  Cambio de nombre PHP/FI  ►PersonalHome Page ►Forms Interpreter
    6. Un poco de historia ► PHP/FI 2.0 Lanzada en noviembre 1997  Ya tenia una comunidad de miles de usuarios  alrededor del mundo.  50K dominios en todo el mundo (1% Internet)  Mucha gente colaborando en el código  Casi todas sus versiones fueron BETA
    7. Un poco de historia ► PHP 3.0 Creada en 1997 y publica en junio del 1998  La primera versión que se asemeja a la actual  Creada por Andi Gutmans y Zeev Suraski  Andi, Zeev y Rasmus anunciaron PHP 3 como el  sucesor oficial de PHP/FI 2.0  Creación de ZEND  ZEND = Zeev + Andi
    8. Un poco de historia ► PHP 3.0 Del corazón a las extensiones  Normalización de los nombres de funciones y  constantes.  Cambio en las siglas del acrónimo PHP  En su pico, fue instalado en el 10% de los servidores de Internet.
    9. Un poco de historia ► PHP 4.0  1998 se comenzó a desarrollar una reescritura de PHP, y se hizo publico en mayo del 2000.  Creación del Zend Engine a mediados de 1999  Características destacables ►Soporte para mas servidores Web ►Sesiones (frente a cookies) ►Buffer de salida ►Opciones de seguridad  20% del uso en Internet
    10. Un poco de historia ► PHP 5.0 Lanzado en julio del 2004  Incluye el Zend Engine 2.0  Características principales  ►Nuevo modelo de objetos ►Excepciones ►Mas facilidades para trabajar con XML
    11. Grandes hitos entres versiones ► PHP 4 vs PHP 5  Type hinting: Forzar el tipo y metodo de un parametro.  Todos los objetos son pasados por referencia.  Constantes dentro de una clase.  Clases: Abstractas, interfaces, constantes a nivel de clase, visibilidad  Nuevas extensiónes ►SimpleXML ►PDO
    12. Grandes hitos entres versiones ► PHP 4 vs PHP 5 Excepciones: Para el control de errores  Nuevo nivel de error_reporting: E_STRICT  ►Detecta código obsoleto
    13. Grandes hitos entres versiones ► PHP 5 vs PHP 6  Unicode ►PHP 6 = PHP 5 + UNICODE ►PHP 5 = PHP 6 – UNICODE ►UNICODE = PHP 6 – PHP 5  Namespaces  Se quitaran definitivamente ►register_globals
    14. Características generales
    15. Características de PHP ► Lenguaje de scripting ► Ejecutado en el servidor ► Open Source ► Especialmente diseñado para el desarrollo de aplicaciones Web  Apto para la línea de comandos  Aplicaciones graficas con PHP-GTK ► Combinala programación procedural y la programación orientada a objetos.
    16. ¿Qué puedo hacer con PHP? ► Aplicaciones Web  Línea de comando (tareas programadas, cron)  Aplicaciones de escritorio: PHP-GTK  ► En la mayoría de sistemas operativos ► En la mayoría de servidores Web ► Generar dinámicamente HTML  Imágenes  PDF  ZIP 
    17. ¿Qué mas puedo hacer con PHP? ► Abstracción de BBDD (PDO y ODBC) ► Comunicarse con otros protocolos ► Procesar textos en distintos formatos ► Otras funciones (compresión)
    18. ¿Qué no puedo hacer con PHP? ► Acceder al hardware directamente (memoria RAM, tarjeta gráfica, etc.) ► Programación de aplicaciones 3D ► Etc…
    19. ¿Qué no puedo hacer con PHP? ► Convertir videos ► Editar audio ► Algunas soluciones alternativas:  Hacer un puente entre PHP y otra tecnología (ej: Java)  Escribir una extensión  Invocar comandos del sistema operativo
    20. Que tipo de código se encuentra ► Espaguetti  Poca separación de presentación y lógica ► Código forzadamente OOP  Sobre uso de clases y objetos ► Objetivo: Balancear ambos paradigmas ► Usar patrones de diseño  MVC
    21. ¿Quién usa PHP? ► Emprendimientos de todos los tamaños ► Grandes portales FaceBook  Digg  Wikipedia  ► Proyectos Open Source  WordPress  Drupal ► Etc.
    22. ¿Quién usa PHP? Grandes portales ► DIGG
    23. ¿Quién usa PHP? Grandes portales ► Flickr
    24. ¿Quién usa PHP? Grandes portales ► Wikipedia
    25. Uso y evolución de PHP
    26. PHP respectos a otros lenguajes ► PHP respecto a Java Requiere menos recursos del servidor  La curva de aprendizaje es muy exponencial  Sintaxis mas flexible  Mas joven  Tiempos de desarrollo menores 
    27. Configurar una plataforma PHP
    28. Componentes del servidor ► Respuesta: LAMP ► Linux ► Apache ► MySQL ► PHP
    29. Instaladores automáticos
    30. Configuración ideal
    31. Otras configuraciones
    32. Otras configuraciones
    33. Funcionamiento integral
    34. Instalación de apache ► Compilando su código fuente ► Con instaladores automáticos ► “Copiando y pegando”
    35. Configuración del Apache ►A traves del fichero httpd.conf LoadModule php5_module <PATH>/php5apache.dll  AddModule mod_php5.c  DirectoryIndex index.html index.php  DocumentRoot <PATH>  AddType application/x-httpd-php .php .php3 .php4  .phtml  AddType application/x-httpd-php-source .phps  PHPIniDir <PATH>
    36. Instalación de PHP ► “Copiando y pegando” ► Instaladores automáticos
    37. Configuración de PHP ►A traves del fichero php.ini register_globals=On|Off  extension_dir=<PATH>  extension=<FILE.DLL>  include_path=<PATH>;<PATH>  ► Modelos a seguir php-dist.ini  php-recommend.ini 
    38. Configuración de PHP ► short_open_tag = Off ► error_reporting = E_ALL & ~E_NOTICE ► display_errors = On ► upload_tmp_dir = \"c:\\apache\\php\\uplodadtmp\" ► extension=php_mysql.dll ► session.save_path = \"c:\\apache\\php\\session\"
    39. Probando la instalación <?php phpinfo(); ?>
    40. Configurar un entorno de desarrollo
    41. Herramientas de trabajo ► Completos IDE PHP Development Environment  Zend Studio  Zend “Neon”  ► “Simples” editores  VIM  PHPEditor
    42. Herramientas de trabajo ► VIM, VI Improved
    43. Herramientas de trabajo ► Eclipse PDT (PHP Development Toolkit)
    44. Herramientas de trabajo ► NuSphere PhpED
    45. Anatomía del lenguaje y sintaxis
    46. Estructura de un script PHP ► Combinación de código PHP, HTML, etc… ► Opcionalmente, compuesto de uno o mas ficheros  include (include_once)  require (require_once)
    47. PHP básico ► Sintaxis ► Operadores ► Variables ► Constantes ► Estructurasde control ► Constructores del lenguaje y funciones
    48. Tags de PHP ► Como PHP fue diseñado para ser incorporado en el HTML, el interprete necesita distinguir entre código PHP y etiquetas HTML. ► Los tags mas comunes son:  Apertura: <?php  Cierre: ?>
    49. Tags PHP ► Mientras que el estilo completo es el recomendado, también hay otras opciones <script language=“php”></script>  <% %>  <? ?> 
    50. Tags PHP ► Lostags cortos son bastante populares, pero pueden ser deshabilitados (para evitar problemas con XML)  <? echo ‘hola’; ?>  <?= ‘hola’; ?> ► Ambos juegos de tags pueden ser deshabilitados usando la directiva short_open_tag en el php.ini
    51. Tags PHP ► Conclusión:Usa los tags largos para asegurar que tu aplicación será fácilmente portable a múltiples servidores u opciones de configuración.
    52. Code break
    53. Comentarios ► Losbuenos programadores comentan su código, PHP permite varias formas de hacerlo: // esta es una línea  # Esta también  /*  múltiples líneas */
    54. Variables ► Las variables proveen un contenedor de datos. ► Reglas para nombrar una variable  Pueden solo contener letras, números o _  Deben comenzar con una letra o _
    55. Variables ► Aunque las variables de PHP son de tipo aparentemente indefinido son almacenadas y manejadas en uno de los tipos internos de PHP Escalares: boolean, string, integer, float  Compuestos: array, object  Tipos especiales: resource, null 
    56. Tipos escalares ► Strings:Un string es una cadena de caracteres. ► Cada carácter ocupa un byte de memoria. Por esto PHP no tiene soporte para juegos de caracteres de múltiples bytes. ► Esto cambia con PHP 6. ► No hay limites en la longitud.
    57. Strings ► Lascadenas de texto pueden ser encerradas de tres maneras.  ‘’ – Comillas simples, estas cadenas son mostradas tal cual son  “” – Comillas dobles, variables y secuencias de escape son reemplazadas por su valor
    58. Strings ► Sintaxis HEREDOC ► Similar a las comillas dobles, pero permite múltiples líneas, y no necesita proteger las comillas. echo <<<TEST Hola mundo. Esto es “HEREDOC”. TEST;
    59. Enteros ► Números sin decimales. ► Pueden ser especificados en distintas bases  Octal  Hexadecimal
    60. Flotantes ► Puedenusarse para representar valores muy grandes o pequeños. A = 1.123  B = 1.2e3 (1200)  C = 7e-10 (0.00000007) 
    61. Boolean ► Contienen true = verdadero != 0  false = falso = 0  ► TRUE y FALSE son case-insensitive
    62. Code break
    63. Arrays (conjuntos) ► Pueden contener cualquier tipo de variable, incluso otros arrays ► Tipos de índice  Numéricos  Asociativos ► Sepueden usar como pilas o colas ► Decenas de funciones para operar
    64. Arrays (conjuntos) ► Fácilesde iterar ► Frecuentemente utilizados en BBDD ► Numericos  Tienen un índice numero, auto asignado, o asignado por el usuario ► Asociativos  Tienen un índice de tipo string; similar a un hashmap
    65. Arrays ► Variablesdel tipo Array, disponibles automáticamente en scripts PHP $GLOBALS  $_FILES  $_SERVER  $_ENV  $_REQUEST  $_GET  $_POST  $_COOKIE  $_SESSION 
    66. Arrays ► Operaciones típicas con arrays Construcción  Agregar valores  Iterar  Ordenar 
    67. Code break
    68. Funciones ► No tiene valor de retorno en su declaración Facilitan el mantenimiento  Evitan la duplicación de código  ► Aceptan numero variable de parámetros ► Pueden ser definidas dentro de otra función
    69. Funciones varias ► Funciones de fecha y hora  Date ► Para trabajar con strings  Strlen  Substr ► Envio de emails  mail
    70. Funciones varias ► Funciones de lectura/escritura ficheros File_put_contents  File_get_contents  ► Tambien se puede abrir como recurso  Fopen  fwrite  Fclose ► Listado de directorios/ficheros  Opendir  readdir  closedir
    71. Code break
    72. Clases y objetos ► Permiten combinar datos y funciones en un sola unidad lógica ► A partir de la versión 5 de PHP aparecen: Clases abstractas  Interfaces  Type hinting 
    73. OOP ► Incluyen visibilidad de propiedades y métodos ►Public: La propiedad o método puede ser accedida desde cualquier sitio. ►Private: La propiedad o método solo puede ser accedida por su clase ►Protected: La propiedad o método solo puede ser accedida por la clase o sus derivadas ►Final: la propiedad o método no puede ser sobrescrita
    74. Clases y objetos ► Funciones especiales __construct  __destruct  __toString  __sleep  __wakeup  __call  __get  __set 
    75. Code break
    76. Excepciones ► Método unificado para el tratamiento de errores ► Estructura Throw  try  catch 
    77. Code break
    78. Resource ► Un recurso es una variable especial que representa un identificador de mas bajo nivel (como un fichero, una conexión a bbdd, etc) ► La función que crea una variable de tipo resource, generalmente ofrece otra función que libera los recursos consumidos por esa variable.
    79. null ► Es una variable que no tiene tipo ni valor ► No es lo mismo que el entero 0 o que la cadena vací
    80. Constantes ► Constantespermiten crear un identificador especial que no puede ser cambiado una vez creado ► Función define()
    81. Code break
    82. Operadores ► Asignación ► Aritméticos ► Concatenación (.) ► Ternario
    83. Otros operadores ►@  Elimina los mensajes de error de la expresión ► `` (backticks)  Ejecutan el contenido como un comando de shell ► Instanceof  Devuelve true si la variable es de tipo class y es una subclase o subinterface
    84. Operadores ► Backtick (``)  Puede ser peligroso porque se ejecuta con los mismos permisos que el webserver. ► Instanceof  Es útil para verificar que la variable pasada como parámetro se corresponde con el tipo esperado.
    85. Code break
    86. Estructuras de control ► If ► Switch ► While ► Do While ► For ► Foreach
    87. Estructuras de control ► Exit:detiene la ejecución del script. ► Puede, opcionalmente, devolver un mensaje o código de error. exit(-1); exit(‘algo fue mal’);
    88. Code break
    89. GET y POST ► GET  Información enviada como parámetros en la URL  Limite del tipo y longitud de datos enviados ► POST  Datos enviados junto a los encabezados  Información oculta  Permite subir contenidos “multipart”
    90. Programación Web ► Supervariables _GET  _POST  _FILES  _REQUEST: GET/POST/COOKIE 
    91. Code break
    92. Subida de ficheros ► Subiendo ficheros a través de un formulario  Variables involucradas ►$_POST ►$_FILES  Funciones a utilizar ►is_uploaded_file ►move_uploaded_file
    93. Subida de ficheros ► Información que contiene la variable $_FILES $_FILES[‘fichero’][‘name’]  $_FILES[‘fichero’][‘type’]  $_FILES[‘fichero’][‘size’]  $_FILES[‘fichero’][‘tmp_name’]  $_FILES[‘fichero’][‘error’] 
    94. Code break
    95. Trabajar con sesiones ► Permiten recordar la sesión de un usuario ► Posible de almacenar En el sistema de fichero  En memoria  En la URL  En cookies 
    96. Trabajar con sesiones ► Session_name ► Session_start ► Array $_SESSION ► Session_destroy
    97. Code break
    98. Trabajar con BBDD ► Funcionesespecificas para cada bbdd ► Ejemplo MySQL (des)Conectarse: mysql_connect/mysql_close  Consultas: mysql_query  Recuperar registros:  ►Mysql_fetch_object ►Mysql_fetch_assoc ►Mysql_fetch_row
    99. Code break
    100. Extensiones mas conocidas ► Para compresión/descompresion php_zip.dll  php_bzip2.dll  php_rar.dll  ► Para trabajar con BBDD php_pdo.dll  php_pdo_*.dll (* = mysql, pgsql, oracle) 
    101. Extensiones mas conocidas ► Para trabajar con imágenes  php_gd2.dll ► Para internacionalizar aplicaciones  Php_gettext.dll
    102. Extensiones de PHP ► PDO PHP Data Objects  Para conectarse a diferentes BBDD a través de  una única interfaz  API orientada a objetos  Similar al JDBC de Java
    103. Librerías y frameworks ► PEAR ► Zend Framework ► Struts4php ► Phpmvc ► Molins Framework
    104. Librerías útiles ► Smarty ► JPGraph
    105. JPGraph ► Permite generar gráficos estadísticos ► Orientada a objetos ► Gratuita ► Fácilmente configurable ► Multitud de gráficos
    106. Trabajar con un ejemplo Portal de ocio
    107. Ejemplo: Portal de ocio
    108. Muchas gracias Santiago Lizardo santiago.lizardo@gmail.com

    + Santiago LizardoSantiago Lizardo, 2 years ago

    custom

    3313 views, 2 favs, 2 embeds more stats

    Anoia PHP Conference - Introducción, instalación more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3313
      • 3294 on SlideShare
      • 19 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 106
    Most viewed embeds
    • 18 views on http://200.21.133.254
    • 1 views on http://localhost

    more

    All embeds
    • 18 views on http://200.21.133.254
    • 1 views on http://localhost

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories