laragear/clipboard

在您的应用内部剪切、复制和粘贴值。

v1.0.0 2023-04-01 18:48 UTC

This package is auto-updated.

Last update: 2024-08-30 01:44:09 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在应用程序内部移动值可以避免不必要地注册到服务容器中,或者使用函数或缓存移动值。

复制和粘贴

复制一个值将复制对象的引用,或者如果是基本类型如字符串、整数或数组等,则复制其值。它像任何其他函数一样工作。

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。

愚人节快乐,大家!