dlindberg / pasteboard
Very basic MacOS pasteboard interface
Installs: 15
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
pkg:composer/dlindberg/pasteboard
Requires
- php: ~5.6|~7.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
Suggests
- league/climate: Useful for building more advanced PHP cli utilities.
This package is auto-updated.
Last update: 2025-10-12 09:19:36 UTC
README
This is a very simple static utility class that gives access to the pbcopy and pbpaste interface on MacOS and other systems that support those shell commands. This utility is primarily useful in developing PHP command line tools. It endeavors to comply fully with PRS-1, PRS-2, and PRS-4.
This project also uses the thephpleague/skeleton repository for component boilerplate.
Install
Via Composer
$ composer require Dlindberg/Pasteboard
Usage
Pasteboard has three methods:
Get
Retrieves a value from the clipboard.
Pasteboard::get();
Parameters: None.
Returns: The contents of the host computers clipboard or false if the clipboard is empty or fails to return a value.
Note: no filters or santization is applied to the return value and it is prudent to treat the value as unsafe user input for the purposes of your application.
Set
Copies a value to the clipboard.
Pasteboard::set(string $value);
Parameters $value any value that the pasteboard on the host computer accepts. The function does not validate that the value is safe or valid before attempting to pass it to the host computer. If you are sending user input, or the results of an http request to the computer's clipboard it is prudent ensure that whatever is sent to the clipboard is safe for the context you intend to paste it to.
Returns: true on success or false on failure.
Set Array
Sends an array of values one at a time to the clipboard pausing between each send. The function also has some advanced options defined in the $options array.
Pasteboard::setArray(array $values, array $options)
Parameters
$valuesan array of values you wish to send to the host computer. The same notes as in set apply to each value.$optionsan optional settings array. Available options:resetwhentruethe original contents of the clipboard will be restored at the end of execution. Default:false.waitamount of time in seconds to wait betweenset()operations. Default1.depthSpecified recursion depth. Default:0, nested arrays will be skipped.heartbeata user defined closure function that will execute each time the clipboard is set. This function overrides the default$hearbeatfunction. Therefore, thewaitparameter is ignored when ahearbeatis passed. The function should return a truthy value if execution should continue and a falsy value to terminate execution. Heartbeat is passed the result ofset().
Returns: true on success or false on failure.
Note: Without an advanced clipboard manager on the host machine, or passing a heartbeat function sending more than two to three items to clipboard will rapidly become untenable.
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email dane@lindberg.xyz instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.