phoneburner / link-tortilla
Provides a simple set of traits to allow wrapping user classes as PSR-13 Link implementations.
Installs: 642
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
pkg:composer/phoneburner/link-tortilla
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0
- psr/link: ^2.0
Requires (Dev)
- guzzlehttp/psr7: ^2.7
- phoneburner/coding-standard: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^12.2
- psr/http-message: ^2.0
- rector/rector: ^2.1
README
Provides a simple set of traits to allow wrapping user classes as [PSR-13 Link] (https://www.php-fig.org/psr/psr-13/) implementations. Wrapping the class allows easy addition of convenience methods, while maintaining compatibility with code that relies on the underlying PSR interfaces.
For convenience, this project also includes \PhoneBurner\LinkTortilla\Link, a
simple implementation of the PSR-13 Psr\Link\EvolvableLinkInterface that can
be used as the instance passed into the wrapper class.
Installation
The preferred method of installation is to use Composer:
composer require phoneburner/link-tortilla
This library currently requires PHP >= 8.2 and psr/link ^2.0.
Usage
To add PSR-13 Link behavior to an arbitrary object, add the LinkWrapper trait,
and set the wrapped Link with setWrapped(). Now if you add "implements Psr\Link\EvolvableLinkInterface"
to the class definition, you will see that all the required methods are defined
and proxy to the wrapped Link.
<?php declare(strict_types=1); use PhoneBurner\LinkTortilla\LinkWrapper; use Psr\Link\LinkInterface; class MyWrappedLink implements LinkInterface { use LinkWrapper; public function __construct(LinkInterface $link) { $this->setWrapped($link); } }
Contributing
Contributions are welcome, please see CONTRIBUTING.md for more information, including reporting bug and creating pull requests.
Coordinated Disclosure
Keeping user information safe and secure is a top priority, and we welcome the contribution of external security researchers. If you believe you've found a security issue, please read SECURITY.md for instructions on submitting a vulnerability report.