andresilva/clipboard

在您的应用程序中剪切、复制和粘贴值。

v1.0.1 2024-05-09 12:23 UTC

This package is auto-updated.

Last update: 2024-09-26 16:43:24 UTC


README

Latest Version on Packagist Latest stable test run codecov Maintainability Laravel Octane Compatibility

在您的应用程序中进行复制、剪切和粘贴。没错,就是这样。

use Laragear\Clipboard\Facades\Clipboard;

public function foo()
{
    Clipboard::copy('test');
}

public function bar()
{
    Clipboard::paste(); // 'test'
}

成为赞助商

您的支持使我能够保持这个包免费、更新和可维护。或者,您也可以 传播信息!

需求

  • PHP 8 或更高版本
  • Laravel 9, 10 或更高版本

安装

您可以通过 composer 安装此包

composer require laragear/clipboard

使用方法

Clipboard 的工作方式与您的应用程序中的常规剪贴板相似。

使用 Clipboard 在应用程序内部移动值可以避免不必要地将东西注册到 Service Container 中,或者使用函数或缓存移动值。

复制和粘贴

复制一个值将复制对象的引用,或者如果是原始数据类型(如 stringintarray 等),则复制该值。它就像任何其他函数一样工作。

use Laragear\Clipboard\Facades\Clipboard;
use App\Models\Article;

$article = Article::find(5);

// Copy a value
Clipboard::copy($article);

// Edit the reference after has been copied.
$article->title = 'The new title!';

粘贴将根据您的要求粘贴值。如果剪贴板为空,则接受默认值。

// Paste a value
Clipboard::paste()->title; // 'The new title'

克隆

有时您可能想要真正地 克隆 对象而不是复制其引用。在这种情况下,请使用 clone() 方法。

use Laragear\Clipboard\Facades\Clipboard;
use App\Models\Article;

$article = Article::make(['title' => 'Original title']);

// Clone an object
Clipboard::clone($article);

由于它是克隆,原始变量将与之后粘贴的变量不同。

$article->title = 'Different title';

echo Clipboard::paste()->title; // "Original title"

剪切和拖动

剪切的工作方式与复制相似,但当前上下文中的值将被分配为 null

use Laragear\Clipboard\Facades\Clipboard;

$article = 'This is a big wall of text.';

// Cut a value
Clipboard::cut($article);

echo $article; // ''

同时,pull() 将从剪贴板检索值并从中删除它。如果剪贴板为空,则接受默认值。

use Laragear\Clipboard\Facades\Clipboard;

$text = Clipboard::pull();

echo $text; // 'This is a big wall of text.'

清除

您可以使用 clear() 在任何时候清除剪贴板

use Laragear\Clipboard\Facades\Clipboard;

Clipboard::copy('I am going to dissapear.');

Clipboard::clear();

echo Clipboard::paste(); // ''

方法传递

为了您的方便,您不需要检索剪贴板对象来做某事。剪贴板将传递所有方法调用到复制的或克隆的对象。

use Laragear\Clipboard\Facades\Clipboard;
use App\Models\Article;

$article = Article::make(['title' => 'Original title']);

// Copy a value
Clipboard::copy($article);

// Some lines after...
Clipboard::save();

这是如何工作的?

它只是注册了一个在请求生命周期内或命令的整个生命周期中保持值的单例。就这样。

Laravel Octane 兼容性

  • 没有使用过时的应用程序实例的单例。
  • 没有使用过时的配置实例的单例。
  • 没有使用过时的请求实例的单例。
  • 没有在请求期间写入静态属性。

在使用 Laravel Octane 时应该没有问题。

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送到 darkghosthunter@gmail.com,而不是使用问题跟踪器。

许可

此特定包版本根据发布时的条款许可,受MIT 许可证

LaravelTaylor Otwell 的商标。版权 © 2011-2023 Laravel LLC。

愚人节快乐,大家!