Mientras Sé que esta pregunta se ha respondido ya, me siento como si Puedo agregar valor aquí.
No creo que deba usar PHP como lenguaje de programación para aprender OOP. Si desea aprender OOP para aplicaciones web, realmente debería estar mirando C# o Java. Una vez que haya aprendido OOP, puede aplicar este conocimiento a PHP. Un ejemplo de un libro que solía aprender OOP era Big Java by Cay S. Horstmann
¿Por qué digo esto ??? Debido a que hay literalmente millones de ejemplos en PHP de cómo hacer las cosas, sin embargo, no son muchos ejemplos de cómo programar correctamente. Además de esto, PHP te permite tomar muchos atajos, que no serían aceptables con los gustos de Java. Como tal, si programa PHP con una cabeza Java, entonces creo que será un programador más fuerte. OOP no es específico del idioma, es un paradigma de programación.
Si debe aprender OOP usando PHP, entonces le recomendaría que eche un vistazo a algún código fuente real en los repositorios públicos de github. Puede buscarlos en packagist.org. Si son un repositorio público decente, contendrán un archivo readme.md que le mostrará cómo usar los paquetes del compositor. Por ejemplo, https://github.com/moltin/laravel-cart, es un ejemplo de un paquete de carrito de compras que usted podría usar en su aplicación. Observe cómo no necesita mirar el código fuente del paquete para comprender qué hacen los paquetes. El paquete se ha escrito, y no le importa cómo funcionan, pero los usa, así que solo necesita saber cómo usarlos. Esto es exactamente de lo que se trata OOP.
No me importa cómo la clase de carrito de la compra agrega un artículo al carro, solo quiero crear un carro nuevo y agregarle algo.
Lo que estás haciendo, sin embargo, es sumergirte en el código fuente como una herramienta para entender cómo funciona el OOP.
Además de esto, y probablemente más importante, para el desarrollo de aplicaciones web, investigaría el patrón de diseño de MVC.
El patrón de diseño MVC significa Modelo, Vista, Controlador. En el caso de una aplicación web, The Model es responsable de modelar la base de datos, la vista es responsable de mostrar el contenido al usuario. El controlador es responsable de interactuar con el modelo y manejar la entrada del usuario.
Creo que debería intentar instalar el Laravel Framework u otro "marco moderno decente" en su máquina local. ¿Por qué digo moderno, porque los marcos modernos requieren una versión PHP mínima de 5.3+ que significa que el PHP en su máquina admitiría OOP real similar a la que obtendría de los gustos de Java.
Hay muchos tutoriales que le mostrarán cómo crear aplicaciones web en laravel. Inmediatamente, verás que cuando creas un controlador, extiendes un BaseController. Cuando creas un Modelo, extiendes Eloquent. Esto significa que ya estará usando Polimorfismo en su código. Verá que al usar clases, se encapsulan y verá que cada clase tiene un rol específico.
Cuando desee interactuar con la base de datos, inicialmente creará un objeto new Model
dentro de los métodos del controlador. A medida que empiece a aprender más, comenzará a aprender cómo inyectar dependencias en el controlador, luego aprenderá cómo volcar sus modelos y crear repositorios y programas en las interfaces.
Un libro decente sobre cómo aprender Laravel para principiantes sería https://leanpub.com/codebright de Dale Rees. Conocí a Dale en una reunión de Laravel hace aproximadamente 2 semanas.
Además de esto, a medida que se Creación de aplicaciones web más competentes, usted comenzará a aprender cómo aplicar los siguientes principios a su programación:
- principio de responsabilidad individual
- Abierto Cerrado Principio
- Principio de sustitución de Liskov
- Principio de aislamiento de interfaz
- Principio de inversión de dependencia
** Por favor, vea también: ** "jerga-libre de la comparación programación orientada a objetos vs procesal": http://stackoverflow.com/questions/1530868 – dreftymac