Compare commits

..

No commits in common. "6f23c717739b19e7821f5ce60735436279377b1d" and "a1ac9edadc8294465e5315af9dadc3a740ec6dc9" have entirely different histories.

5 changed files with 6 additions and 91 deletions

View File

@ -6,8 +6,7 @@
"vlucas/phpdotenv": "^5.5",
"ext-gd": "*",
"ext-pdo": "*",
"ext-pdo_sqlite": "*",
"psr/log": "^3.0"
"ext-pdo_sqlite": "*"
},
"autoload": {
"psr-4": {

52
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "2269f5deec22d5f78ed3c229cddb1359",
"content-hash": "35cc1fc18887fe14e702beb8a8486527",
"packages": [
{
"name": "graham-campbell/result-type",
@ -384,56 +384,6 @@
},
"time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/log",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"shasum": ""
},
"require": {
"php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/3.0.0"
},
"time": "2021-07-14T16:46:02+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.27.0",

View File

@ -3,12 +3,10 @@ error_reporting(E_ERROR | E_PARSE);
require_once './vendor/autoload.php';
use ImageResizer\Lib\FileLogger;
use ImageResizer\Lib\Resizer;
use ImageResizer\Lib\SqliteImageDb;
use ImageResizer\Models\ResizeParams;
$logger = new FileLogger("resizer.log");
$dotenv = Dotenv\Dotenv::createImmutable([__DIR__, __DIR__ . "/.."]);
$dotenv->load();
@ -17,12 +15,6 @@ $imageDb = new SqliteImageDb(new PDO("sqlite:{$_ENV["db_name"]}"));
$imgPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$params = new ResizeParams($_GET);
$resizer = new Resizer($imageDb, $logger);
$resizer = new Resizer($imageDb);
try {
echo $resizer->performResize($imgPath, $params);
} catch (\Exception $e) {
$logger->error($e->getMessage());
http_response_code(500);
echo "Internal Server Error";
}
echo $resizer->performResize($imgPath, $params);

View File

@ -1,21 +0,0 @@
<?php declare(strict_types=1);
namespace ImageResizer\Lib;
use DateTime;
use Psr\Log\AbstractLogger;
use Stringable;
class FileLogger extends AbstractLogger
{
function __construct(private readonly string $filename = 'php://stdout') {}
public function log($level, Stringable|string $message, array $context = []): void
{
$timestamp = new DateTime();
$callingClass = debug_backtrace()[2]['class'];
$callingFunction = debug_backtrace()[2]['function'];
$log = $timestamp->format(DATE_ATOM) . " [$level] $callingClass::$callingFunction $message " . json_encode($context);
fwrite(fopen($this->filename, 'w'), $log . PHP_EOL);
}
}

View File

@ -6,13 +6,10 @@ namespace ImageResizer\Lib;
use ImageResizer\Models\ResizeParams;
use ImageResizer\Models\Image;
use Psr\Log\AbstractLogger;
class Resizer
{
public function __construct(
private readonly ImageDb $imageDb,
private readonly AbstractLogger $logger,
private readonly ImageDb $imageDb
)
{}
@ -23,7 +20,7 @@ class Resizer
{
// Check if the image has already been processed
if ($image = $this->imageDb->findImage($path, $params)) {
$this->logger->info("Found existing image", ['path'=>$path, 'params'=>$params]);
header("Content-type: {${$image->getMime()}}");
return base64_decode($image->encode(75));
}
@ -31,7 +28,6 @@ class Resizer
// Fetch the image at the given URL
$original_img = Image::fromUrl($_ENV['ROOT_DOMAIN'] . $path);
$converted = $this->createVariant($original_img, $params);
$this->logger->info("Created variant", ['path'=>$path, 'params'=>$params]);
// Store the image in the database
$this->imageDb->saveImage(
@ -39,7 +35,6 @@ class Resizer
$params,
$converted
);
$this->logger->info("Saved image for $path");
header("Content-type: {$original_img->getMime()}");
return base64_decode($converted);