php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2011, 12:11  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Seldon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Namespaceauflösung außerhalb von new

Hi,

Ist es möglich, Namespaces außerhalb der Objekterzeugung aufzulösen, unter Beachtung der Importregeln in der aktuellen Datei?

Wozu ich es brauche:
Mein DIContainer bindet Interfaces an konkrete Klassen. z.B. so:

PHP-Code:
$container->bindImplementation('\TestNamespace\Interfaces\Logger''\TestNamespace\FileLogger')
->
save(); 
Ein Objekt dieser Bindung erhält man dann mittels getObject() unter Angabe des entsprechenden Interfaces.

Angenommen, die Datei A importiert den Namespace '\TestNamespace\Interfaces'. Jetzt würde ich das gerne lieber so

PHP-Code:
$logger $container->getObject(resolve_namespace(Logger)); 
machen, anstatt jedes Mal den kompletten Namespace zu übergeben. Die ReflectionClass hilft mir auch nicht weiter, die erwartet ja den aufgelösten Klassennamen.

mfg,
Seldon

Geändert von Seldon (26.03.2011 um 12:37 Uhr).
Seldon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2011, 16:38  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Wenn die referenzierte Klasse deine eigene ist, könntest dir mit einem Kniff aushelfen, um eine echte Referenz auf die Klasse zu nutzen anstatt nur den Namen (das funktioniert in jedem Kontext, nicht nur beim Verwenden von "new")

PHP-Code:
namespace TestNamespace/Interfaces// das Board mag keine Backslashs in PHP Code...
interface Logger {
    const 
__CLASS __CLASS__;

PHP-Code:
$logger $container->getObject(Logger::__CLASS); 
Die Technik verwende ich selbst, funktioniert wunderbar und fühlt sich auch irgendwie sauberer an als mit String Literals zu arbeiten. Noch dazu hat es bei einer IDE mit Auto-Vervollständigung einige Vorteile.

Geändert von fab (26.03.2011 um 17:41 Uhr).
fab ist offline   Mit Zitat antworten
Alt 26.03.2011, 17:29  
Neuer Benutzer
 
Registriert seit: 08.06.2010
Beiträge: 12
PHP-Kenntnisse:
Anfänger
Seldon befindet sich auf einem aufstrebenden Ast
Standard

Wahnsinn! Genau das, was ich gesucht habe! Wusste gar nicht, dass __CLASS__ auch innerhalb von Interfaces funktioniert. Vielen Dank!
Seldon ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Script while(true) nur 24h Laufzeit Lightware PHP Einsteiger 13 23.02.2011 07:22
Script nach zu langer Laufzeit abbrechen Lightware PHP Tipps 2010 3 09.09.2010 17:25
Größe vom Image zur Laufzeit verändern Sirke PHP Tipps 2010 6 16.03.2010 01:33
Klassenaufruf zur Laufzeit Nabla PHP Tipps 2010 18 09.03.2010 19:44
public properties zur laufzeit verbieten / fehlerwerfen DarkPrisma PHP-Fortgeschrittene 13 25.11.2009 23:43
Lange Laufzeit beim abgelich zweier Tabellen ignatzimmergrün PHP Tipps 2009 7 02.03.2009 17:39
Datei zur Laufzeit umbenennen guckers PHP Tipps 2009 7 03.02.2009 22:20
[Erledigt] Klassen zur Laufzeit erzeugen theraipper PHP-Fortgeschrittene 16 10.10.2008 23:52
[Erledigt] Klassen zur Laufzeit initialisieren ihrzauberer PHP-Fortgeschrittene 6 01.09.2008 21:53
[Erledigt] PHP Script mit langer Laufzeit patr1k PHP Tipps 2007 12 09.12.2005 10:33
CLI, Command line Eingabe während der Laufzeit DerDesian PHP Tipps 2007 6 30.11.2005 14:10
[Erledigt] eaccelerator zur laufzeit. PHP-Fortgeschrittene 2 01.08.2005 15:33
Ausgabe während Laufzeit!? PHP-Fortgeschrittene 8 29.09.2004 12:19
Klasse wärend der Laufzeit ergänzen Spyker PHP Tipps 2004 3 12.08.2004 15:25
php laufzeit und ressourcenverbrauch überwachen PHP-Fortgeschrittene 14 25.06.2004 15:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\theraipper\, php namespaces interfaces

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum