CINXE.COM
Was bringt das empfohlene Decorator Pattern - phpBB.de
<!DOCTYPE html> <html dir="ltr" lang="de"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Was bringt das empfohlene Decorator Pattern - phpBB.de</title> <link rel="alternate" type="application/atom+xml" title="Feed - phpBB.de" href="/community/feed?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="alternate" type="application/atom+xml" title="Feed - Neuigkeiten" href="/community/feed/news?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="alternate" type="application/atom+xml" title="Feed - Neue Themen" href="/community/feed/topics?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="alternate" type="application/atom+xml" title="Feed - Aktive Themen" href="/community/feed/topics_active?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="alternate" type="application/atom+xml" title="Feed - Forum - Coding & Technik" href="/community/feed/forum/6?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="alternate" type="application/atom+xml" title="Feed - Thema - Was bringt das empfohlene Decorator Pattern" href="/community/feed/topic/246555?sid=1f5531d71c5a6238eeeec694d2310405"> <link rel="canonical" href="https://www.phpbb.de/community/viewtopic.php?t=246555"> <!-- phpBB style name: phpBBdev1 Based on style: prosilver (this is the default phpBB3 style) Original author: Tom Beddard ( http://www.subBlue.com/ ) Modified by: phpBB.de --> <link href="./assets/css/font-awesome.min.css?assets_version=280" rel="stylesheet"> <link href="./styles/prosilver/theme/stylesheet.css?assets_version=280" rel="stylesheet" /> <link href="./styles/phpBBdev1/theme/stylesheet.css?assets_version=280" rel="stylesheet"> <link href="./styles/phpBBdev1/theme/de/stylesheet.css?assets_version=280" rel="stylesheet"> <link href="./styles/phpBBdev1/theme/images/favicon/mask-icon.svg?assets_version=280" rel="mask-icon" color="#3E647B" /> <!--[if lte IE 9]> <link href="./styles/prosilver/theme/tweaks.css?assets_version=280" rel="stylesheet"> <![endif]--> <link href="./ext/phpbbde/pastebin/styles/prosilver/theme/pastebin.css?assets_version=280" rel="stylesheet" media="screen"> <link href="./ext/rmcgirr83/contactadmin/styles/prosilver/theme/imageset.css?assets_version=280" rel="stylesheet" media="screen"> </head> <body id="phpbb" class="nojs notouch section-viewtopic ltr "> <div id="wrap" class="wrap"> <a id="top" class="top-anchor" accesskey="t"></a> <div id="page-header"> <div class="headerbar" role="banner"> <div class="inner"> <div id="site-description" class="site-description"> <a id="logo" class="logo" href="./../" title="Startseite"> <span class="site_logo"></span> </a> <h1>phpBB.de</h1> <p>phpBB.de - Die deutsche phpBB-Community</p> <p class="skiplink"><a href="#start_here">Zum Inhalt</a></p> </div> <div id="search-box" class="search-box search-header" role="search"> <form action="./search.php?sid=1f5531d71c5a6238eeeec694d2310405" method="get" id="search"> <fieldset> <input name="keywords" id="keywords" type="search" maxlength="128" title="Suche nach Wörtern" class="inputbox search tiny" size="20" value="" placeholder="Suche…" /> <button class="button button-search" type="submit" title="Suche"> <i class="icon fa-search fa-fw" aria-hidden="true"></i><span class="sr-only">Suche</span> </button> <a href="./search.php?sid=1f5531d71c5a6238eeeec694d2310405" class="button button-search-end" title="Erweiterte Suche"> <i class="icon fa-cog fa-fw" aria-hidden="true"></i><span class="sr-only">Erweiterte Suche</span> </a> <input type="hidden" name="sid" value="1f5531d71c5a6238eeeec694d2310405" /> </fieldset> </form> </div> <div id="phpbbde_navigation" class="phpbbde_navigation"> <div class="menu-button"> <a href="#" id="navi-toggle" title="Menü anzeigen">Menü</a> </div> <ul id="mainnavi" class="mainnavi"> <li class="mainnavi-title">phpBB.de - Navigation</li> <li class="navi-button but-about"> <a href="./../phpbbde/?sid=1f5531d71c5a6238eeeec694d2310405"><span class="subnavi-toggle"></span>Über uns</a> <ul class="subnavi"> <li><a href="./../phpbbde/chronik/?sid=1f5531d71c5a6238eeeec694d2310405">phpBB.de-Chronik <span>Die Geschichte von phpBB.de in Wort und Bild</span></a></li> <li><a href="./../phpbbde/team/?sid=1f5531d71c5a6238eeeec694d2310405">Das Team <span>Erfahre mehr über das Team hinter phpBB.de</span></a></li> <li><a href="./../phpbbde/fragen/?sid=1f5531d71c5a6238eeeec694d2310405">Fragen an das Team <span>Ihr habt gefragt, wir haben geantwortet</span></a></li> <li><a href="/community/contactadmin?sid=1f5531d71c5a6238eeeec694d2310405">Kontaktformular <span>Formular zur Kontaktaufnahme mit dem phpBB.de-Team</span></a></li> <li><a href="./../phpbbde/impressum/?sid=1f5531d71c5a6238eeeec694d2310405">Impressum <span>Das phpBB.de-Impressum</span></a></li> </ul> </li> <li class="navi-button but-phpbb"> <a href="./../infos/?sid=1f5531d71c5a6238eeeec694d2310405"><span class="subnavi-toggle"></span>phpBB</a> <ul class="subnavi"> <li><a href="./../infos/?sid=1f5531d71c5a6238eeeec694d2310405">Infos über phpBB <span>Erfahre mehr über phpBB</span></a></li> <li><a href="./../infos/tour/?sid=1f5531d71c5a6238eeeec694d2310405">Die phpBB-Tour <span>Was ist phpBB und wo bekomme ich es?</span></a></li> <li><a href="./../infos/features/?sid=1f5531d71c5a6238eeeec694d2310405">Feature-Vergleich <span>Lerne alle Features kennen, die dir phpBB bietet</span></a></li> <li><a href="./../infos/anpassen/?sid=1f5531d71c5a6238eeeec694d2310405">phpBB anpassen <span>Nutze Erweiterungen und Styles, um phpBB deinen Wünschen anzupassen</span></a></li> <li><a href="./../infos/entwickler/3.3/?sid=1f5531d71c5a6238eeeec694d2310405">Informationen für Entwickler <span>phpBB-Projektarchiv, nützliche Links, ...</span></a></li> <li><a href="./../xref/3.3/?sid=1f5531d71c5a6238eeeec694d2310405">Cross-Referenz 3.3 <span>Cross-Referenz des phpBB-Quellcodes</span></a></li> </ul> </li> <li class="navi-button but-downloads"> <a href="./../downloads/?sid=1f5531d71c5a6238eeeec694d2310405"><span class="subnavi-toggle"></span>Downloads</a> <ul class="subnavi"> <li><a href="./../downloads/pakete/?sid=1f5531d71c5a6238eeeec694d2310405">phpBB-Pakete <span>Die aktuellen dt. Komplett- und Updatepakete von phpBB</span></a></li> <li><a href="./../downloads/sprachpakete/?sid=1f5531d71c5a6238eeeec694d2310405">Sprachpakete <span>Die aktuellen deutschen Sprachdateien für phpBB</span></a></li> <li><a href="./../downloads/entwicklung/?sid=1f5531d71c5a6238eeeec694d2310405">Entwicklung <span>Entwickler-Downloads</span></a></li> </ul> </li> <li class="navi-button but-docu"> <a href="./../support/?sid=1f5531d71c5a6238eeeec694d2310405"><span class="subnavi-toggle"> </span>Support</a> <ul class="subnavi"> <li><a href="./../support/doku/quickstart/3.3/?sid=1f5531d71c5a6238eeeec694d2310405">Schnelleinstieg <span>Erklärt dir die Einrichtung deines phpBB Boards</span></a></li> <li><a href="https://www.phpbb.de/help/faq">Häufig gestellte Fragen <span>Häufige Fragen im Zusammenhang mit der Nutzung von phpBB</span></a></li> <li><a href="./../kb/index?sid=1f5531d71c5a6238eeeec694d2310405">Knowledge Base <span>Unsere Wissensdatenbank mit vielen und hilfreichen Artikeln</span></a></li> <li><a href="./../support/videos/?sid=1f5531d71c5a6238eeeec694d2310405">Videos <span>Unsere Supportvideos erklären Funktionen von phpBB</span></a></li> <li><a href="./../support/doku/?sid=1f5531d71c5a6238eeeec694d2310405">Dokumentation <span>Hier findest Du Dokumentationen zu phpBB</span></a></li> <li><a href="./../support/doku/perror/?sid=1f5531d71c5a6238eeeec694d2310405">MySQL-Fehlercodes <span>Mysql Fehlercodes dokumentiert</span></a></li> <li><a href="./../support/doku/htpasswd/?sid=1f5531d71c5a6238eeeec694d2310405">.htpasswd-Generator <span>Einfach zu bedienener Generator für .htpasswd Dateien</span></a></li> </ul> </li> <li class="navi-button but-community"> <a href="./../community/?sid=1f5531d71c5a6238eeeec694d2310405"><span class="subnavi-toggle"> </span>Community</a> <ul class="subnavi"> <li><a href="./../community/viewforum.php?f=145&sid=1f5531d71c5a6238eeeec694d2310405">Supportforen <span>Hilfe bei der Installation und Benutzung</span></a></li> <li><a href="./../community/viewforum.php?f=104&sid=1f5531d71c5a6238eeeec694d2310405">Communityforen<span>Allgemeine Diskussionen und phpBB-Usergroups</span></a></li> <li><a href="./../community/viewforum.php?f=148&sid=1f5531d71c5a6238eeeec694d2310405">Extension-Foren<span>Auf der Suche nach einer Extension? Fragen zu einer Extension?</span></a></li> <li><a href="./../community/viewforum.php?f=152&sid=1f5531d71c5a6238eeeec694d2310405">Styleforen<span>Du suchst einen neuen Style oder hast Probleme mit einem Style?</span></a></li> <li><a href="./../kb/knigge?sid=1f5531d71c5a6238eeeec694d2310405">Der kleine phpBB.de-Knigge <span>Eine kleine Liste von wichtigen Regeln auf phpBB.de</span></a></li> <li><a href="./../phpbbde/chat/?sid=1f5531d71c5a6238eeeec694d2310405">Discord / Chat <span>Besuche den Discord-Server oder den Chat auf Freenode</span></a></li> </ul> </li> </ul> </div> </div> </div> <div class="navbar" role="navigation"> <div class="inner"> <ul id="nav-main" class="nav-main linklist" role="menubar"> <li id="quick-links" class="quick-links dropdown-container responsive-menu" data-skip-responsive="true"> <a href="#" class="dropdown-trigger"> <i class="icon fa-bars fa-fw" aria-hidden="true"></i><span>Schnellzugriff</span> </a> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <ul class="dropdown-contents" role="menu"> <li class="separator"></li> <li> <a href="./search.php?search_id=unanswered&sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-file-o fa-fw icon-gray" aria-hidden="true"></i><span>Unbeantwortete Themen</span> </a> </li> <li> <a href="./search.php?search_id=active_topics&sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-file-o fa-fw icon-blue" aria-hidden="true"></i><span>Aktive Themen</span> </a> </li> <li class="separator"></li> <li> <a href="./search.php?sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-search fa-fw" aria-hidden="true"></i><span>Suche</span> </a> </li> <li class="separator"></li> <li> <a href="./../phpbbde/team.php?sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-shield fa-fw" aria-hidden="true"></i><span>Das Team</span> </a> </li> <li class="separator"></li> </ul> </div> </li> <li data-skip-responsive="true"> <a href="./../help/faq?sid=1f5531d71c5a6238eeeec694d2310405" rel="help" title="Häufig gestellte Fragen" role="menuitem"> <i class="icon fa-question-circle fa-fw" aria-hidden="true"></i><span>FAQ</span> </a> </li> <li data-last-responsive="true"><a href="/community/pastebin/?sid=1f5531d71c5a6238eeeec694d2310405" title="Pastebin"><i class="icon fa-clipboard fa-fw" aria-hidden="true"></i><span>Pastebin</span></a></li> <li class="rightside" data-skip-responsive="true"> <a href="./ucp.php?mode=login&redirect=viewtopic.php%3Fp%3D1420955&sid=1f5531d71c5a6238eeeec694d2310405" title="Anmelden" accesskey="x" role="menuitem"> <i class="icon fa-power-off fa-fw" aria-hidden="true"></i><span>Anmelden</span> </a> </li> <li class="rightside" data-skip-responsive="true"> <a href="./ucp.php?mode=register&sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-pencil-square-o fa-fw" aria-hidden="true"></i><span>Registrieren</span> </a> </li> </ul> <ul id="nav-breadcrumbs" class="nav-breadcrumbs linklist navlinks" role="menubar"> <li class="breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList"> <span class="crumb" itemtype="https://schema.org/ListItem" itemprop="itemListElement" itemscope><a itemprop="item" href="./../" data-navbar-reference="home"><i class="icon fa-home fa-fw" aria-hidden="true"></i><span itemprop="name">Startseite</span></a><meta itemprop="position" content="1" /></span> <span class="crumb" itemtype="https://schema.org/ListItem" itemprop="itemListElement" itemscope><a itemprop="item" href="./index.php?sid=1f5531d71c5a6238eeeec694d2310405" accesskey="h" data-navbar-reference="index"><span itemprop="name">Community</span></a><meta itemprop="position" content="2" /></span> <span class="crumb" itemtype="https://schema.org/ListItem" itemprop="itemListElement" itemscope data-forum-id="103"><a itemprop="item" href="./viewforum.php?f=103&sid=1f5531d71c5a6238eeeec694d2310405"><span itemprop="name">Entwickler-Ecke</span></a><meta itemprop="position" content="3" /></span> <span class="crumb" itemtype="https://schema.org/ListItem" itemprop="itemListElement" itemscope data-forum-id="6"><a itemprop="item" href="./viewforum.php?f=6&sid=1f5531d71c5a6238eeeec694d2310405"><span itemprop="name">Coding & Technik</span></a><meta itemprop="position" content="4" /></span> </li> <li class="rightside responsive-search"> <a href="./search.php?sid=1f5531d71c5a6238eeeec694d2310405" title="Zeigt die erweiterten Suchoptionen an" role="menuitem"> <i class="icon fa-search fa-fw" aria-hidden="true"></i><span class="sr-only">Suche</span> </a> </li> </ul> </div> </div> </div> <a id="start_here" class="anchor"></a> <div id="page-body" class="page-body" role="main"> <h2 class="topic-title"><a href="./viewtopic.php?t=246555&sid=1f5531d71c5a6238eeeec694d2310405">Was bringt das empfohlene Decorator Pattern</a></h2> <!-- NOTE: remove the style="display: none" when you want to have the forum description on the topic body --> <div style="display: none !important;">Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.<br /></div> <div class="action-bar bar-top"> <a href="./posting.php?mode=reply&t=246555&sid=1f5531d71c5a6238eeeec694d2310405" class="button" title="Antwort erstellen"> <span>Antworten</span> <i class="icon fa-reply fa-fw" aria-hidden="true"></i> </a> <div class="dropdown-container dropdown-button-control topic-tools"> <span title="Themen-Optionen" class="button button-secondary dropdown-trigger dropdown-select"> <i class="icon fa-wrench fa-fw" aria-hidden="true"></i> <span class="caret"><i class="icon fa-sort-down fa-fw" aria-hidden="true"></i></span> </span> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <ul class="dropdown-contents"> <li> <a href="./viewtopic.php?t=246555&sid=1f5531d71c5a6238eeeec694d2310405&view=print" title="Druckansicht" accesskey="p"> <i class="icon fa-print fa-fw" aria-hidden="true"></i><span>Druckansicht</span> </a> </li> </ul> </div> </div> <div class="search-box" role="search"> <form method="get" id="topic-search" action="./search.php?sid=1f5531d71c5a6238eeeec694d2310405"> <fieldset> <input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="Thema durchsuchen…" /> <button class="button button-search" type="submit" title="Suche"> <i class="icon fa-search fa-fw" aria-hidden="true"></i><span class="sr-only">Suche</span> </button> <a href="./search.php?sid=1f5531d71c5a6238eeeec694d2310405" class="button button-search-end" title="Erweiterte Suche"> <i class="icon fa-cog fa-fw" aria-hidden="true"></i><span class="sr-only">Erweiterte Suche</span> </a> <input type="hidden" name="t" value="246555" /> <input type="hidden" name="sf" value="msgonly" /> <input type="hidden" name="sid" value="1f5531d71c5a6238eeeec694d2310405" /> </fieldset> </form> </div> <div class="pagination"> 5 Beiträge • Seite <strong>1</strong> von <strong>1</strong> </div> </div> <div id="p1420844" class="post has-profile bg2"> <div class="inner"> <dl class="postprofile" id="profile1420844"> <dt class="has-profile-rank no-avatar"> <div class="avatar-container"> </div> <a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a> </dt> <dd class="profile-rank">Mitglied</dd> <dd class="profile-posts"><strong>Beiträge:</strong> <a href="./search.php?author_id=204768&sr=posts&sid=1f5531d71c5a6238eeeec694d2310405">30</a></dd> <dd class="profile-joined"><strong>Registriert:</strong> 18.10.2016 16:59</dd> </dl> <div class="postbody"> <div id="post_content1420844"> <h3 class="first"> <a href="./viewtopic.php?p=1420844&sid=1f5531d71c5a6238eeeec694d2310405#p1420844">Was bringt das empfohlene Decorator Pattern</a> </h3> <ul class="post-buttons"> <li> <a href="./posting.php?mode=quote&p=1420844&sid=1f5531d71c5a6238eeeec694d2310405" title="Mit Zitat antworten" class="button button-icon-only"> <i class="icon fa-quote-left fa-fw" aria-hidden="true"></i><span class="sr-only">Zitieren</span> </a> </li> </ul> <p class="author"> <a class="unread" href="./viewtopic.php?p=1420844&sid=1f5531d71c5a6238eeeec694d2310405#p1420844" title="Beitrag"> <i class="icon fa-file fa-fw icon-lightgray icon-md" aria-hidden="true"></i><span class="sr-only">Beitrag</span> </a> <span class="responsive-hide">von <strong><a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a></strong> » </span><time datetime="2023-01-02T09:41:11+00:00">02.01.2023 10:41</time> </p> <div class="content">Ich habe ein kleines Problem zu verstehen, wie man vernünftig mit dem Decorator Pattern für Service Decoration umgehen soll.<br> (Siehe <a href="https://area51.phpbb.com/docs/dev/master/extensions/tutorial_advanced.html#using-service-decoration" class="postlink">https://area51.phpbb.com/docs/dev/maste ... decoration</a>)<br> <br> Ich verstehe, dass dies absolut Sinn macht, wenn mehrere Extensions den gleichen Service "überschreiben" wollen.<br> <br> Allerdings überschreibt man ja in der Regel nur wenige Methoden, und möchte den Rest unverändert lassen.<br> Hier hätte ich nun erwartet, dass es eine Unterstützung gibt, die bei allen unveränderten Methoden automatisch auf die inner-Klasse delegiert.<br> <br> Ich hatte also gehofft, dass es reicht, wenn ich für die Methode, die ich verändern will, ungefähr schreibe:<br> public function a_service_method() {<br> // ... hier steht meine zusätzliche Funktionalität ...<br> return $this->inner->a_service_method();<br> }<br> und für alle anderen Methoden sollte der Container automatisch die Delegation an $inner übernehmen ohne dass ich jede Methode in meiner Klasse explizit aufführen muss.<br> <br> Das scheint aber nicht der Fall zu sein. Somit muss ich entweder in meiner dekorierenden Klasse alle Methoden der dekorierten Klasse erneut aufführen und darin jeweils den Aufruf nach $inner delegieren, was sehr umständlich ist und auch fehleranfällig, wenn sich die dekorierte Klasse ändert.<br> <br> Oder aber ich lasse meine dekorierende Klasse von der dekorierten Klasse (und nicht vom Interface) erben. Damit sind ebenfalls alle Methoden wieder verfügbar. Aber das Decorator-Pattern funktioniert nur noch für die Methoden, die ich überschreibe. Wenn meine Klasse aufgrund einer weiteren Extension gar nicht die Original-Klasse dekoriert, sondern die Klasse aus der Extension, wird in den anderen Methoden nicht die Funktion der dekorierten Klasse, sondern die der Basis-Klasse aufgerufen (da ja die Delegation an $inner fehlt.)<br> <br> Habe ich da etwas falsch verstanden, oder geht es wirklich nur so umständlich, dass man alle Methoden einzeln aufführen muss und jeweils nichts anderes macht als darin die gleiche Methode von $inner aufzurufen. (Natürlich nur, wenn man auf mehrfaches Dekorieren des gleichen Services durch verschiedene Extensions vorbereitet sein möchte. Andernfalls kann ich den Service einfach überschreiben, und hoffen, dass andere Extensions ihn nicht ebenfalls überschreiben, und die Reihenfolge gewinnen.)</div> </div> </div> <div class="back2top"> <a href="#top" class="top" title="Nach oben"> <i class="icon fa-chevron-circle-up fa-fw icon-gray" aria-hidden="true"></i> <span class="sr-only">Nach oben</span> </a> </div> </div> </div> <div id="p1420845" class="post has-profile bg1"> <div class="inner"> <dl class="postprofile" id="profile1420845"> <dt class="has-profile-rank has-avatar"> <div class="avatar-container"> <a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" class="avatar"><img class="avatar" src="./download/file.php?avatar=207251_1589570262.jpg" width="120" height="108" alt="Benutzeravatar" /></a> </div> <a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" style="color: #2B42AF;" class="username-coloured">Mike-on-Tour</a> </dt> <dd class="profile-rank">Supporter<br /><img src="./images/ranks/rang_supporter.png" alt="Supporter" title="Supporter" /></dd> <dd class="profile-posts"><strong>Beiträge:</strong> <a href="./search.php?author_id=207251&sr=posts&sid=1f5531d71c5a6238eeeec694d2310405">1189</a></dd> <dd class="profile-joined"><strong>Registriert:</strong> 13.01.2020 21:09</dd> <dd class="profile-contact"> <strong>Kontaktdaten:</strong> <div class="dropdown-container dropdown-left"> <a href="#" class="dropdown-trigger" title="Kontaktdaten von Mike-on-Tour"> <i class="icon fa-commenting-o fa-fw icon-lg" aria-hidden="true"></i><span class="sr-only">Kontaktdaten von Mike-on-Tour</span> </a> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <div class="dropdown-contents contact-icons"> <div> <a href="https://www.mike-on-tour.com" title="Website" class="last-cell"> <span class="contact-icon phpbb_website-icon">Website</span> </a> </div> </div> </div> </div> </dd> </dl> <div class="postbody"> <div id="post_content1420845"> <h3 > <a href="./viewtopic.php?p=1420845&sid=1f5531d71c5a6238eeeec694d2310405#p1420845">Re: Was bringt das empfohlene Decorator Pattern</a> </h3> <ul class="post-buttons"> <li> <a href="./posting.php?mode=quote&p=1420845&sid=1f5531d71c5a6238eeeec694d2310405" title="Mit Zitat antworten" class="button button-icon-only"> <i class="icon fa-quote-left fa-fw" aria-hidden="true"></i><span class="sr-only">Zitieren</span> </a> </li> </ul> <p class="author"> <a class="unread" href="./viewtopic.php?p=1420845&sid=1f5531d71c5a6238eeeec694d2310405#p1420845" title="Beitrag"> <i class="icon fa-file fa-fw icon-lightgray icon-md" aria-hidden="true"></i><span class="sr-only">Beitrag</span> </a> <span class="responsive-hide">von <strong><a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" style="color: #2B42AF;" class="username-coloured">Mike-on-Tour</a></strong> » </span><time datetime="2023-01-02T10:19:57+00:00">02.01.2023 11:19</time> </p> <div class="content">Ich habe das zwar noch nie ausprobiert, vermute aber mal, dass du in deiner eigenen Klassen-Definition etwas wie<br> <code class="inline">class my_service extends old_class</code><br> verwenden musst, um dann die für dich interessanten Funktionen zu überschreiben und zum Schluss die alte Funktion über <code class="inline">$inner</code> aufzurufen.<br> <br> Ist aber wie gesagt nur eine Vermutung und wenn du deinen Code z.B. in der Pastebin einstellst, könnten wir da mal einen Blick drauf werfen.</div> </div> </div> <div class="back2top"> <a href="#top" class="top" title="Nach oben"> <i class="icon fa-chevron-circle-up fa-fw icon-gray" aria-hidden="true"></i> <span class="sr-only">Nach oben</span> </a> </div> </div> </div> <div id="p1420846" class="post has-profile bg2"> <div class="inner"> <dl class="postprofile" id="profile1420846"> <dt class="has-profile-rank no-avatar"> <div class="avatar-container"> </div> <a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a> </dt> <dd class="profile-rank">Mitglied</dd> <dd class="profile-posts"><strong>Beiträge:</strong> <a href="./search.php?author_id=204768&sr=posts&sid=1f5531d71c5a6238eeeec694d2310405">30</a></dd> <dd class="profile-joined"><strong>Registriert:</strong> 18.10.2016 16:59</dd> </dl> <div class="postbody"> <div id="post_content1420846"> <h3 > <a href="./viewtopic.php?p=1420846&sid=1f5531d71c5a6238eeeec694d2310405#p1420846">Re: Was bringt das empfohlene Decorator Pattern</a> </h3> <ul class="post-buttons"> <li> <a href="./posting.php?mode=quote&p=1420846&sid=1f5531d71c5a6238eeeec694d2310405" title="Mit Zitat antworten" class="button button-icon-only"> <i class="icon fa-quote-left fa-fw" aria-hidden="true"></i><span class="sr-only">Zitieren</span> </a> </li> </ul> <p class="author"> <a class="unread" href="./viewtopic.php?p=1420846&sid=1f5531d71c5a6238eeeec694d2310405#p1420846" title="Beitrag"> <i class="icon fa-file fa-fw icon-lightgray icon-md" aria-hidden="true"></i><span class="sr-only">Beitrag</span> </a> <span class="responsive-hide">von <strong><a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a></strong> » </span><time datetime="2023-01-02T10:46:05+00:00">02.01.2023 11:46</time> </p> <div class="content">Das mit "extends" der dekorierten Klasse führt leider zum totalen Chaos:<br> Dann arbeitet man nämlich im Prinzip mit zwei Objekten:<br> 1. Ein Objekt der dekorierenden Klasse, das für alle nicht überschriebenen (geerbten) Methoden benutzt wird.<br> 2- Das Inner-Objekt, das immer dann benutzt wird, wenn man eine Methode überschreibt und darin dann nach $this->inner delegiert, um auch die ursprüngliche Funktionalität mit einzubinden.<br> Wenn nun eine nicht überschriebene Methode eine Objekt-Property ändert, und eine überschriebene Methode diese Property nutzen möchte, dann beziehen sich die beiden Methoden auf verschiedene Objekte und damit auf verschiedene Properties, und das Chaos ist perfekt.<br> <br> Ganz konkret will ich z.B. in \phpbb\notification\type\post und \phpbb\notification\type\topic in der Methode create_insert_array weitere Daten in die notification schreiben.<br> Das mache ich einerseits für eine telegram-notification und andererseits für eine Email-Notification. Die beiden Extensions wollte ich aber getrennt halten. Trotzdem sollte die Methode beider Extensions aufgerufen werden. Eigentlich ein typischer Fall für das Decoration-Pattern. Aber eben nur, wenn sich alle anderen Methoden auch auf $this->inner beziehen.<br> <br> Natürlich kann ich einfach in beiden Extensions jeweils alle benötigten Daten dazufügen, und es ist mir dann egal, welche Methode gewinnt.<br> <br> Aber sauber ist das nicht, und ich verstehe auch nicht, warum dann der Service-Decorator besser sein soll, als Service-Replacement. <br> <br> Mit dem Vorschlag die Service-Decoration mit Vererbung zu kombinieren, mache ich letztendlich nichts anderes als Service-Replacement.</div> </div> </div> <div class="back2top"> <a href="#top" class="top" title="Nach oben"> <i class="icon fa-chevron-circle-up fa-fw icon-gray" aria-hidden="true"></i> <span class="sr-only">Nach oben</span> </a> </div> </div> </div> <div id="p1420849" class="post has-profile bg1"> <div class="inner"> <dl class="postprofile" id="profile1420849"> <dt class="has-profile-rank has-avatar"> <div class="avatar-container"> <a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" class="avatar"><img class="avatar" src="./download/file.php?avatar=207251_1589570262.jpg" width="120" height="108" alt="Benutzeravatar" /></a> </div> <a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" style="color: #2B42AF;" class="username-coloured">Mike-on-Tour</a> </dt> <dd class="profile-rank">Supporter<br /><img src="./images/ranks/rang_supporter.png" alt="Supporter" title="Supporter" /></dd> <dd class="profile-posts"><strong>Beiträge:</strong> <a href="./search.php?author_id=207251&sr=posts&sid=1f5531d71c5a6238eeeec694d2310405">1189</a></dd> <dd class="profile-joined"><strong>Registriert:</strong> 13.01.2020 21:09</dd> <dd class="profile-contact"> <strong>Kontaktdaten:</strong> <div class="dropdown-container dropdown-left"> <a href="#" class="dropdown-trigger" title="Kontaktdaten von Mike-on-Tour"> <i class="icon fa-commenting-o fa-fw icon-lg" aria-hidden="true"></i><span class="sr-only">Kontaktdaten von Mike-on-Tour</span> </a> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <div class="dropdown-contents contact-icons"> <div> <a href="https://www.mike-on-tour.com" title="Website" class="last-cell"> <span class="contact-icon phpbb_website-icon">Website</span> </a> </div> </div> </div> </div> </dd> </dl> <div class="postbody"> <div id="post_content1420849"> <h3 > <a href="./viewtopic.php?p=1420849&sid=1f5531d71c5a6238eeeec694d2310405#p1420849">Re: Was bringt das empfohlene Decorator Pattern</a> </h3> <ul class="post-buttons"> <li> <a href="./posting.php?mode=quote&p=1420849&sid=1f5531d71c5a6238eeeec694d2310405" title="Mit Zitat antworten" class="button button-icon-only"> <i class="icon fa-quote-left fa-fw" aria-hidden="true"></i><span class="sr-only">Zitieren</span> </a> </li> </ul> <p class="author"> <a class="unread" href="./viewtopic.php?p=1420849&sid=1f5531d71c5a6238eeeec694d2310405#p1420849" title="Beitrag"> <i class="icon fa-file fa-fw icon-lightgray icon-md" aria-hidden="true"></i><span class="sr-only">Beitrag</span> </a> <span class="responsive-hide">von <strong><a href="./memberlist.php?mode=viewprofile&u=207251&sid=1f5531d71c5a6238eeeec694d2310405" style="color: #2B42AF;" class="username-coloured">Mike-on-Tour</a></strong> » </span><time datetime="2023-01-02T17:27:36+00:00">02.01.2023 18:27</time> </p> <div class="content">Okay, so weit war ich da noch nicht, und die Beschreibung auf ara51 ist auch nicht sehr ausführlich. Mein Wissen über Service Decoration ist damit erschöpft und ich kann zumindest momentan nicht weiterhelfen.</div> </div> </div> <div class="back2top"> <a href="#top" class="top" title="Nach oben"> <i class="icon fa-chevron-circle-up fa-fw icon-gray" aria-hidden="true"></i> <span class="sr-only">Nach oben</span> </a> </div> </div> </div> <div id="p1420955" class="post has-profile bg2"> <div class="inner"> <dl class="postprofile" id="profile1420955"> <dt class="has-profile-rank no-avatar"> <div class="avatar-container"> </div> <a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a> </dt> <dd class="profile-rank">Mitglied</dd> <dd class="profile-posts"><strong>Beiträge:</strong> <a href="./search.php?author_id=204768&sr=posts&sid=1f5531d71c5a6238eeeec694d2310405">30</a></dd> <dd class="profile-joined"><strong>Registriert:</strong> 18.10.2016 16:59</dd> </dl> <div class="postbody"> <div id="post_content1420955"> <h3 > <a href="./viewtopic.php?p=1420955&sid=1f5531d71c5a6238eeeec694d2310405#p1420955">Re: Was bringt das empfohlene Decorator Pattern</a> </h3> <ul class="post-buttons"> <li> <a href="./posting.php?mode=quote&p=1420955&sid=1f5531d71c5a6238eeeec694d2310405" title="Mit Zitat antworten" class="button button-icon-only"> <i class="icon fa-quote-left fa-fw" aria-hidden="true"></i><span class="sr-only">Zitieren</span> </a> </li> </ul> <p class="author"> <a class="unread" href="./viewtopic.php?p=1420955&sid=1f5531d71c5a6238eeeec694d2310405#p1420955" title="Beitrag"> <i class="icon fa-file fa-fw icon-lightgray icon-md" aria-hidden="true"></i><span class="sr-only">Beitrag</span> </a> <span class="responsive-hide">von <strong><a href="./memberlist.php?mode=viewprofile&u=204768&sid=1f5531d71c5a6238eeeec694d2310405" class="username">mbld</a></strong> » </span><time datetime="2023-01-07T17:20:47+00:00">07.01.2023 18:20</time> </p> <div class="content">Nachdem ich noch ein bisschen experimentiert habe, will ich mal kurz berichten:<br> <br> Ich will mehrere Notifikations-Typen (phpbb/notification/type/...) erweitern.<br> Alle Notifikations-Typen implementieren ein gemeinsames Interface, so dass man dieses als Basis für das Dekorator-Pattern nutzen kann, vorausgesetzt alle Verwender der Typen rufen auch nur Interface-Methoden auf.<br> <br> Das erste Problem ist, dass das Interface mit 25 Methoden sehr umfangreich ist.<br> Das heißt ich schreibe 25 mal ganz stupide ungefähr folgendes: <div class="codebox"><p>Code: <a href="#" onclick="selectCode(this); return false;">Alles auswählen</a></p><pre><code>public function a_service_method($param1, $param2) { return $this->inner->a_service_method($param1, $param2); } </code></pre></div> Damit sollte man meinen, dass man erst mal eine funktionierende 1:1 Kopie erzeugt hat.<br> Dem ist leider nicht so, da der Notifikation-Manager (phpbb/notification/manager.php) leider mindestens an einer Stelle nicht das Interface nutzt, sondern direkt $notification->user_id setzt.<br> Damit ist zwar im dekorierenden Objekt die Property user_id gesetzt, die Methoden vom inner-Objekt haben aber darauf keinen Zugriff.<br> Nur weil ich weiß, dass der Notifikation-Manager unmittelbar nach dem setzen der Property die Methode create_insert_array aufruft, kann ich mir mit folgendem Hack behelfen: <div class="codebox"><p>Code: <a href="#" onclick="selectCode(this); return false;">Alles auswählen</a></p><pre><code>public function create_insert_array($data, $pre_create_data = []) { $this->inner->user_id = $this->user_id; return $this->inner->create_insert_array($data, $pre_create_data); } </code></pre></div> Ob das die einzige Stelle ist, weiß ich leider nicht. Diese ist wegen duplicate-key-insert ziemlich schnell aufgefallen.<br> <br> Das Ganze erscheint mir sehr wackelig und ich bin noch unschlüssig, ob ich so weitermachen will.<br> Was ich damit gewonnen habe, ist dass die Extension tatsächlich mit einer weiteren Extension, die ähnliches macht, zusammenspielt. Aber das auch nur, weil zufällig die Reihenfolge der Service-Dekorator passt.<br> Die zweite Extension dekoriert nämlich die gleichen Services, erbt aber einfach von den dekorierten Klassen, ohne sich um eine Delegation an die dekorierte Klasse zu kümmern.<br> Wäre die Reihenfolge der Dekorator umgekehrt, würde meine erste Extension einfach ignoriert werden.</div> </div> </div> <div class="back2top"> <a href="#top" class="top" title="Nach oben"> <i class="icon fa-chevron-circle-up fa-fw icon-gray" aria-hidden="true"></i> <span class="sr-only">Nach oben</span> </a> </div> </div> </div> <div class="action-bar bar-bottom"> <a href="./posting.php?mode=reply&t=246555&sid=1f5531d71c5a6238eeeec694d2310405" class="button" title="Antwort erstellen"> <span>Antworten</span> <i class="icon fa-reply fa-fw" aria-hidden="true"></i> </a> <div class="dropdown-container dropdown-button-control topic-tools"> <span title="Themen-Optionen" class="button button-secondary dropdown-trigger dropdown-select"> <i class="icon fa-wrench fa-fw" aria-hidden="true"></i> <span class="caret"><i class="icon fa-sort-down fa-fw" aria-hidden="true"></i></span> </span> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <ul class="dropdown-contents"> <li> <a href="./viewtopic.php?t=246555&sid=1f5531d71c5a6238eeeec694d2310405&view=print" title="Druckansicht" accesskey="p"> <i class="icon fa-print fa-fw" aria-hidden="true"></i><span>Druckansicht</span> </a> </li> </ul> </div> </div> <form method="post" action="./viewtopic.php?t=246555&sid=1f5531d71c5a6238eeeec694d2310405"> <div class="dropdown-container dropdown-container-left dropdown-button-control sort-tools"> <span title="Anzeige- und Sortierungs-Einstellungen" class="button button-secondary dropdown-trigger dropdown-select"> <i class="icon fa-sort-amount-asc fa-fw" aria-hidden="true"></i> <span class="caret"><i class="icon fa-sort-down fa-fw" aria-hidden="true"></i></span> </span> <div class="dropdown hidden"> <div class="pointer"><div class="pointer-inner"></div></div> <div class="dropdown-contents"> <fieldset class="display-options"> <label>Anzeigen: <select name="st" id="st"><option value="0" selected="selected">Alle Beiträge</option><option value="1">1 Tag</option><option value="7">7 Tage</option><option value="14">2 Wochen</option><option value="30">1 Monat</option><option value="90">3 Monate</option><option value="180">6 Monate</option><option value="365">1 Jahr</option></select></label> <label>Sortiere nach: <select name="sk" id="sk"><option value="a">Autor</option><option value="t" selected="selected">Erstellungsdatum</option><option value="s">Betreff</option></select></label> <label>Richtung: <select name="sd" id="sd"><option value="a" selected="selected">Aufsteigend</option><option value="d">Absteigend</option></select></label> <hr class="dashed" /> <input type="submit" class="button2" name="sort" value="Los" /> </fieldset> </div> </div> </div> </form> <div class="pagination"> 5 Beiträge • Seite <strong>1</strong> von <strong>1</strong> </div> </div> <div class="action-bar actions-jump"> <p class="jumpbox-return"> <a href="./viewforum.php?f=6&sid=1f5531d71c5a6238eeeec694d2310405" class="left-box arrow-left" accesskey="r"> <i class="icon fa-angle-left fa-fw icon-black" aria-hidden="true"></i><span>Zurück zu „Coding & Technik“</span> </a> </p> <div class="jumpbox dropdown-container dropdown-container-right dropdown-up dropdown-left dropdown-button-control" id="jumpbox"> <span title="Gehe zu" class="button button-secondary dropdown-trigger dropdown-select"> <span>Gehe zu</span> <span class="caret"><i class="icon fa-sort-down fa-fw" aria-hidden="true"></i></span> </span> <div class="dropdown"> <div class="pointer"><div class="pointer-inner"></div></div> <ul class="dropdown-contents"> <li><a href="./viewforum.php?f=96&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-cat-link"> <span> Wichtige Neuigkeiten</span></a></li> <li><a href="./viewforum.php?f=9&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Ankündigungen und Neuigkeiten</span></a></li> <li><a href="./viewforum.php?f=164&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Der kleine phpBB.de-Knigge - unsere Hausordnung</span></a></li> <li><a href="./viewforum.php?f=144&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-cat-link"> <span> phpBB 3.3.x</span></a></li> <li><a href="./viewforum.php?f=145&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Support-Forum</span></a></li> <li><a href="./viewforum.php?f=148&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Extension-Foren</span></a></li> <li><a href="./viewforum.php?f=150&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Extension Support</span></a></li> <li><a href="./viewforum.php?f=151&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Extension Suche/Anfrage</span></a></li> <li><a href="./viewforum.php?f=149&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Extensions in Entwicklung</span></a></li> <li><a href="./viewforum.php?f=140&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Extension Bastelstube</span></a></li> <li><a href="./viewforum.php?f=163&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ ABD Extensions</span></a></li> <li><a href="./viewforum.php?f=152&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Style-Foren</span></a></li> <li><a href="./viewforum.php?f=153&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Styles, Templates und Grafiken</span></a></li> <li><a href="./viewforum.php?f=154&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Styles in Entwicklung</span></a></li> <li><a href="./viewforum.php?f=141&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Übersetzungs-Foren</span></a></li> <li><a href="./viewforum.php?f=161&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.3.x] Übersetzungs-Diskussionen</span></a></li> <li><a href="./viewforum.php?f=157&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.2.x] Übersetzungs-Diskussionen</span></a></li> <li><a href="./viewforum.php?f=156&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Extension-Übersetzungen</span></a></li> <li><a href="./viewforum.php?f=143&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ Übersetzungs-Diskussionen (abgeschlossen)</span></a></li> <li><a href="./viewforum.php?f=103&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-cat-link"> <span> Entwickler-Ecke</span></a></li> <li><a href="./viewforum.php?f=6&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Coding & Technik</span></a></li> <li><a href="./viewforum.php?f=158&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Area51 auf phpBB.com</span></a></li> <li><a href="./viewforum.php?f=100&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-cat-link"> <span> Frühere Versionen</span></a></li> <li><a href="./viewforum.php?f=155&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Foren für phpBB 3.0</span></a></li> <li><a href="./viewforum.php?f=97&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Support-Foren</span></a></li> <li><a href="./viewforum.php?f=73&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Installation, Update und Konvertierung</span></a></li> <li><a href="./viewforum.php?f=74&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Administration, Benutzung und Betrieb</span></a></li> <li><a href="./viewforum.php?f=98&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mod-Foren</span></a></li> <li><a href="./viewforum.php?f=85&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Snippets</span></a></li> <li><a href="./viewforum.php?f=87&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mod Suche/Anfragen</span></a></li> <li><a href="./viewforum.php?f=86&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mod Support</span></a></li> <li><a href="./viewforum.php?f=88&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mods in Entwicklung</span></a></li> <li><a href="./viewforum.php?f=93&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mod Bastelstube</span></a></li> <li><a href="./viewforum.php?f=99&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Style-Foren</span></a></li> <li><a href="./viewforum.php?f=89&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Styles, Templates und Grafiken</span></a></li> <li><a href="./viewforum.php?f=129&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Styles in Entwicklung</span></a></li> <li><a href="./viewforum.php?f=136&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Übersetzungs-Foren</span></a></li> <li><a href="./viewforum.php?f=137&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] phpBB.de-Übersetzungen</span></a></li> <li><a href="./viewforum.php?f=134&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ [3.0.x] Mod-Übersetzungen</span></a></li> <li><a href="./viewforum.php?f=135&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Foren für phpBB 2.0</span></a></li> <li><a href="./viewforum.php?f=12&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Installation und Update</span></a></li> <li><a href="./viewforum.php?f=13&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Administration, Benutzung und Betrieb</span></a></li> <li><a href="./viewforum.php?f=101&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0 Mods</span></a></li> <li><a href="./viewforum.php?f=37&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Mod-Datenbank</span></a></li> <li><a href="./viewforum.php?f=34&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Snippets</span></a></li> <li><a href="./viewforum.php?f=47&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Mod Suche/Anfragen</span></a></li> <li><a href="./viewforum.php?f=49&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Mod Support</span></a></li> <li><a href="./viewforum.php?f=48&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Mods in Entwicklung</span></a></li> <li><a href="./viewforum.php?f=102&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0 Styles</span></a></li> <li><a href="./viewforum.php?f=42&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Styles-Datenbank</span></a></li> <li><a href="./viewforum.php?f=35&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Styles, Templates und Grafiken</span></a></li> <li><a href="./viewforum.php?f=94&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB 2.0: Mod-Bastelstube</span></a></li> <li><a href="./viewforum.php?f=104&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-cat-link"> <span> Community-Foren</span></a></li> <li><a href="./viewforum.php?f=19&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Community Talk</span></a></li> <li><a href="./viewforum.php?f=33&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ phpBB Diskussion</span></a></li> <li><a href="./viewforum.php?f=67&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Show-Off</span></a></li> <li><a href="./viewforum.php?f=105&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ phpBB Regional</span></a></li> <li><a href="./viewforum.php?f=77&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in Norddeutschland</span></a></li> <li><a href="./viewforum.php?f=78&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in Ostdeutschland</span></a></li> <li><a href="./viewforum.php?f=79&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in Süddeutschland</span></a></li> <li><a href="./viewforum.php?f=80&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in Westdeutschland</span></a></li> <li><a href="./viewforum.php?f=81&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in Österreich</span></a></li> <li><a href="./viewforum.php?f=82&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB in der Schweiz und Liechtenstein</span></a></li> <li><a href="./viewforum.php?f=83&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span><span class="spacer"></span> <span>↳ phpBB im sonstigen Ausland</span></a></li> <li><a href="./viewforum.php?f=72&sid=1f5531d71c5a6238eeeec694d2310405" class="jumpbox-sub-link"><span class="spacer"></span> <span>↳ Newsletter-Archiv</span></a></li> </ul> </div> </div> </div> </div> <div id="page-footer" class="page-footer" role="contentinfo"> <div class="navbar" role="navigation"> <div class="inner"> <ul id="nav-footer" class="nav-footer linklist" role="menubar"> <li class="breadcrumbs"> <span class="crumb"><a href="./../" data-navbar-reference="home"><i class="icon fa-home fa-fw" aria-hidden="true"></i><span>Startseite</span></a></span> <span class="crumb"><a href="./index.php?sid=1f5531d71c5a6238eeeec694d2310405" data-navbar-reference="index"><span>Community</span></a></span> </li> <li class="rightside">Alle Zeiten sind <span title="Europa/Berlin">UTC+01:00</span></li> <li class="rightside"> <a href="/community/user/delete_cookies?sid=1f5531d71c5a6238eeeec694d2310405" data-ajax="true" data-refresh="true" role="menuitem"> <i class="icon fa-trash fa-fw" aria-hidden="true"></i><span>Alle Cookies löschen</span> </a> </li> <li class="rightside" data-last-responsive="true"> <a href="./../phpbbde/impressum/?sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-info-circle fa-fw" aria-hidden="true"></i><span>Impressum </span> </a> </li> <li class="rightside" data-last-responsive="true"> <a href="./../phpbbde/team/?sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-shield fa-fw" aria-hidden="true"></i><span>Das Team</span> </a> </li> <li class="rightside" data-last-responsive="true"> <a href="/community/contactadmin?sid=1f5531d71c5a6238eeeec694d2310405" role="menuitem"> <i class="icon fa-envelope fa-fw" aria-hidden="true"></i><span>Kontakt</span> </a> </li> </ul> </div> </div> <div class="copyright"> <p class="footer-row"> <span class="footer-copyright">Powered by <a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Limited</span> </p> <p class="footer-row"> <span class="footer-copyright">Deutsche Übersetzung durch <a href="https://www.phpbb.de/">phpBB.de</a></span> </p> <p class="footer-row" role="menu"> <a class="footer-link" href="./ucp.php?mode=privacy&sid=1f5531d71c5a6238eeeec694d2310405" title="Datenschutz" role="menuitem"> <span class="footer-link-text">Datenschutz</span> </a> | <a class="footer-link" href="./ucp.php?mode=terms&sid=1f5531d71c5a6238eeeec694d2310405" title="Nutzungsbedingungen" role="menuitem"> <span class="footer-link-text">Nutzungsbedingungen</span> </a> </p> <div class="sponsor-logo"> <a href="https://linevast.de/" rel="nofollow">hosted by Linevast.de <br> <img src="./styles/phpBBdev1/theme/images/linevast.png" alt="Linevast.de" height="63" width="257"> </a> </div> </div> <div id="darkenwrapper" class="darkenwrapper" data-ajax-error-title="AJAX-Fehler" data-ajax-error-text="Bei der Verarbeitung deiner Anfrage ist ein Fehler aufgetreten." data-ajax-error-text-abort="Der Benutzer hat die Anfrage abgebrochen." data-ajax-error-text-timeout="Bei deiner Anfrage ist eine Zeitüberschreitung aufgetreten. Bitte versuche es erneut." data-ajax-error-text-parsererror="Bei deiner Anfrage ist etwas falsch gelaufen und der Server hat eine ungültige Antwort zurückgegeben."> <div id="darken" class="darken"> </div> </div> <div id="phpbb_alert" class="phpbb_alert" data-l-err="Fehler" data-l-timeout-processing-req="Bei der Anfrage ist eine Zeitüberschreitung aufgetreten."> <a href="#" class="alert_close"> <i class="icon fa-times-circle fa-fw" aria-hidden="true"></i> </a> <h3 class="alert_title"> </h3><p class="alert_text"></p> </div> <div id="phpbb_confirm" class="phpbb_alert"> <a href="#" class="alert_close"> <i class="icon fa-times-circle fa-fw" aria-hidden="true"></i> </a> <div class="alert_text"></div> </div> </div> </div> <div> <a id="bottom" class="anchor" accesskey="z"></a> </div> <script src="./assets/javascript/jquery-3.7.1.min.js?assets_version=280"></script> <script src="./assets/javascript/core.js?assets_version=280"></script> <script src="./styles/phpBBdev1/template/forum_fn.js?assets_version=280"></script> <script src="./styles/phpBBdev1/template/ajax.js?assets_version=280"></script> <script src="./styles/phpBBdev1/template/phpbbde_navi.js?assets_version=280"></script> <script>(function(a){if(a.getElementsByTagName("pre").length){var c=a.getElementsByTagName("head")[0],b=a.createElement("script");a=a.createElement("link");b.type="text/javascript";b.onload=function(){hljs.initHighlighting()};b.async=!0;b.src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js";c.appendChild(b);a.type="text/css";a.rel="stylesheet";a.href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github-gist.min.css";c.appendChild(a)}})(document)</script> </body> </html>