imponeer / object-errors
Library that adds a possibility to collect errors for objects
Requires
- php: >=8.3
- ext-json: *
Requires (Dev)
- phpstan/phpstan: ^2
- phpunit/phpunit: ^12.0
- squizlabs/php_codesniffer: ^3.9
README
Object Errors
A PHP library for collecting and managing errors associated with objects. Useful for tracking validation or processing errors in a structured way.
Installation
Install via Composer:
composer require imponeer/object-errors
Alternatively, you can manually include the files from the src/
directory.
Usage
This library allows you to attach an error collection to your objects and manage errors easily.
Using as a property
Below is a simple usage example by directly creating an ErrorsCollection
instance:
use Imponeer\ObjectErrors\ErrorsCollection; class MyObject { /** * @var ErrorsCollection|null */ public $errors = null; public function __construct() { $this->errors = new ErrorsCollection(); } public function doSomething() { // Example logic if ($failed) { $this->errors->add("Some error"); } } public function render() { if ($this->errors->isEmpty()) { return 'Everything fine'; } else { return $this->errors->getHtml(); } } }
Using as a trait
You can also use the provided ErrorsTrait
to quickly add error handling to your classes:
use Imponeer\ObjectErrors\ErrorsTrait; class MyObject { use ErrorsTrait; public function doSomething() { if ($failed) { $this->setErrors("Some error"); } } public function render() { if ($this->hasError()) { return $this->getHtmlErrors(); } return 'Everything fine'; } }
Development
Below are useful commands for development. Each command should be run from the project root directory.
Run tests using PHPUnit:
composer test
Check code style using PHP_CodeSniffer:
composer phpcs
Automatically fix code style issues:
composer phpcbf
Run static analysis using PHPStan:
composer phpstan
API Documentation
For detailed API documentation, please visit the Object Errors Wiki.
How to contribute?
Contributions are welcome! If you want to add new features or fix bugs, please fork the repository, make your changes, and submit a pull request.
If you find any bugs or have questions, please use the issues tab to report them or ask questions.