PHP Classes

PHP Objects Extensions: Add functions to objects using another class

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2025-07-28 (Less than 1 hour ago) RSS 2.0 feedNot yet rated by the usersTotal: 61 All time: 10,489 This week: 97Up
Version License PHP version Categories
php-extensible-objec 1.0.1MIT/X Consortium ...7Tools, Libraries, Data types, PHP 7, T...
Description 

Author

This package can add functions to objects using another class.

It provides an interface named Extensible that defines functions for registering, unregistering, checking and getting functions that can be used as extensions of a class.

Classes that benefit from this package can implement this interface by using a trait provided in this package that use another class to provide the implementation of each the extension function that is registered.

Picture of Axel Pardemann
  Performance   Level  
Name: Axel Pardemann <contact>
Classes: 11 packages by
Country: Mexico Mexico
Age: 43
All time rank: 186920 in Mexico Mexico
Week rank: 195 Up2 in Mexico Mexico Up
Innovation award
Innovation award
Nominee: 3x

Documentation

<div align="center">

<h1>PHP Extensible Objects</h1>
<p align="center"> 
    <a href="https://packagist.org/packages/norse-blue/extensible-objects"><img alt="Stable Release" src="https://img.shields.io/packagist/v/norse-blue/extensible-objects.svg?style=flat-square&label=release&logo=packagist&logoColor=eceff4&colorA=4c566a&colorB=5e81ac"></a>
    <a href="https://github.com/norse-blue/php-extensible-objects/actions?query=workflow%3Arun-tests"><img alt="Build Status" src="https://img.shields.io/github/workflow/status/norse-blue/php-extensible-objects/run-tests.svg?style=flat-square&label=build&logo=github&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://php.net/releases"><img alt="PHP Version" src="https://img.shields.io/packagist/php-v/norse-blue/extensible-objects.svg?style=flat-square&label=php&logo=php&logoColor=eceff4&colorA=4c566a&colorB=b48ead"></a>
    <a href="https://codecov.io/gh/norse-blue/php-extensible-objects"><img alt="Test Coverage" src="https://img.shields.io/codecov/c/github/norse-blue/php-extensible-objects.svg?style=flat-square&label=coverage&logo=codecov&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://codeclimate.com/github/norse-blue/php-extensible-objects"><img alt="Maintainability" src="https://img.shields.io/codeclimate/maintainability/norse-blue/php-extensible-objects.svg?style=flat-square&label=maintainability&logo=code-climate&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://packagist.org/packages/norse-blue/extensible-objects"><img alt="Total Downloads" src="https://img.shields.io/packagist/dt/norse-blue/extensible-objects.svg?style=flat-square&label=downloads&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://github.com/norse-blue/php-extensible-objects/blob/master/LICENSE.md"><img alt="License" src="https://img.shields.io/github/license/norse-blue/php-extensible-objects.svg?style=flat-square&label=license&logoColor=eceff4&colorA=4c566a&colorB=a3be8c"></a>
</p>

</div> <hr>

PHP Extensible Objects is a PHP library that provides the mechanisms to dynamically add extension methods to objects.

Installation

>Requirements: >- PHP 8.0+

Install this package using Composer:

composer require norse-blue/extensible-objects

Usage

To get more in-depth knowledge about this package, please refer to the Official Documentation.

Changelog

Please refer to the CHANGELOG.md file for more information about what has changed recently.

Contributing

Contributions to this project are accepted and encouraged. Please read the CONTRIBUTING.md file for details on contributions.

Credits

Security

Please review our security policy to know how to report security vulnerabilities within this package.

Support the development

Do you like this project? Support it by donating

<a href="https://www.buymeacoffee.com/axelitus"><img src="docs/assets/images/buy-me-a-coffee.svg" width="180" alt="Buy me a coffee"></img></a>

License

Extensible Objects is open-sourced software licensed under the MIT license.

[php_overloading_url]: https://www.php.net/manual/en/language.oop5.overloading.php


  Files folder image Files (83)  
File Role Description
Files folder image.changelog (14 files)
Files folder image.github (5 files, 2 directories)
Files folder imagedocs (3 files, 3 directories)
Files folder imagesrc (2 files, 6 directories)
Files folder imagetests (1 file, 2 directories)
Accessible without login Plain text file .codeclimate.yml Data Auxiliary data
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .phpcs.xml.dist Data Auxiliary data
Accessible without login Plain text file .styleci.yml Data Auxiliary data
Accessible without login Plain text file CHANGELOG.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file extensible-objects.sublime-project Data Auxiliary data
Accessible without login Plain text file LICENSE.md Lic. License text
Plain text file phpinsights.php Class Class source
Accessible without login Plain text file phpstan.neon.dist 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
Accessible without login Plain text file SECURITY.md Data Auxiliary data

  Files folder image Files (83)  /  .changelog  
File Role Description
  Accessible without login Plain text file CHANGELOG-0.1.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.2.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.2.1.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.3.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.4.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.4.1.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.5.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-0.5.1.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-1.0.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-2.0.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-2.0.1.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-3.0.0.md Data Auxiliary data
  Accessible without login Plain text file CHANGELOG-4.0.0.md Data Auxiliary data
  Accessible without login Plain text file UNRELEASED.md Data Auxiliary data

  Files folder image Files (83)  /  .github  
File Role Description
Files folder imageISSUE_TEMPLATE (3 files)
Files folder imageworkflows (3 files)
  Accessible without login Plain text file CODE_OF_CONDUCT.md Data Auxiliary data
  Accessible without login Plain text file CONTRIBUTING.md Data Auxiliary data
  Accessible without login Plain text file FUNDING.yml Data Auxiliary data
  Accessible without login Plain text file ISSUE_TEMPLATE.md Data Auxiliary data
  Accessible without login Plain text file PULL_REQUEST_TEMPLATE.md Data Auxiliary data

  Files folder image Files (83)  /  .github  /  ISSUE_TEMPLATE  
File Role Description
  Accessible without login Plain text file BUG_REPORT.md Data Auxiliary data
  Accessible without login Plain text file FEATURE_REQUEST.md Data Auxiliary data
  Accessible without login Plain text file QUESTION_DISCUSSION.md Data Auxiliary data

  Files folder image Files (83)  /  .github  /  workflows  
File Role Description
  Accessible without login Plain text file analyze-code.yml Data Auxiliary data
  Accessible without login Plain text file fix-style.yml Data Auxiliary data
  Accessible without login Plain text file run-tests.yml Data Auxiliary data

  Files folder image Files (83)  /  docs  
File Role Description
Files folder imageassets (2 directories)
Files folder imagesections (3 files)
Files folder image_sass (1 directory)
  Accessible without login Image file favicon.ico Data Auxiliary data
  Accessible without login Plain text file index.md Data Auxiliary data
  Accessible without login Plain text file _config.yml Data Auxiliary data

  Files folder image Files (83)  /  docs  /  assets  
File Role Description
Files folder imageimages (1 file)
Files folder imagejs (1 file)

  Files folder image Files (83)  /  docs  /  assets  /  images  
File Role Description
  Accessible without login Plain text file buy-me-a-coffee.svg Data Auxiliary data

  Files folder image Files (83)  /  docs  /  assets  /  js  
File Role Description
  Accessible without login Plain text file search-data.json Data Auxiliary data

  Files folder image Files (83)  /  docs  /  sections  
File Role Description
  Plain text file examples.md Class Class source
  Accessible without login Plain text file exceptions.md Data Auxiliary data
  Plain text file usage.md Class Class source

  Files folder image Files (83)  /  docs  /  _sass  
File Role Description
Files folder imagecustom (1 file)

  Files folder image Files (83)  /  docs  /  _sass  /  custom  
File Role Description
  Accessible without login Plain text file custom.scss Data Auxiliary data

  Files folder image Files (83)  /  src  
File Role Description
Files folder imageContracts (2 files)
Files folder imageExceptions (6 files)
Files folder imageExtensions (2 files)
Files folder imageGuards (2 files)
Files folder imageResolvers (2 files)
Files folder imageTraits (3 files)
  Plain text file ExtensibleObject.php Class Class source
  Plain text file Extension.php Class Class source

  Files folder image Files (83)  /  src  /  Contracts  
File Role Description
  Plain text file Extensible.php Class Class source
  Plain text file ExtensionMethod.php Class Class source

  Files folder image Files (83)  /  src  /  Exceptions  
File Role Description
  Plain text file ClassNotExtensionMethodException.php Class Class source
  Plain text file ExtensionGuardedException.php Class Class source
  Plain text file ExtensionNotCallableException.php Class Class source
  Plain text file ExtensionNotFoundException.php Class Class source
  Plain text file MethodDefinedInClassException.php Class Class source
  Plain text file MethodNotBindableException.php Class Class source

  Files folder image Files (83)  /  src  /  Extensions  
File Role Description
  Plain text file ExtensionsCollection.php Class Class source
  Plain text file ExtensionsRegistry.php Class Class source

  Files folder image Files (83)  /  src  /  Guards  
File Role Description
  Plain text file InvalidExtensionGuard.php Class Class source
  Plain text file MethodDefinedInClassGuard.php Class Class source

  Files folder image Files (83)  /  src  /  Resolvers  
File Role Description
  Plain text file ExtensionCallableResolver.php Class Class source
  Plain text file ExtensionResolver.php Class Class source

  Files folder image Files (83)  /  src  /  Traits  
File Role Description
  Plain text file HandlesExtensionMethods.php Class Class source
  Plain text file ImplementsExtensible.php Class Class source
  Plain text file InteractsWithExtensionsRegistry.php Class Class source

  Files folder image Files (83)  /  tests  
File Role Description
Files folder imageExtensible (1 file)
Files folder imageHelpers (15 files)
  Plain text file TestCase.php Class Class source

  Files folder image Files (83)  /  tests  /  Extensible  
File Role Description
  Plain text file ExtensionMethodTest.php Class Class source

  Files folder image Files (83)  /  tests  /  Helpers  
File Role Description
  Plain text file ChildExtensionMethodReplacement.php Class Class source
  Plain text file ChildObject.php Class Class source
  Plain text file CreatableObject.php Class Class source
  Plain text file CreatableObjectExtensionMethod.php Class Class source
  Plain text file DynamicMethodUsingPrivateValue.php Class Class source
  Plain text file DynamicMethodUsingProtectedValue.php Class Class source
  Plain text file FooObject.php Class Class source
  Plain text file GrandChildObject.php Class Class source
  Plain text file GuardedExtensionMethod.php Class Class source
  Plain text file GuardedObject.php Class Class source
  Plain text file OtherExtensionMethod.php Class Class source
  Plain text file SimpleObject.php Class Class source
  Plain text file StaticExtensionMethod.php Class Class source
  Plain text file StaticPropertyExtensionMethod.php Class Class source
  Plain text file StaticPropertyObject.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:61
This week:0
All time:10,489
This week:97Up