cadicvnn/laravel-activitylog-backport

Spatie's Laravel-ActivityLog 对 PHP 5.6 的向后移植

1.10.3 2016-12-14 20:32 UTC

This package is auto-updated.

Last update: 2024-09-15 20:01:39 UTC


README

这是一个向后移植包,允许 Laravel-ActivityLog 与 PHP 5.6 一起工作。出于设计考虑,原始项目的命名空间保持不变 Spatie\Activitylog。这允许仅进行少量修改即可充分利用文档。

安装

更改

composer require spatie/laravel-activitylog

composer require linearsoft/laravel-activitylog-backport

为了方便起见,此向后移植版本已恢复了 Activity 面向架构基础设施。您只需注册该外观即可。

// config/app.php
'aliases' => [
    ...
    'Activity' => Spatie\Activitylog\ActivitylogFacade::class,
];

测试

已从向后移植版本中移除所有测试。

错误或功能请求

大部分错误 & 请求应提交给 Spatie 团队。修复/功能最终将被移植到本项目。

但是,如果您发现了特定于向后移植版本的问题,请通过 GitHub 提交。

许可

许可已从 MIT 更改为 GPLv3 许可证 - 有关详细信息,请参阅 LICENSE 文件。但是,您仍需遵循原始包的 Postcardware "要求"。

原始 ReadMe.md 开始

在您的 Laravel 应用程序中记录活动

spatie/laravel-activity 包提供易于使用的函数来记录应用程序用户的活动。它还可以自动记录模型事件。所有活动都将存储在 activity_log 表中。

以下是一个演示,说明您如何使用它

activity()->log('Look, I logged something');

您可以使用 Spatie\Activitylog\Models\Activity 模型检索所有活动。

Activity::all();

以下是一个更高级的示例

activity()
   ->performedOn($anEloquentModel)
   ->causedBy($user)
   ->withProperties(['customProperty' => 'customValue'])
   ->log('Look, I logged something');
   
$lastLoggedActivity = Activity::all()->last();

$lastLoggedActivity->subject; //returns an instance of an eloquent model
$lastLoggedActivity->causer; //returns an instance of your user model
$lastLoggedActivity->getExtraProperty('customProperty'); //returns 'customValue'
$lastLoggedActivity->description; //returns 'Look, I logged something'

以下是一个关于 事件记录 的示例。

$newsItem->name = 'updated name';
$newsItem->save();

//updating the newsItem will cause an activity being logged
$activity = Activity::all()->last();

$activity->description; //returns 'updated'
$activity->subject; //returns the instance of NewsItem that was created

调用 $activity->changes 将返回此数组

[
   'attributes' => [
        'name' => 'updated name',
        'text' => 'Lorum',
    ],
    'old' => [
        'name' => 'original name',
        'text' => 'Lorum',
    ],
];

Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 在这里

Postcardware

您可以使用此包(它是 MIT 许可的),但如果它进入您的生产环境,您需要从您家乡给我们寄一张明信片,注明您正在使用我们的哪个包(s)。

我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。

最好的明信片将发表在我们的网站上开源页面上。

文档

您可以在 https://docs.spatie.be/laravel-activitylog/v1 上找到文档。

如果您在使用包时遇到困难?发现了一个错误?您对改进媒体库有任何一般性问题或建议?请随时在 GitHub 上 创建一个问题,我们将尽快解决。

如果您发现了一个关于安全的错误,请通过 freek@spatie.be 发送电子邮件,而不是使用问题跟踪器。

安装

您可以通过 composer 安装此包

composer require spatie/laravel-activitylog

接下来,您必须安装服务提供程序

// config/app.php
'providers' => [
    ...
    Spatie\Activitylog\ActivitylogServiceProvider::class,
];

您可以使用以下命令发布迁移

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="migrations"

注意:默认迁移假设您正在使用整数作为您的模型 ID。如果您正在使用 UUIDs 或其他格式,请在继续之前调整已发布迁移中 subject_id 和 causer_id 字段的格式。

迁移发布后,您可以通过运行迁移来创建 activity_log 表。

php artisan migrate

您可以选择使用以下命令发布配置文件:

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="config"

这是已发布配置文件的内容:

return [

    /**
     * When set to false, no activities will be saved to database.
     */
    'enabled' => env('ACTIVITY_LOGGER_ENABLED', true),

    /**
     * When running the clean-command all recording activites older than
     * the number of days specified here will be deleted.
     */
    'delete_records_older_than_days' => 365,


    /**
     * When not specifying a log name when logging activity
     * we'll using this log name.
     */
    'default_log_name' => 'default',


    /**
     * When set to true, the subject returns soft deleted models.
     */
     'subject_returns_soft_deleted_models' => false,
     
     
    /**
     * This model will be used to log activity. The only requirement is that
     * it should be or extend the Spatie\Activitylog\Models\Activity model.
     */
    'activity_model' => \Spatie\Activitylog\Models\Activity::class,     
];

变更日志

有关最近更改的更多信息,请参阅 变更日志

测试

$ composer test

贡献

有关详细信息,请参阅 贡献指南

安全

如果您发现任何安全问题,请发送电子邮件至 freek@spatie.be,而不是使用问题跟踪器。

致谢

关于 Spatie

Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 在这里

许可证

MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。.