Skip to content

Commit

Permalink
Namespace-Änderung (#37)
Browse files Browse the repository at this point in the history
* Namespace-Angleichng an den FOR-Standard

* Namespace-Anpassung auch für den CLI-Command

* Der Format-Parameter bei den Formattern ist eher verwirrend.

Nur weil in den EXIF-Daten z.B. als Auslösezeit 0.025 (wäre Format RAW).
Das will man das nicht so ausgeben. Als Angabe erwartet man 1/40 (Format READABLE).

Wozu auch den Parameter mitschleifen, wenn er meistens gar nicht genutzt wird? (wie z.B. bei den GEO-Daten)
Wird also nicht gebraucht.

* Deprecation Warnung optimieren.

a) War bisher viel zu unübersichtlich.
b) Wurde auf eine Verwendung innerhalb des Addons verwiesen. Der Ort sollte die erste Stelle außerhalb sein. Also da wo der Benutzer den Code schreibt

* Deprecations nicht als Attribut einsetzen

* null-Parameter, gefunden via phpunit

* Autoload callback ist eine void-Funktion.

* FormatInterface ist eigentlich eine Basis-Klasse. Also wäre FormatBase der bessere Name.

* Da FormatBase noch nicht verwendet werden kann, kann dort auch die neue API komplett umgesetzt sein.
Das alte FormartInterface muss es erstmal weiter bis v4 unterstützen

* Echtes FormtterInterface als alternative zur abstrakten Klasse.

Vorteil: Das Daten-Array kann vom Entwickler selbst bestimmt werden.

* Bugfix: Fehlerhafte Anzeigen, bei Belichtungszeiten über 1 sek.
Fehlerhafte Beispiele:
"1/1 s" statt "1 s"
"13/1 s" statt "13 s"
"3/5 s" statt "0,6 s"
"1/2 s" statt "0,5 s"

* Formatter für Geodaten in Grad-Schreibweise

* Version aus Datei-Kommentaren entfernen, das hat mit der Realität kaum was zu tun

* phpUnit-Dateien ausschließen

* Fehlerbereinigung mit phpUnit

* phpStan
  • Loading branch information
akrys authored Sep 13, 2024
1 parent a814f66 commit e89c86a
Show file tree
Hide file tree
Showing 34 changed files with 793 additions and 242 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.phpunit.cache
_docs
11 changes: 9 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
<?php

use FriendsOfRedaxo\addon\MediapoolExif\MediapoolExif;
use FriendsOfRedaxo\MediapoolExif;

spl_autoload_register(['FriendsOfRedaxo\\MediapoolExif\\Autoload', 'autoload'], true, true); // remove in v4

class_alias(MediapoolExif\Exception\InvalidClassException::class, 'FriendsOfRedaxo\\addon\\MediapoolExif\\Exception\\InvalidClassException');// remove in v4
class_alias(MediapoolExif\Exception\InvalidFormatExcption::class, 'FriendsOfRedaxo\\addon\\MediapoolExif\\Exception\\InvalidFormatExcption');// remove in v4
class_alias(MediapoolExif\Exception\IptcException::class, 'FriendsOfRedaxo\\addon\\MediapoolExif\\Exception\\IptcException');// remove in v4
class_alias(MediapoolExif\Exception\NotFoundException::class, 'FriendsOfRedaxo\\addon\\MediapoolExif\\Exception\\NotFoundException');// remove in v4

$dir = realpath(__DIR__);
if ($dir !== false) {
rex_fragment::addDirectory($dir);
}


$class = MediapoolExif::class;
$class = MediapoolExif\MediapoolExif::class;
rex_extension::register('MEDIA_ADDED', [$class, 'processUploadedMedia'], rex_extension::LATE);
rex_extension::register('MEDIA_UPDATED', [$class, 'processUploadedMedia'], rex_extension::LATE);
rex_extension::register('MEDIA_DETAIL_SIDEBAR', [$class, 'mediapoolDetailOutput']);
86 changes: 86 additions & 0 deletions lib/Autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?php

/**
* Datei für ...
*
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif;

/**
* Description of Autoload
*
* @author akrys
*/
class Autoload
{

/**
* (Absolutes) Basis Verzeichnis holen
* @return string
* @deprecated wird nicht mehr benötigt, sobald alte Klassen mit 'addon' im Namespace nicht mehr unterstützt werden
* @codeCoverageIgnore
*/
public static function getBaseDir() // remove in v4
{
return (string) realpath(__DIR__);
}

/**
* Autoload Funktion
* @param string $name
* @return void
*
* @deprecated wird nicht mehr benötigt, sobald alte Klassen mit 'addon' im Namespace nicht mehr unterstützt werden
* @codeCoverageIgnore
*/
public static function autoload($name): void // remove in v4
{
if (stristr($name, 'FriendsOfRedaxo\\addon\\MediapoolExif')) {
$oldName = $name;
$newName = str_replace('FriendsOfRedaxo\\addon\\MediapoolExif', 'FriendsOfRedaxo\\MediapoolExif', $name);

$backtrace = debug_backtrace();
$backtraceText = '';
$i = 0;
foreach ($backtrace as $key => $item) {
if (isset($backtrace[$key]['file']) && isset($backtrace[$key]['line'])) {
if (stristr($backtrace[$key]['file'], '/mediapool_exif/')) {
continue;
}

$backtraceText = ' in '.$backtrace[$key]['file'].': '.$backtrace[$key]['line'];
break;
}
$i++;
}

$msg = "Deprecated class name found: ".$oldName.$backtraceText.PHP_EOL.'New class: '.$newName;

class_alias($newName, $oldName);

user_error($msg, E_USER_DEPRECATED);
$name = $newName;
}


if (!stristr($name, __NAMESPACE__)) {
return;
}

if (class_exists($name) || interface_exists($name)) {
return;
}

//namespace parts not in directory structure.
$name = str_replace(__NAMESPACE__, '', $name);

$filename = self::getBaseDir().'/'.str_replace('\\', '/', $name).'.php';
if (file_exists($filename)) {
require $filename;
return;
}
// throw new \Exception($filename.' not found');
return;
}
}
9 changes: 4 additions & 5 deletions lib/Cli/Read.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
/**
* Datei für ...
*
* @version 1.0 / 2020-06-08
* @author akrys
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Cli;
namespace FriendsOfRedaxo\MediapoolExif\Cli;

use FriendsOfRedaxo\addon\MediapoolExif\Enum\MediaFetchMode;
use FriendsOfRedaxo\addon\MediapoolExif\Exif;
use FriendsOfRedaxo\addon\MediapoolExif\MediapoolExif;
use FriendsOfRedaxo\MediapoolExif\Enum\MediaFetchMode;
use FriendsOfRedaxo\MediapoolExif\Exif;
use FriendsOfRedaxo\MediapoolExif\MediapoolExif;
use rex_console_command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
Expand Down
9 changes: 2 additions & 7 deletions lib/Enum/Format.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
<?php

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Enum;

/**
* Datei für ...
*
* @version 1.0 / 2023-11-02
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif\Enum;

/**
* Description of Format
*
* @author akrys
* @deprecated since version 3.1. Wird ersatzlos gestrichen. Ein Formatter ist für exakt ein Format zuständig, wenn man die Rohdaten braucht, kann man einen Rohdaten Formatter schreiben.
*/
enum Format: string
{
Expand Down
2 changes: 1 addition & 1 deletion lib/Enum/IptcDefinitions.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPEnum.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Enum;
namespace FriendsOfRedaxo\MediapoolExif\Enum;

/**
*
Expand Down
8 changes: 1 addition & 7 deletions lib/Enum/MediaFetchMode.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
<?php

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Enum;

/**
* Datei für ...
*
* @version 1.0 / 2023-11-02
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif\Enum;

/**
* Description of MediaFetchMode
Expand Down
8 changes: 1 addition & 7 deletions lib/Enum/ReturnMode.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
<?php

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Enum;

/**
* Datei für ...
*
* @version 1.0 / 2023-11-02
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif\Enum;

/**
* Description of Mode
Expand Down
19 changes: 5 additions & 14 deletions lib/Exception/InvalidClassException.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
<?php

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Exception;

use Exception;
use Throwable;

/**
* Datei für ...
*
* @version 1.0 / 2024-03-31
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif\Exception;

use Exception;
use Throwable;

/**
* Description of InvalidClassException
Expand All @@ -32,10 +26,7 @@ class InvalidClassException extends Exception
* @param Throwable $previous
*/
public function __construct(
private string $class,
string $message = "",
int $code = 0,
Throwable $previous = null
private string $class, string $message = "", int $code = 0, Throwable $previous = null
) {
if ($message === '') {
$message = 'Invalid class: '.$class;
Expand Down
12 changes: 5 additions & 7 deletions lib/Exception/InvalidFormatExcption.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
/**
* Datei für ...
*
* @version 1.0 / 2020-06-12
* @author akrys
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Exception;
namespace FriendsOfRedaxo\MediapoolExif\Exception;

use Exception;
use FriendsOfRedaxo\addon\MediapoolExif\Enum\Format;
use FriendsOfRedaxo\MediapoolExif\Enum\Format;
use Throwable;

/**
* Description of InvalidFormatExcption
*
* @author akrys
* @deprecated since version 3.1. Wird ersatzlos gestrichen. Ein Formatter ist für exakt ein Format zuständig, wenn man die Rohdaten braucht, kann man einen Rohdaten Formatter schreiben.
*/
class InvalidFormatExcption extends Exception
{
Expand All @@ -28,10 +28,7 @@ class InvalidFormatExcption extends Exception
* @param Throwable $previous
*/
public function __construct(
private ?Format $format,
string $message = "",
int $code = 0,
Throwable $previous = null
private ?Format $format, string $message = "", int $code = 0, Throwable $previous = null
) {
if ($this->format === null) {
$this->format = Format::UNDEFINED;
Expand All @@ -45,6 +42,7 @@ public function __construct(
/**
* Formatname
* @return Format|null
* @deprecated since version 3.1
*/
public function getFormat(): ?Format
{
Expand Down
12 changes: 3 additions & 9 deletions lib/Exception/IptcException.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
<?php

/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Exception;

use Exception;

/**
* Datei für ...
*
* @version 1.0 / 2023-12-09
* @author akrys
*/
namespace FriendsOfRedaxo\MediapoolExif\Exception;

use Exception;

/**
* Description of IptcException
Expand Down
3 changes: 1 addition & 2 deletions lib/Exception/NotFoundException.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
/**
* Datei für ...
*
* @version 1.0 / 2020-06-08
* @author akrys
*/
namespace FriendsOfRedaxo\addon\MediapoolExif\Exception;
namespace FriendsOfRedaxo\MediapoolExif\Exception;

use Exception;
use Throwable;
Expand Down
9 changes: 4 additions & 5 deletions lib/Exif.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
/**
* Datei für ...
*
* @version 1.0 / 2020-06-08
* @author akrys
*/
namespace FriendsOfRedaxo\addon\MediapoolExif;
namespace FriendsOfRedaxo\MediapoolExif;

use FriendsOfRedaxo\addon\MediapoolExif\Enum\MediaFetchMode;
use FriendsOfRedaxo\addon\MediapoolExif\Enum\ReturnMode;
use FriendsOfRedaxo\addon\MediapoolExif\ExifData;
use FriendsOfRedaxo\MediapoolExif\Enum\MediaFetchMode;
use FriendsOfRedaxo\MediapoolExif\Enum\ReturnMode;
use FriendsOfRedaxo\MediapoolExif\ExifData;
use rex_media;
use rex_sql;

Expand Down
Loading

0 comments on commit e89c86a

Please sign in to comment.