Files
Nexora/app/Providers/AppServiceProvider.php

52 lines
1.5 KiB
PHP
Raw Normal View History

2025-04-23 00:14:33 +06:00
<?php
namespace App\Providers;
2025-04-30 20:56:28 +02:00
use App\Livewire\FileUpload;
use App\Livewire\ImageUploader;
use App\Livewire\ProjectShow;
use App\Livewire\Toolbar;
use App\View\Components\Multiselect;
2025-04-23 00:14:33 +06:00
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Validator;
2025-04-23 00:14:33 +06:00
use Livewire\Livewire;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
// Configuración de componentes Blade
2025-04-23 00:14:33 +06:00
Blade::componentNamespace('App\\View\\Components', 'icons');
2025-04-30 20:56:28 +02:00
Blade::component('multiselect', Multiselect::class);
2025-04-23 00:14:33 +06:00
// Registro de componentes Livewire
2025-04-30 20:56:28 +02:00
Livewire::component('project-show', ProjectShow::class);
Livewire::component('file-upload', FileUpload::class);
Livewire::component('toolbar', Toolbar::class);
Livewire::component('image-uploader', ImageUploader::class);
// Validación personalizada
Validator::extend('max_upload_size', function ($attribute, $value, $parameters, $validator) {
$maxSize = env('MAX_UPLOAD_SIZE', 51200); // 50MB por defecto
$totalSize = array_reduce($value, function($sum, $file) {
return $sum + $file->getSize();
}, 0);
return $totalSize <= ($maxSize * 1024);
});
2025-04-23 00:14:33 +06:00
}
}