wickedbyte / link-tortilla
Provides a simple set of traits to allow wrapping user classes as PSR-13 Link implementations.
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- psr/link: ^2.0
Requires (Dev)
- guzzlehttp/psr7: ^2.7
- php-parallel-lint/php-parallel-lint: ^1.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^11.5 || ^12.0
- psr/http-message: ^2.0
- rector/rector: ^2.1
- wickedbyte/coding-standard: ^1.0
README
This project is an independently maintained fork of phoneburner/link-tortilla, originally released under the MIT license, by the original project authors. This fork is neither affiliated with nor endorsed by PhoneBurner.
Provides a simple set of traits to allow wrapping user classes as PSR-13 Link 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 \WickedByte\LinkTortilla\Link, a simple implementation of the PSR-13
Psr\Link\EvolvableLinkInterface that can be used as the instance passed into the wrapper class.
Requirements
- PHP >= 8.2
psr/link^2.0
Installation
The preferred method of installation is to use Composer:
composer require wickedbyte/link-tortilla
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 WickedByte\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 bugs 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.