outl1ne/nova-media-hub
Composer 安装命令:
composer require outl1ne/nova-media-hub
包简介
A Laravel Nova tool for managing media.
README 文档
README
This Laravel Nova package allows you to manage media and media fields.
Requirements
php: >=8.2laravel/nova: ^5.0
Other Versions
Features
- Media Hub UI in separate view
- Media Hub field for selecting single/multiple media
- Image optimization and multiple conversions support
- File naming and path making customization
- Dark mode support
- A lot configuration options
Screenshots
Installation
Install the package in a Laravel Nova project via Composer and run migrations:
# Install nova-media-hub composer require outl1ne/nova-media-hub # Run migrations php artisan migrate
Register the tool with Nova in the tools() method of the NovaServiceProvider:
// in app/Providers/NovaServiceProvider.php public function tools() { return [ // ... \Outl1ne\NovaMediaHub\MediaHub::make() // You can choose to hide the Tool from the sidebar ->hideFromMenu() // Optionally add additional fields to Media items ->withCustomFields( ['copyright' => __('Copyright')], overwrite: false ) ]; }
Usage
Fields
This package provides a field MediaHubField which allows you to select media. This saves the media as a JSON array into the database.
Example usage:
use Outl1ne\NovaMediaHub\Nova\Fields\MediaHubField; // ... MediaHubField::make('Media', 'media') ->defaultCollection('products') // Define the default collection the "Choose media" modal shows ->multiple(), // Define whether multiple media can be selected
Casting
The media column of models can be automatically cast as a Collection of Media models:
class Product extends Model { protected $casts = [ 'media' => \Outl1ne\NovaMediaHub\Casts\MediaCast::class, ]; }
$cover = Product::first()->media->first(); // ... $urls = Product::first()->media->pluck('url'); // ... $collection = Product::first()->media->where('collection_name', 'Details');
Configure
The config file can be published using the following command:
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="config"
Custom optimizer chain
You can define a custom optimizer chain or add items to it like so:
// in app/Providers/AppServiceProvided.php public function register() { // ... // https://github.com/spatie/image-optimizer#creating-your-own-optimization-chains \Outl1ne\NovaMediaHub\MediaHub::withOptimizerChain( (new OptimizerChain) ->addOptimizer(new Jpegoptim([ '--strip-all', '--all-progressive', ])) ->addOptimizer(new Pngquant([ '--force', ])) ); }
Localization
The translation file(s) can be published by using the following command:
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="translations"
Credits
License
Nova Media Hub is open-sourced software licensed under the MIT license.
outl1ne/nova-media-hub 适用场景与选型建议
outl1ne/nova-media-hub 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 56.03k 次下载、GitHub Stars 达 46, 最近一次更新时间为 2022 年 06 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「nova」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 outl1ne/nova-media-hub 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 outl1ne/nova-media-hub 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 outl1ne/nova-media-hub 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel Nova card that shows you your system information.
A Laravel Nova card.
A Laravel Nova package for publishable fields
A Laravel Nova package for translatable fields
A Laravel Nova Image field. you can paste or drag or chose an image
A Laravel Nova Mail testing tool.
统计信息
- 总下载量: 56.03k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 46
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2022-06-15

