Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mehrere Versionen von Komponenten nutzen

1 view
Skip to first unread message

Arno Welzel

unread,
Jul 2, 2022, 9:11:22 AM7/2/22
to
Gegeben sei folgender Fall:

Ein WordPress-Plugin nutzt Composer und Twig.

Das sieht dann z.B. so aus:

<?php
/*
Plugin Name: Foobar
Plugin URI: https://foobar.example
Description: Foobar plugin
Version: 1.0
Author: Foobar
Author URI: https://foobar.example
Text Domain: foobar
*/
namespace Foobar;

use Twig\Loader\FilesystemLoader;
use Twig\Environment;

defined('ABSPATH') or die();

require(__DIR__ . '/vendor/autoload.php');

// ...
?>

Grundsätzlich funktioniert das auch erstmal. Aber nur solange, bis ein
anderes Plugin ebenfalls Twig verwendet - aber in einer anderen Version.

Da die Plugins ja nicht im luftleeren Raum laufen sondern als Teil von
WordPress zur Laufzeit geladen werden, kann es passieren, dass ein
anderes Plugin vorher schon Twig geladen hat, aber in einer anderen Version.

Eigentlich bräuchte man einen Autoloader, der nicht nur danach auflöst,
*was* mit "use" verwendet werden soll, sondern auch *wer* das tut und
dann je nach Quelle unterschiedlich vorgeht. Aber auch dann bleibt wohl
das Problem, dass im Speicher die Klasse "Twig\Loader\FilesystemLoader"
nur einmal existieren kann, auch wenn es zwei Versionen aus
unterschiedlichen Dateien gibt.

Irgendwelche Ideen oder Tools dazu, die sowas auflösen könnten?


--
Arno Welzel
https://arnowelzel.de
0 new messages