What are the best practices for resizing images in PHP while maintaining aspect ratio and quality?

When resizing images in PHP, it's important to maintain the aspect ratio to prevent distortion and to preserve the image quality. One common approach is to calculate the new dimensions based on the desired width or height while keeping the aspect ratio intact.

```php
function resize_image($source_path, $destination_path, $max_width, $max_height) {
    list($source_width, $source_height) = getimagesize($source_path);
    $source_ratio = $source_width / $source_height;
    
    if ($max_width / $max_height > $source_ratio) {
        $max_width = $max_height * $source_ratio;
    } else {
        $max_height = $max_width / $source_ratio;
    }
    
    $image = imagecreatefromjpeg($source_path);
    $new_image = imagecreatetruecolor($max_width, $max_height);
    
    imagecopyresampled($new_image, $image, 0, 0, 0, 0, $max_width, $max_height, $source_width, $source_height);
    
    imagejpeg($new_image, $destination_path, 90);
    
    imagedestroy($image);
    imagedestroy($new_image);
}
```

This code snippet defines a function `resize_image` that takes the source image path, destination path, maximum width, and maximum height as parameters. It calculates the new dimensions while maintaining the aspect ratio and then resizes the image using `imagecopyresampled`. Finally, it saves the resized image as a JPEG with a quality of 90.