├── .gitignore ├── Dockerfile ├── README.md ├── composer.json ├── composer.lock ├── docker-compose.yml.dist ├── phpunit.xml └── src ├── Behavioral ├── ChainOfResponsibility │ ├── AbstractValidator.php │ ├── IsGreaterThan.php │ ├── IsLessThan.php │ ├── IsNotNull.php │ ├── IsString.php │ ├── Test │ │ └── ChainTest.php │ └── ValidatorChain.php ├── Command │ ├── Author.php │ ├── CommandInterface.php │ ├── CommandInvoker.php │ ├── InteractiveInterface.php │ ├── Like.php │ ├── Post.php │ ├── Test │ │ ├── CommandInvokerTest.php │ │ ├── LikeTest.php │ │ └── WowTest.php │ └── Wow.php ├── Memento │ ├── Package.php │ ├── PackageSnapshot.php │ └── Test │ │ └── PackageTest.php ├── NullObject │ ├── Client.php │ ├── ClientType.php │ ├── ClientTypeInterface.php │ ├── NullClientType.php │ └── Test │ │ └── ClientTest.php ├── Observer │ ├── Conference.php │ ├── ConferenceStatistic.php │ ├── InvalidConferenceTypeException.php │ ├── Participant.php │ ├── Sponsor.php │ ├── Test │ │ ├── ConferenceStatisticTest.php │ │ ├── ConferenceTest.php │ │ ├── ParticipantTest.php │ │ └── SponsorTest.php │ └── Type.php ├── State │ ├── Closed.php │ ├── InProgress.php │ ├── InvalidStateException.php │ ├── Open.php │ ├── Reopened.php │ ├── Resolved.php │ ├── State.php │ ├── StateInterface.php │ ├── Task.php │ └── Test │ │ └── TaskTest.php ├── Strategy │ ├── EmailNotifier.php │ ├── NotificationPreference.php │ ├── NotifyInterface.php │ ├── SystemNotifier.php │ ├── Test │ │ └── UserNotificationTest.php │ └── UserNotification.php ├── TemplateMethod │ ├── AbstractFileLogSynchronizer.php │ ├── CsvFileLogSynchronizer.php │ ├── Log.php │ ├── LogRepositoryInterface.php │ ├── Test │ │ ├── CsvFileLogSynchronizerTest.php │ │ ├── FakeLogRepository.php │ │ └── TxtFileLogSynchronizerTest.php │ ├── TxtFileLogSynchronizer.php │ └── synchronization │ │ └── files │ │ ├── test_logs.csv │ │ └── test_logs.txt └── Visitor │ ├── LastMinuteCalculator.php │ ├── Participant.php │ ├── PriceCalculatorInterface.php │ ├── Speaker.php │ ├── Sponsor.php │ ├── Status.php │ ├── Test │ ├── ParticipantTest.php │ ├── SpeakerTest.php │ └── SponsorTest.php │ └── VisitableByCalculatorInterface.php ├── Creational ├── AbstractFactory │ ├── AbstractMealFactory.php │ ├── BreakfastInterface.php │ ├── DinnerInterface.php │ ├── Test │ │ ├── VeganMealFactoryTest.php │ │ └── VegetarianMealFactoryTest.php │ ├── VeganBreakfast.php │ ├── VeganDinner.php │ ├── VeganMealFactory.php │ ├── VegetarianBreakfast.php │ ├── VegetarianDinner.php │ └── VegetarianMealFactory.php ├── Builder │ ├── AbstractAgreement.php │ ├── AgreementBuilderInterface.php │ ├── AgreementDirector.php │ ├── B2BContract.php │ ├── B2BContractBuilder.php │ ├── EmploymentContract.php │ ├── EmploymentContractBuilder.php │ └── Test │ │ └── AgreementDirectorTest.php ├── FactoryMethod │ ├── MealFactoryInterface.php │ ├── MealInterface.php │ ├── Test │ │ ├── VeganMealFactoryTest.php │ │ └── VegetarianMealFactoryTest.php │ ├── VeganMeal.php │ ├── VeganMealFactory.php │ ├── VegetarianMeal.php │ └── VegetarianMealFactory.php ├── Prototype │ ├── City.php │ ├── Event.php │ ├── EventPrototypeInterface.php │ ├── Invitation.php │ ├── Place.php │ └── Test │ │ └── EventTest.php ├── SimpleFactory │ ├── MealFactory.php │ ├── MealInterface.php │ ├── MealType.php │ ├── Test │ │ └── MealFactoryTest.php │ ├── VeganMeal.php │ └── VegetarianMeal.php └── Singleton │ ├── Config.php │ └── Test │ └── ConfigTest.php └── Structural ├── Adapter ├── ExternalLogger.php ├── LogAdapter.php ├── LoggerInterface.php └── Test │ └── LogAdapterTest.php ├── Bridge ├── AbstractBenefit.php ├── HealthCare.php ├── JobLevelInterface.php ├── Junior.php ├── Senior.php ├── Test │ ├── HealthCareTest.php │ └── TrainingBudgetTest.php └── TrainingBudget.php ├── Composite ├── Directory.php ├── File.php ├── FileSystemElementInterface.php └── Test │ └── DirectoryTest.php ├── Decorator ├── AbstractOptionDecorator.php ├── Accommodation.php ├── Catering.php ├── Mascot.php ├── OptionInterface.php ├── Sticker.php ├── Test │ └── OptionDecoratorTest.php └── Ticket.php ├── Facade ├── EmailModule │ ├── CloudApiSender.php │ ├── CloudClientInterface.php │ ├── SmtpSender.php │ └── UserNotFoundException.php ├── NotificationFacade.php ├── SmsModule │ └── SmsNotifier.php ├── Test │ └── NotificationFacadeTest.php └── User.php ├── Iterator ├── Directory.php ├── File.php ├── FileSystemElementCollection.php ├── FileSystemElementInterface.php └── Test │ ├── DirectoryTest.php │ └── FileSystemElementCollectionTest.php └── Proxy ├── Base64EncodingInterface.php ├── FileEncoder.php ├── FileEncoderProxy.php ├── FileNotFoundException.php └── Test └── FileEncoderProxyTest.php /.gitignore: -------------------------------------------------------------------------------- 1 | .phpunit.result.cache 2 | docker-compose.yml 3 | /vendor -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/Dockerfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/README.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/composer.json -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/composer.lock -------------------------------------------------------------------------------- /docker-compose.yml.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/docker-compose.yml.dist -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/phpunit.xml -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/AbstractValidator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/AbstractValidator.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/IsGreaterThan.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/IsGreaterThan.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/IsLessThan.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/IsLessThan.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/IsNotNull.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/IsNotNull.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/IsString.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/IsString.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/Test/ChainTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/Test/ChainTest.php -------------------------------------------------------------------------------- /src/Behavioral/ChainOfResponsibility/ValidatorChain.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/ChainOfResponsibility/ValidatorChain.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Author.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Author.php -------------------------------------------------------------------------------- /src/Behavioral/Command/CommandInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/CommandInterface.php -------------------------------------------------------------------------------- /src/Behavioral/Command/CommandInvoker.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/CommandInvoker.php -------------------------------------------------------------------------------- /src/Behavioral/Command/InteractiveInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/InteractiveInterface.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Like.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Like.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Post.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Post.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Test/CommandInvokerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Test/CommandInvokerTest.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Test/LikeTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Test/LikeTest.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Test/WowTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Test/WowTest.php -------------------------------------------------------------------------------- /src/Behavioral/Command/Wow.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Command/Wow.php -------------------------------------------------------------------------------- /src/Behavioral/Memento/Package.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Memento/Package.php -------------------------------------------------------------------------------- /src/Behavioral/Memento/PackageSnapshot.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Memento/PackageSnapshot.php -------------------------------------------------------------------------------- /src/Behavioral/Memento/Test/PackageTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Memento/Test/PackageTest.php -------------------------------------------------------------------------------- /src/Behavioral/NullObject/Client.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/NullObject/Client.php -------------------------------------------------------------------------------- /src/Behavioral/NullObject/ClientType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/NullObject/ClientType.php -------------------------------------------------------------------------------- /src/Behavioral/NullObject/ClientTypeInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/NullObject/ClientTypeInterface.php -------------------------------------------------------------------------------- /src/Behavioral/NullObject/NullClientType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/NullObject/NullClientType.php -------------------------------------------------------------------------------- /src/Behavioral/NullObject/Test/ClientTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/NullObject/Test/ClientTest.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Conference.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Conference.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/ConferenceStatistic.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/ConferenceStatistic.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/InvalidConferenceTypeException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/InvalidConferenceTypeException.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Participant.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Participant.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Sponsor.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Sponsor.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Test/ConferenceStatisticTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Test/ConferenceStatisticTest.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Test/ConferenceTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Test/ConferenceTest.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Test/ParticipantTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Test/ParticipantTest.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Test/SponsorTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Test/SponsorTest.php -------------------------------------------------------------------------------- /src/Behavioral/Observer/Type.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Observer/Type.php -------------------------------------------------------------------------------- /src/Behavioral/State/Closed.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Closed.php -------------------------------------------------------------------------------- /src/Behavioral/State/InProgress.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/InProgress.php -------------------------------------------------------------------------------- /src/Behavioral/State/InvalidStateException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/InvalidStateException.php -------------------------------------------------------------------------------- /src/Behavioral/State/Open.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Open.php -------------------------------------------------------------------------------- /src/Behavioral/State/Reopened.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Reopened.php -------------------------------------------------------------------------------- /src/Behavioral/State/Resolved.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Resolved.php -------------------------------------------------------------------------------- /src/Behavioral/State/State.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/State.php -------------------------------------------------------------------------------- /src/Behavioral/State/StateInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/StateInterface.php -------------------------------------------------------------------------------- /src/Behavioral/State/Task.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Task.php -------------------------------------------------------------------------------- /src/Behavioral/State/Test/TaskTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/State/Test/TaskTest.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/EmailNotifier.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/EmailNotifier.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/NotificationPreference.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/NotificationPreference.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/NotifyInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/NotifyInterface.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/SystemNotifier.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/SystemNotifier.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/Test/UserNotificationTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/Test/UserNotificationTest.php -------------------------------------------------------------------------------- /src/Behavioral/Strategy/UserNotification.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Strategy/UserNotification.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/AbstractFileLogSynchronizer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/AbstractFileLogSynchronizer.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/CsvFileLogSynchronizer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/CsvFileLogSynchronizer.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/Log.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/Log.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/LogRepositoryInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/LogRepositoryInterface.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/Test/CsvFileLogSynchronizerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/Test/CsvFileLogSynchronizerTest.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/Test/FakeLogRepository.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/Test/FakeLogRepository.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/Test/TxtFileLogSynchronizerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/Test/TxtFileLogSynchronizerTest.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/TxtFileLogSynchronizer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/TxtFileLogSynchronizer.php -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/synchronization/files/test_logs.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/synchronization/files/test_logs.csv -------------------------------------------------------------------------------- /src/Behavioral/TemplateMethod/synchronization/files/test_logs.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/TemplateMethod/synchronization/files/test_logs.txt -------------------------------------------------------------------------------- /src/Behavioral/Visitor/LastMinuteCalculator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/LastMinuteCalculator.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Participant.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Participant.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/PriceCalculatorInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/PriceCalculatorInterface.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Speaker.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Speaker.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Sponsor.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Sponsor.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Status.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Status.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Test/ParticipantTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Test/ParticipantTest.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Test/SpeakerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Test/SpeakerTest.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/Test/SponsorTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/Test/SponsorTest.php -------------------------------------------------------------------------------- /src/Behavioral/Visitor/VisitableByCalculatorInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Behavioral/Visitor/VisitableByCalculatorInterface.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/AbstractMealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/AbstractMealFactory.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/BreakfastInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/BreakfastInterface.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/DinnerInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/DinnerInterface.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/Test/VeganMealFactoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/Test/VeganMealFactoryTest.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/Test/VegetarianMealFactoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/Test/VegetarianMealFactoryTest.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VeganBreakfast.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VeganBreakfast.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VeganDinner.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VeganDinner.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VeganMealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VeganMealFactory.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VegetarianBreakfast.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VegetarianBreakfast.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VegetarianDinner.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VegetarianDinner.php -------------------------------------------------------------------------------- /src/Creational/AbstractFactory/VegetarianMealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/AbstractFactory/VegetarianMealFactory.php -------------------------------------------------------------------------------- /src/Creational/Builder/AbstractAgreement.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/AbstractAgreement.php -------------------------------------------------------------------------------- /src/Creational/Builder/AgreementBuilderInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/AgreementBuilderInterface.php -------------------------------------------------------------------------------- /src/Creational/Builder/AgreementDirector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/AgreementDirector.php -------------------------------------------------------------------------------- /src/Creational/Builder/B2BContract.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/B2BContract.php -------------------------------------------------------------------------------- /src/Creational/Builder/B2BContractBuilder.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/B2BContractBuilder.php -------------------------------------------------------------------------------- /src/Creational/Builder/EmploymentContract.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/EmploymentContract.php -------------------------------------------------------------------------------- /src/Creational/Builder/EmploymentContractBuilder.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/EmploymentContractBuilder.php -------------------------------------------------------------------------------- /src/Creational/Builder/Test/AgreementDirectorTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Builder/Test/AgreementDirectorTest.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/MealFactoryInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/MealFactoryInterface.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/MealInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/MealInterface.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/Test/VeganMealFactoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/Test/VeganMealFactoryTest.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/Test/VegetarianMealFactoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/Test/VegetarianMealFactoryTest.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/VeganMeal.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/VeganMeal.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/VeganMealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/VeganMealFactory.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/VegetarianMeal.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/VegetarianMeal.php -------------------------------------------------------------------------------- /src/Creational/FactoryMethod/VegetarianMealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/FactoryMethod/VegetarianMealFactory.php -------------------------------------------------------------------------------- /src/Creational/Prototype/City.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/City.php -------------------------------------------------------------------------------- /src/Creational/Prototype/Event.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/Event.php -------------------------------------------------------------------------------- /src/Creational/Prototype/EventPrototypeInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/EventPrototypeInterface.php -------------------------------------------------------------------------------- /src/Creational/Prototype/Invitation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/Invitation.php -------------------------------------------------------------------------------- /src/Creational/Prototype/Place.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/Place.php -------------------------------------------------------------------------------- /src/Creational/Prototype/Test/EventTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Prototype/Test/EventTest.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/MealFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/MealFactory.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/MealInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/MealInterface.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/MealType.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/MealType.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/Test/MealFactoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/Test/MealFactoryTest.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/VeganMeal.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/VeganMeal.php -------------------------------------------------------------------------------- /src/Creational/SimpleFactory/VegetarianMeal.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/SimpleFactory/VegetarianMeal.php -------------------------------------------------------------------------------- /src/Creational/Singleton/Config.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Singleton/Config.php -------------------------------------------------------------------------------- /src/Creational/Singleton/Test/ConfigTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Creational/Singleton/Test/ConfigTest.php -------------------------------------------------------------------------------- /src/Structural/Adapter/ExternalLogger.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Adapter/ExternalLogger.php -------------------------------------------------------------------------------- /src/Structural/Adapter/LogAdapter.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Adapter/LogAdapter.php -------------------------------------------------------------------------------- /src/Structural/Adapter/LoggerInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Adapter/LoggerInterface.php -------------------------------------------------------------------------------- /src/Structural/Adapter/Test/LogAdapterTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Adapter/Test/LogAdapterTest.php -------------------------------------------------------------------------------- /src/Structural/Bridge/AbstractBenefit.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/AbstractBenefit.php -------------------------------------------------------------------------------- /src/Structural/Bridge/HealthCare.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/HealthCare.php -------------------------------------------------------------------------------- /src/Structural/Bridge/JobLevelInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/JobLevelInterface.php -------------------------------------------------------------------------------- /src/Structural/Bridge/Junior.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/Junior.php -------------------------------------------------------------------------------- /src/Structural/Bridge/Senior.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/Senior.php -------------------------------------------------------------------------------- /src/Structural/Bridge/Test/HealthCareTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/Test/HealthCareTest.php -------------------------------------------------------------------------------- /src/Structural/Bridge/Test/TrainingBudgetTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/Test/TrainingBudgetTest.php -------------------------------------------------------------------------------- /src/Structural/Bridge/TrainingBudget.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Bridge/TrainingBudget.php -------------------------------------------------------------------------------- /src/Structural/Composite/Directory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Composite/Directory.php -------------------------------------------------------------------------------- /src/Structural/Composite/File.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Composite/File.php -------------------------------------------------------------------------------- /src/Structural/Composite/FileSystemElementInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Composite/FileSystemElementInterface.php -------------------------------------------------------------------------------- /src/Structural/Composite/Test/DirectoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Composite/Test/DirectoryTest.php -------------------------------------------------------------------------------- /src/Structural/Decorator/AbstractOptionDecorator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/AbstractOptionDecorator.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Accommodation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Accommodation.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Catering.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Catering.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Mascot.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Mascot.php -------------------------------------------------------------------------------- /src/Structural/Decorator/OptionInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/OptionInterface.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Sticker.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Sticker.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Test/OptionDecoratorTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Test/OptionDecoratorTest.php -------------------------------------------------------------------------------- /src/Structural/Decorator/Ticket.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Decorator/Ticket.php -------------------------------------------------------------------------------- /src/Structural/Facade/EmailModule/CloudApiSender.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/EmailModule/CloudApiSender.php -------------------------------------------------------------------------------- /src/Structural/Facade/EmailModule/CloudClientInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/EmailModule/CloudClientInterface.php -------------------------------------------------------------------------------- /src/Structural/Facade/EmailModule/SmtpSender.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/EmailModule/SmtpSender.php -------------------------------------------------------------------------------- /src/Structural/Facade/EmailModule/UserNotFoundException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/EmailModule/UserNotFoundException.php -------------------------------------------------------------------------------- /src/Structural/Facade/NotificationFacade.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/NotificationFacade.php -------------------------------------------------------------------------------- /src/Structural/Facade/SmsModule/SmsNotifier.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/SmsModule/SmsNotifier.php -------------------------------------------------------------------------------- /src/Structural/Facade/Test/NotificationFacadeTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/Test/NotificationFacadeTest.php -------------------------------------------------------------------------------- /src/Structural/Facade/User.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Facade/User.php -------------------------------------------------------------------------------- /src/Structural/Iterator/Directory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/Directory.php -------------------------------------------------------------------------------- /src/Structural/Iterator/File.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/File.php -------------------------------------------------------------------------------- /src/Structural/Iterator/FileSystemElementCollection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/FileSystemElementCollection.php -------------------------------------------------------------------------------- /src/Structural/Iterator/FileSystemElementInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/FileSystemElementInterface.php -------------------------------------------------------------------------------- /src/Structural/Iterator/Test/DirectoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/Test/DirectoryTest.php -------------------------------------------------------------------------------- /src/Structural/Iterator/Test/FileSystemElementCollectionTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Iterator/Test/FileSystemElementCollectionTest.php -------------------------------------------------------------------------------- /src/Structural/Proxy/Base64EncodingInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Proxy/Base64EncodingInterface.php -------------------------------------------------------------------------------- /src/Structural/Proxy/FileEncoder.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Proxy/FileEncoder.php -------------------------------------------------------------------------------- /src/Structural/Proxy/FileEncoderProxy.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Proxy/FileEncoderProxy.php -------------------------------------------------------------------------------- /src/Structural/Proxy/FileNotFoundException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Proxy/FileNotFoundException.php -------------------------------------------------------------------------------- /src/Structural/Proxy/Test/FileEncoderProxyTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koddlo/design-patterns-php/HEAD/src/Structural/Proxy/Test/FileEncoderProxyTest.php --------------------------------------------------------------------------------