https://github.com/pickleboxer/php-oop-learning
https://github.com/pickleboxer/php-oop-learning
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pickleboxer/php-oop-learning
- Owner: PickleBoxer
- Created: 2025-04-08T09:56:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-08T09:59:14.000Z (about 1 year ago)
- Last Synced: 2025-06-24T07:37:36.336Z (12 months ago)
- Size: 414 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ PHP OOP Learning Repository
[](https://www.php.net/releases/7_4_0.php)
[](LICENSE)
[](CONTRIBUTING.md)
Welcome to the PHP Object-Oriented Programming (OOP) Learning Repository. This comprehensive guide covers everything from basic OOP concepts to advanced enterprise patterns in PHP.
---
## ๐ Table of Contents
- [1. Fundamentals of OOP](./01-fundamentals/README.md)
- [2. Advanced OOP Concepts](./02-advanced-oop/README.md)
- [3. SOLID Principles](./03-solid-principles/README.md)
- [4. Design Patterns](./04-design-patterns/README.md)
- [5. Enterprise Patterns](./05-enterprise-patterns/README.md)
- [6. Code Quality and Standards](./06-code-quality/README.md)
---
### 1. ๐ฐ Fundamentals of OOP
Click to expand Fundamentals topics
- [Classes and Objects](./01-fundamentals/01-classes-and-objects.md)
- [Properties and Methods](./01-fundamentals/02-properties-and-methods.md)
- [Encapsulation](./01-fundamentals/03-encapsulation.md)
- [Inheritance](./01-fundamentals/04-inheritance.md)
- [Polymorphism](./01-fundamentals/05-polymorphism.md)
- [Abstraction](./01-fundamentals/06-abstraction.md)
- [Interfaces](./01-fundamentals/07-interfaces.md)
- [Namespaces](./01-fundamentals/08-namespaces.md)
- [Practical Project](./01-fundamentals/09-practical-project.md)
- [Best Practices](./01-fundamentals/10-oop-cheat-sheet.md)
### 2. ๐ Advanced OOP Concepts
Click to expand Advanced OOP topics
- [Namespaces](./02-advanced-oop/01-namespaces.md)
- [Traits](./02-advanced-oop/02-traits.md)
- [Anonymous Classes](./02-advanced-oop/03-anonymous-classes.md)
- [Late Static Binding](./02-advanced-oop/04-late-static-binding.md)
- [Object Cloning & Comparison](./02-advanced-oop/05-object-cloning-comparison.md)
- [Reflection](./02-advanced-oop/06-reflection.md)
- [Magic Methods](./02-advanced-oop/07-magic-methods.md)
- [Type Declarations](./02-advanced-oop/08-type-declarations.md)
- [Iterators & Generators](./02-advanced-oop/09-iterators-generators.md)
- [Closure & Callable](./02-advanced-oop/10-closure-callable.md)
### 3. โ๏ธ SOLID Principles
Click to expand SOLID topics
- [Single Responsibility Principle](./03-solid-principles/01-single-responsibility.md)
- [Open/Closed Principle](./03-solid-principles/02-open-closed.md)
- [Liskov Substitution Principle](./03-solid-principles/03-liskov-substitution.md)
- [Interface Segregation Principle](./03-solid-principles/04-interface-segregation.md)
- [Dependency Inversion Principle](./03-solid-principles/05-dependency-inversion.md)
### 4. ๐๏ธ Design Patterns
Click to expand Design Patterns topics
#### Creational Patterns
- [Factory Method](./04-design-patterns/01-creational/01-factory-method.md)
- [Abstract Factory](./04-design-patterns/01-creational/02-abstract-factory.md)
- [Builder](./04-design-patterns/01-creational/03-builder.md)
- [Singleton](./04-design-patterns/01-creational/04-singleton.md)
- [Prototype](./04-design-patterns/01-creational/05-prototype.md)
#### Structural Patterns
- [Adapter](./04-design-patterns/02-structural/01-adapter.md)
- [Bridge](./04-design-patterns/02-structural/02-bridge.md)
- [Composite](./04-design-patterns/02-structural/03-composite.md)
- [Decorator](./04-design-patterns/02-structural/04-decorator.md)
- [Facade](./04-design-patterns/02-structural/05-facade.md)
- [Flyweight](./04-design-patterns/02-structural/06-flyweight.md)
- [Proxy](./04-design-patterns/02-structural/07-proxy.md)
#### Behavioral Patterns
- [Chain of Responsibility](./04-design-patterns/03-behavioral/01-chain-of-responsibility.md)
- [Command](./04-design-patterns/03-behavioral/02-command.md)
- [Iterator](./04-design-patterns/03-behavioral/03-iterator.md)
- [Mediator](./04-design-patterns/03-behavioral/04-mediator.md)
- [Memento](./04-design-patterns/03-behavioral/05-memento.md)
- [Observer](./04-design-patterns/03-behavioral/06-observer.md)
- [State](./04-design-patterns/03-behavioral/07-state.md)
- [Strategy](./04-design-patterns/03-behavioral/08-strategy.md)
- [Template Method](./04-design-patterns/03-behavioral/09-template-method.md)
- [Visitor](./04-design-patterns/03-behavioral/10-visitor.md)
### 5. ๐ข Enterprise Patterns
Click to expand Enterprise Patterns topics
- [Repository Pattern](./05-enterprise-patterns/01-repository-pattern.md)
- [Unit of Work](./05-enterprise-patterns/02-unit-of-work.md)
- [Service Layer](./05-enterprise-patterns/03-service-layer.md)
- [Data Mapper](./05-enterprise-patterns/04-data-mapper.md)
- [Active Record](./05-enterprise-patterns/05-active-record.md)
- [Domain Model](./05-enterprise-patterns/06-domain-model.md)
- [Event Sourcing](./05-enterprise-patterns/07-event-sourcing.md)
- [CQRS](./05-enterprise-patterns/08-cqrs.md)
- [Dependency Injection Container](./05-enterprise-patterns/09-dependency-injection-container.md)
- [Dependency Injection vs Container](./05-enterprise-patterns/09a-dependency-injection-explained.md)
- [Specification Pattern](./05-enterprise-patterns/10-specification-pattern.md)
- [Data Transfer Object (DTO)](./05-enterprise-patterns/11-data-transfer-object.md)
- [Lazy Loading](./05-enterprise-patterns/12-lazy-loading.md)
- [Circuit Breaker](./05-enterprise-patterns/13-circuit-breaker.md)
- [Saga Pattern](./05-enterprise-patterns/14-saga.md)
- [Front Controller](./05-enterprise-patterns/15-front-controller.md)
- [Inversion of Control (IoC)](./05-enterprise-patterns/16-inversion-of-control.md)
- [Mediator/Middleware](./05-enterprise-patterns/17-middleware.md)
- [Observer](./05-enterprise-patterns/18-observer.md)
- [Publish-Subscribe](./05-enterprise-patterns/19-pub-sub.md)
- [Adapter/Wrapper](./05-enterprise-patterns/20-adapter.md)
### 6. ๐งช Code Quality and Standards
Click to expand Code Quality topics
#### Coding Standards
- [Coding Standards Overview](./06-code-quality/01-coding-standards.md)
- [PSR Standards Overview](./06-code-quality/01a-psr-standards.md)
- [PSR-1: Basic Coding Standard](./06-code-quality/01b-psr-1.md)
- [PSR-12: Extended Coding Style](./06-code-quality/01c-psr-12.md)
- [PSR-4: Autoloading Standard](./06-code-quality/01d-psr-4.md)
#### Code Analysis Tools
- [Code Analysis Tools Overview](./06-code-quality/02-code-analysis-tools.md)
- [Static Analysis Tools](./06-code-quality/02-static-analysis.md)
- [Static Analysis with PHPStan](./06-code-quality/02a-phpstan.md)
- [PHP_CodeSniffer (PHPCS)](./06-code-quality/02b-phpcs.md)
- [PHP Mess Detector (PHPMD)](./06-code-quality/02c-phpmd.md)
- [PHP Insights](./06-code-quality/02d-php-insights.md)
#### Testing Practices
- [Testing Practices Overview](./06-code-quality/03-testing-practices.md)
- [Unit Testing with PHPUnit](./06-code-quality/03a-phpunit.md)
- [Test-Driven Development](./06-code-quality/03b-tdd.md)
- [Behavior-Driven Development](./06-code-quality/03c-bdd.md)
- [Mocking and Test Doubles](./06-code-quality/03d-mocking.md)
#### Code Improvement
- [Code Improvement Overview](./06-code-quality/04-code-improvement.md)
- [Refactoring Principles](./06-code-quality/04a-refactoring-principles.md)
- [Common Code Smells](./06-code-quality/04b-code-smells.md)
- [Refactoring Techniques](./06-code-quality/04c-refactoring-techniques.md)
#### Debugging and Profiling
- [Debugging and Profiling Overview](./06-code-quality/05-debugging-profiling.md)
- [PHP Debugging Techniques](./06-code-quality/05a-debugging-strategies.md)
- [Xdebug](./06-code-quality/05b-xdebug.md)
- [Performance Profiling](./06-code-quality/05c-profiling.md)
#### Continuous Integration
- [Continuous Integration Overview](./06-code-quality/06-continuous-integration.md)
- [CI Workflows for PHP](./06-code-quality/06a-ci-workflows.md)
- [GitHub Actions for PHP](./06-code-quality/06b-github-actions.md)
- [Quality Gates](./06-code-quality/06c-quality-gates.md)
## ๐ How to Use This Repository
Click to learn how to best use this resource
1. **Sequential Learning**: Follow the sections in order for a structured learning path
2. **Topic-Based Reference**: Jump to specific topics that interest you or that you need to understand better
3. **Practical Application**: Each topic includes practical code examples you can run and experiment with
4. **Progressive Complexity**: Topics progress from basic to advanced, building on previous concepts
## ๐ง Requirements
- PHP 7.4+ recommended (some examples use PHP 8 features)
- Basic understanding of PHP syntax
- A development environment to run PHP code
## ๐ค Contributing
Contributions to improve examples, fix errors, or add more detailed explanations are welcome. Please feel free to submit a pull request or open an issue.
## ๐ License
This repository is licensed under the MIT License - see the LICENSE file for details.