PHP Classes

How to Use a Collection a PHP Design Pattern Implementations as Classes Using the Package Desired Patterns: Implements of several modern design patterns

Recommend this page to a friend!
     
  Info   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2025-01-02 (7 days ago) RSS 2.0 feedNot enough user ratingsTotal: 17 This week: 17All time: 11,399 This week: 5Up
Version License PHP version Categories
desired-patterns 1.0.0Custom (specified...8.2Algorithms, Design Patterns, PHP 8
Description 

Author

This package implements several modern design patterns.

It provides a collection of classes that implement well-known design patterns.

Currently, it provides classes that implement:

- Singleton and Multiton patterns to ensure a class has only one instance

- Command pattern to encapsulate a request as an object

- Chain of Responsibility pattern to pass requests along a chain of handlers

- Registry pattern to provide a global point of access to objects or services throughout an application

- Service Locator pattern to encapsulate the processes involved in obtaining a service

- Specification pattern to create business rules that can be combined using boolean logic.

- Strategy pattern to define a family of interchangeable algorithms

Picture of Carlos Artur Curvelo da Matos
  Performance   Level  
Name: Carlos Artur Curvelo da ... <contact>
Classes: 27 packages by
Country: Portugal Portugal
Innovation award
Innovation award
Nominee: 18x

Winner: 2x

  Files folder image Files (90)  
File Role Description
Files folder image.github (1 directory)
Files folder imageexamples (6 directories)
Files folder imagesrc (12 directories)
Files folder imagetests (2 files, 12 directories)
Accessible without login Plain text file .phpcs-cache Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpcs.xml Data Auxiliary data
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files (90)  /  .github  
File Role Description
Files folder imageworkflows (4 files)

  Files folder image Files (90)  /  .github  /  workflows  
File Role Description
  Accessible without login Plain text file composer.yml Data Auxiliary data
  Accessible without login Plain text file coverage.yml Data Auxiliary data
  Accessible without login Plain text file lint.yml Data Auxiliary data
  Accessible without login Plain text file phpunit.yml Data Auxiliary data

  Files folder image Files (90)  /  examples  
File Role Description
Files folder imageChain (1 directory)
Files folder imageCommand (2 files, 1 directory)
Files folder imageNullObject (2 files)
Files folder imagePool (3 files)
Files folder imageState (1 directory)
Files folder imageStrategy (1 file, 1 directory)

  Files folder image Files (90)  /  examples  /  Chain  
File Role Description
Files folder imagePaymentHandlers (3 files)

  Files folder image Files (90)  /  examples  /  Chain  /  PaymentHandlers  
File Role Description
  Plain text file CashHandler.php Class Class source
  Plain text file CreditCardHandler.php Class Class source
  Plain text file PayPalHandler.php Class Class source

  Files folder image Files (90)  /  examples  /  Command  
File Role Description
Files folder imageUser (3 files)
  Plain text file example.php Class Class source
  Plain text file SimpleCommandBus.php Class Class source

  Files folder image Files (90)  /  examples  /  Command  /  User  
File Role Description
  Plain text file CreateUserCommand.php Class Class source
  Plain text file CreateUserHandler.php Class Class source
  Plain text file User.php Class Class source

  Files folder image Files (90)  /  examples  /  NullObject  
File Role Description
  Accessible without login Plain text file null_object_example.php Example Example script
  Plain text file UserService.php Class Class source

  Files folder image Files (90)  /  examples  /  Pool  
File Role Description
  Plain text file DatabaseService.php Class Class source
  Plain text file PooledDatabaseConnection.php Class Class source
  Accessible without login Plain text file pool_example.php Example Example script

  Files folder image Files (90)  /  examples  /  State  
File Role Description
Files folder imageOrder (2 files, 1 directory)

  Files folder image Files (90)  /  examples  /  State  /  Order  
File Role Description
Files folder imageStates (5 files)
  Accessible without login Plain text file example.php Example Example script
  Plain text file Order.php Class Class source

  Files folder image Files (90)  /  examples  /  State  /  Order  /  States  
File Role Description
  Plain text file CancelledState.php Class Class source
  Plain text file DeliveredState.php Class Class source
  Plain text file PendingState.php Class Class source
  Plain text file ProcessingState.php Class Class source
  Plain text file ShippedState.php Class Class source

  Files folder image Files (90)  /  examples  /  Strategy  
File Role Description
Files folder imageSorting (1 file)
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (90)  /  examples  /  Strategy  /  Sorting  
File Role Description
  Plain text file QuickSortStrategy.php Class Class source

  Files folder image Files (90)  /  src  
File Role Description
Files folder imageChain (1 file)
Files folder imageCommands (2 files)
Files folder imageContracts (10 files)
Files folder imageNullObject (2 files, 1 directory)
Files folder imagePipeline (2 files)
Files folder imagePool (2 files)
Files folder imageRegistry (1 file)
Files folder imageServiceLocator (1 file)
Files folder imageSpecifications (1 file, 1 directory)
Files folder imageState (3 files)
Files folder imageStrategy (2 files)
Files folder imageTraits (4 files)

  Files folder image Files (90)  /  src  /  Chain  
File Role Description
  Plain text file AbstractHandler.php Class Class source

  Files folder image Files (90)  /  src  /  Commands  
File Role Description
  Plain text file AbstractCommand.php Class Class source
  Plain text file AbstractCommandHandler.php Class Class source

  Files folder image Files (90)  /  src  /  Contracts  
File Role Description
  Plain text file CommandBusContract.php Class Class source
  Plain text file CommandContract.php Class Class source
  Plain text file CommandHandlerContract.php Class Class source
  Plain text file HandlerInterface.php Class Class source
  Plain text file PoolableInterface.php Class Class source
  Plain text file ServiceContract.php Class Class source
  Plain text file ServiceProviderContract.php Class Class source
  Plain text file SpecificationContract.php Class Class source
  Plain text file StateInterface.php Class Class source
  Plain text file StrategyInterface.php Class Class source

  Files folder image Files (90)  /  src  /  NullObject  
File Role Description
Files folder imageLogger (4 files)
  Plain text file AbstractNullObject.php Class Class source
  Plain text file NullableInterface.php Class Class source

  Files folder image Files (90)  /  src  /  NullObject  /  Logger  
File Role Description
  Plain text file FileLogger.php Class Class source
  Plain text file LoggerFactory.php Class Class source
  Plain text file LoggerInterface.php Class Class source
  Plain text file NullLogger.php Class Class source

  Files folder image Files (90)  /  src  /  Pipeline  
File Role Description
  Plain text file Pipeline.php Class Class source
  Plain text file PipelineBuilder.php Class Class source

  Files folder image Files (90)  /  src  /  Pool  
File Role Description
  Plain text file ObjectPool.php Class Class source
  Plain text file PoolFactory.php Class Class source

  Files folder image Files (90)  /  src  /  Registry  
File Role Description
  Plain text file Registry.php Class Class source

  Files folder image Files (90)  /  src  /  ServiceLocator  
File Role Description
  Plain text file ServiceLocator.php Class Class source

  Files folder image Files (90)  /  src  /  Specifications  
File Role Description
Files folder imageComposite (3 files)
  Plain text file AbstractSpecification.php Class Class source

  Files folder image Files (90)  /  src  /  Specifications  /  Composite  
File Role Description
  Plain text file AndSpecification.php Class Class source
  Plain text file NotSpecification.php Class Class source
  Plain text file OrSpecification.php Class Class source

  Files folder image Files (90)  /  src  /  State  
File Role Description
  Plain text file AbstractState.php Class Class source
  Plain text file StateException.php Class Class source
  Plain text file StateMachineTrait.php Class Class source

  Files folder image Files (90)  /  src  /  Strategy  
File Role Description
  Plain text file AbstractStrategy.php Class Class source
  Plain text file StrategyContext.php Class Class source

  Files folder image Files (90)  /  src  /  Traits  
File Role Description
  Plain text file CommandHandlerTrait.php Class Class source
  Plain text file ConfigurableStrategyTrait.php Class Class source
  Plain text file Multiton.php Class Class source
  Plain text file Singleton.php Class Class source

  Files folder image Files (90)  /  tests  
File Role Description
Files folder imageChain (1 file)
Files folder imageCommands (1 file)
Files folder imageExamples (1 directory)
Files folder imageMock (4 files)
Files folder imageNullObject (1 file)
Files folder imagePipeline (2 files)
Files folder imagePool (2 files)
Files folder imageRegistry (1 file)
Files folder imageServiceLocator (1 file)
Files folder imageSpecifications (2 files)
Files folder imageState (1 file)
Files folder imageStrategy (1 file)
  Plain text file MultitonTest.php Class Class source
  Plain text file SingletonTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Chain  
File Role Description
  Plain text file PaymentHandlersTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Commands  
File Role Description
  Plain text file CommandTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Examples  
File Role Description
Files folder imageChain (1 file)

  Files folder image Files (90)  /  tests  /  Examples  /  Chain  
File Role Description
  Plain text file PaymentHandlersTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Mock  
File Role Description
  Plain text file MockNullableService.php Class Class source
  Plain text file MockPoolableResource.php Class Class source
  Plain text file MockService.php Class Class source
  Plain text file NullMockService.php Class Class source

  Files folder image Files (90)  /  tests  /  NullObject  
File Role Description
  Plain text file NullObjectTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Pipeline  
File Role Description
  Plain text file PipelineBuilderTest.php Class Class source
  Plain text file PipelineTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Pool  
File Role Description
  Plain text file ObjectPoolTest.php Class Class source
  Plain text file PoolFactoryTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Registry  
File Role Description
  Plain text file RegistryTest.php Class Class source

  Files folder image Files (90)  /  tests  /  ServiceLocator  
File Role Description
  Plain text file ServiceLocatorTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Specifications  
File Role Description
  Plain text file CompositeSpecificationTest.php Class Class source
  Plain text file UserSpecificationTest.php Class Class source

  Files folder image Files (90)  /  tests  /  State  
File Role Description
  Plain text file StateMachineTest.php Class Class source

  Files folder image Files (90)  /  tests  /  Strategy  
File Role Description
  Plain text file StrategyContextTest.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:17
This week:17
All time:11,399
This week:5Up