Laravel надає потужні можливості для валідації зображень за допомогою правила dimensions, що дозволяє детально контролювати розміри та пропорції медіафайлів під час їх завантаження у вашу програму
Простий приклад реалізації демонструє гнучкість цього правила:
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
// Основна валідація
$validator = Validator::make($request->all(), [
'profile_photo' => [
'required',
Rule::dimensions()
->minWidth(400)
->minHeight(400)
->maxWidth(2000)
->maxHeight(2000)
]
]);
Ось як реалізувати комплексну стратегію валідації зображень у системі управління медіа:
class MediaController extends Controller
{
public function upload(Request $request)
{
$imageType = $request->input('type', 'standard');
$rules = [
'image' => array_merge(
['required', 'image', 'max:10240'], // максимальний розмір 10 МБ
$this->getDimensionRules($imageType)
)
];
$request->validate($rules);
// Обробка та збереження валідаційного зображення
$path = $request->file('image')->store('media/' . $imageType);
return response()->json([
'success' => true,
'path' => $path
]);
}
protected function getDimensionRules(string $type): array
{
return match($type) {
'thumbnail' => [
Rule::dimensions()
->width(300)
->height(300)
],
'hero' => [
Rule::dimensions()
->minWidth(1200)
->minHeight(600)
->maxHeight(800)
->ratio(2)
],
'gallery' => [
Rule::dimensions()
->minWidth(800)
->minHeight(600)
->maxWidth(3000)
->maxHeight(2000)
],
default => [
Rule::dimensions()
->minWidth(400)
->minHeight(400)
]
};
}
}
Правило dimensions гарантує оптимальну якість зображень у вашій програмі, запобігаючи проблемам зі зберіганням та пропускною здатністю через неправильно підібрані uploads
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!