Libro de Programación Orientada a Objetos en PHP

Información sobre el libro

¿Para qué este libro?

Ya se, ya se, hay un montón del libros sobre PHP. Pero este libro no es uno más. Con éste libro aprenderás, de verdad, lo que es la programación orientada a objetos. Otros autores se limitan a escupir conceptos y ejemplos sin demasiado sentido. Aquí aprenderás el por qué de las cosas.

Por ejemplo ¿Cuál es la diferencia entre una clase abstracta y un infertace? ¿Cuándo se debe usar cada uno? ¿Para qué sirve un trait? ¿Por qué no debes hacer que todas tus propiedades sean public? ¿Qué son los getters y los setters y por qué debes usarlos?

Y no solo eso, también vas a aprender a usar herramientas como Composer, Git o PHPUnit con las que tu productividad se disparará. Verás la utlidad de cada una de ellas y su manejo básico para que puedas empezar a usarlas.

Y claro, no podemos olvidar las pruebas automatizadas (los famosos test) y el TDD (el desarrollo dirigido por pruebas) que también se tratan en el libro.

Todo esto siguiendo las recomendaciones del estándar PSR que tiene un capítulo dedicado. ¿Qué es eso del PSR0, PSR4 y demás siglas que seguro que has visto tantas veces? Por fin lo entenderás y sabrás aprovecharlo.

Y si habías abandonado el PHP hace un tiempo y estás oxidado también hay un capítulo para hacer un repaso rápido. Este capítulo también te servirá de repaso aunque no hayas dejado el PHP de lado. Incluyo algunos conceptos muy útiles que suelen ser poco conocidos.

Al terminar, tu código será de más calidad, más fácil de leer y mantener. Tus clientes o tus jefes estarán más contentos con tu trabajo. Sentirás orgullo del código que escribas. En resumen con este libro te convertirás en un ninja del PHP.

¿En qué formatos está disponible?

Por ahora estará disponible en formato PDF. Con este formato podrás verlo en cualquier lugar.

Como no a todo le gusta el formato PDF, y para que te resulte más cómodo, estoy trabajando para que esté disponible en otros formatos como .mobi y ePub. Así podrás leerlo cómodamente desde tu móvil, tablet, kindle o lo que te guste más.

Por supuesto no va a haber ningún sistema anti copia, ni DRM ni cosas de esas. Confío en la buena fe de la gente.

¿Y algo más?

Claro ¡no se vayan todavía que aún hay más! Esto es en lo que estoy trabajando:

  • Los ejemplos del libro serán descargables.
  • Habrá cuestionarios online con los que podrás comprobar lo aprendido (e incluso presumir y mostrar a otros tu puntuación).
  • Tendrás ejercicios para practicar.
  • Y hasta habrá una sección para dudas relacionadas con el libro.


Capítulos

Lista de capítulos disponibles por ahora:

  1. Introducción
  2. Herramientas
    • Antes de meternos de lleno en la programación orientada a objetos en PHP voy a compartir las herramientas que suelo usar. Estas no son las únicas herramientas que existen y puede ser que existan otras mejores. Yo las recomiendo porque todas y cada una de ellas me han ayudado a ser más productivo en mi trabajo y consiguen ahorrarme un montón de tiempo.
  3. Las buenas prácticas
    • El capítulo donde describo lo que son las buenas prácticas y hago una introducción al estándar PSR.
  4. Introducción express a PHP
    • Un repaso rápido a PHP donde comento algunos aspectos poco conocidos de este lenguaje.
  5. Programación orientada a objetos
    • Este será el capítulo que nos introducirá en el mundo de los objetos en PHP. Veremos las ventajas que tiene usarlos, qué es un objeto, la diferencia con una clase, etc. Aprenderás en detalle lo que son las propiedades de un objeto, cómo acceder a ellas desde dentro y fuera de la clase y cómo manipularlas. El capítulo, además de servir de introducción, resuelve las preguntas habituales que surgen a los que se enfrentan a los objetos por primera vez. También previene sobre los fallos que se suelen cometer.
  6. Un ejemplo paso a paso
    • Llegados a este punto hemos avanzado bastante y es hora de hacer un pequeño parón y practicar lo aprendido. Todavía nos queda bastante por revisar (como por ejemplo los métodos y propiedades privados) pero es conveniente afianzar conocimientos antes de seguir. En este capítulo te propongo un sencillo ejemplo. Voy a aprovechar para comentar lo que se consideran hoy en día buenas prácticas y algunos consejos para hacer tu código más legible.
  7. Encapsulación
    • Hasta ahora hemos visto que las propiedades y los métodos de nuestras clases eran todas public. Esto es muy cómodo ya que podemos acceder de forma directa y sencilla a todas ellas. Pero habrá casos en los que puede no interesar que algunos métodos y propiedades sean accesibles desde el «exterior». ¿Y por qué podemos querer «ocultar» nuestros métodos y propiedades? Vamos a verlo en el siguiente apartado.
  8. Herencia
    • Y este capítulo está dedicado a la herencia de clases y sus peligros.
  9. Introducción al desarrollo guiado por pruebas
    • El tan de moda TDD no podía quedarse sin su capítulo de introductorio con un ejemplo paso a paso.
  10. Constantes
    • Las constantes no tienen mucho secreto. El valor de una constantes es… constante. Esto quiere decir que no puede cambiar y solo podemos darle valor en el momento de «definirla». Si en algún momento vemos que debemos cambiar el valor de una constante eso quiere decir que debemos usar una variable (o propiedad) en su lugar. En este capítulo vamos a ver cómo se usan las constantes dentro de una clase. Voy a aprovechar este capítulo para mostrar cómo el uso de constantes hace que el código sea más legible.
  11. Interfaces
    • ¿Qué es un interface y por qué es tán importante? En este capítulo lo entenderás.
  12. Clases abstractas
    • Este capítulo está dedicado a lo que es una clase abstracta, cómo se usa y las diferencias con un Interface.
  13. Traits
    • El problema de las clases abstractas y de la herencia es que una clase solo puede tener una madre (como en la vida real). Por contra, una clase sí que puede implementar varios interfaces. Pero, claro, en los interfaces no podemos meter nada de código. Entonces ¿qué podemos hacer cuando una clase va a implementar dos interfaces y, además, tiene código en común. ¡Qué dilema! En este capítulo veremos cómo resolver el problema.
  14. Métodos y propiedades Static
    • A lo largo del capítulo explicaré lo que son las clases y métodos static y hablaré sobre las razones por las que hay gente que desprecia todo lo static con tanto ahínco.
  15. Clases y métodos Final
    • ¿Qué es una clase final o u método final y cuándo usarlo.
  16. Composición
    • La composición es un concepto muy sencillo de entender que nos puede ayudar a mejorar nuestro código de manera sorprendente.
  17. Métodos mágicos
    • El misterio de los métodos mágicos explicado.
  18. Excepciones
    • Las excepciones se producen, por ejemplo, cuando falla una conexión a una base de datos. En nuestra aplicación podemos añadir código que se encargue de manejar estas excepciones. Esto nos permite que el código «normal» quede separado del código que se encarga de solucionar los «problemas». Vamos a ver qué son las excepciones y cuándo usarlas.
  19. Introducción a Git
    • Otro capítulo que no podía faltar era el de introducción al manejo de Git, uno de los controles de versiones más usados hoy en día.
  20. Términos y definiciones
    • Y para terminar una larga lista de términos usados en el libro explciados de manera sencilla.