php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-10-2009, 19:49
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Eine Klasse in jeder Klasse verfügbar machen

Hi.

Ich habe eine Klasse für Fehleranzeige entworfen.
Wenn nun z.B. eine andere Klasse diese Fehleranzeigeklasse benutzen will,
muss ich sie neu instanzieren
PHP-Code:
$noticeError = new FW_Notice("error"); 
Kann ich diese deklaration irgendwie in jeder Datei verfügbar machen ohne Sie überall reinschreiben oder verlinken zu müssen?

Danke

EDIT:
Vll. Global erreichbar machen ?

Geändert von phpMorpheus2 (21-10-2009 um 19:51 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 21-10-2009, 19:52
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Redest du jetzt von der Deklaration der Klasse an sich, oder von der konkreten Instanz?


Wenn du ersteres meinst, dann könnte autoloading dir weiterhelfen, und wenn du letzteres meinst, solltest du dich mit dem Singleton-Pattern beschäftigen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 21-10-2009, 19:57
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
Redest du jetzt von der Deklaration der Klasse an sich, oder von der konkreten Instanz?


Wenn du ersteres meinst, dann könnte autoloading dir weiterhelfen, und wenn du letzteres meinst, solltest du dich mit dem Singleton-Pattern beschäftigen.
Von der Instanz.
Denn jeder Fehler wird in dieser Instanz gespeichert und gemeinsam ausgegeben.
Es wäre so, als wenn ich in der index.php die Klasse instanziere und alle includeten Dateien könnten diese "gemeinsam" nutzen.

Kann ich auf die Übergeordnete Ebene (auf die Index.php) und Ihrer instazierung zugreifen?
Mit Zitat antworten
  #4 (permalink)  
Alt 21-10-2009, 20:05
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Du suchst das Singleton-Pattern. Oder das Registry Pattern (das im Grunde auch nur ein Singleton Pattern ist). Oder du packst sowas in eine statische Klasse. Aber das müsstest du eigentlich alles schon längst wissen.
Mit Zitat antworten
  #5 (permalink)  
Alt 21-10-2009, 20:10
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich schaue mir das zendframework immer an bevor ich etwas größeres angehe.
Jedoch haben zend das immer nur über die exceptions laufen welche zwar sowieso immer seperat für jede Klasse erstellt werden, aber nicht mein Problem lösen.

Eine übergeordnete statische Klasse kann ich genausowenig ansteuern wie eine instanzierte Klasse, wenn man eine übergeordnete instanzierte Klasse ebend nicht ansteuern kann.

EDIT:
Und klar, ich könnte erben, aber dann müsste ich wieder coden.
Ich dachte nur, vielleicht gibt es eine andere Lösung.
Mit Zitat antworten
  #6 (permalink)  
Alt 21-10-2009, 20:14
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpMorpheus2 Beitrag anzeigen
Ich schaue mir das zendframework immer an bevor ich etwas größeres angehe.
Jedoch haben zend das immer nur über die exceptions laufen welche zwar sowieso immer seperat für jede Klasse erstellt werden, aber nicht mein Problem lösen.

Eine übergeordnete statische Klasse kann ich genausowenig ansteuern wie eine instanzierte Klasse, wenn man eine übergeordnete instanzierte Klasse ebend nicht ansteuern kann.
Was hat das ZF über Exceptions laufen? Und was meinst du mit "übergeordnet"? Und warum solltest du etwas nicht "ansteuern" können? Eine statische Klasse –*wenn deklariert –*kannst du von überall ansprechen. Und die ist für solche Zwecke ideal …*oder eben Singleton –*wie schon erwähnt.
Mit Zitat antworten
  #7 (permalink)  
Alt 21-10-2009, 20:18
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von unset Beitrag anzeigen
Was hat das ZF über Exceptions laufen?
Eben die Fehleranzeige.
Ich habe im zend keine seperate anzeigemöglichkeit gefunden welche versch. notizen empfangen kann und gemeinsam ausgibt.

Zitat:
Zitat von unset Beitrag anzeigen
Und was meinst du mit "übergeordnet"?
Die index.php ist eine Ebene über den zu includenden Dateien.

Zitat:
Zitat von unset Beitrag anzeigen
Und warum solltest du etwas nicht "ansteuern" können? Eine statische Klasse –*wenn deklariert –*kannst du von überall ansprechen. Und die ist für solche Zwecke ideal …*oder eben Singleton –*wie schon erwähnt.
Da werd ich doch gleich mal schaun.
Mit Zitat antworten
  #8 (permalink)  
Alt 21-10-2009, 20:21
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpMorpheus2 Beitrag anzeigen
Eben die Fehleranzeige.
Ich habe im zend keine seperate anzeigemöglichkeit gefunden welche versch. notizen empfangen kann und gemeinsam ausgibt.
Es gibt zum Beispiel den Form Errors View Helper. Wenn der dir nicht reicht, könntest du dir auch einen View Helper mit weniger Handgriffen selbst bauen, der das was du machen willst, erledigt.

Was du über Exceptions und FehlerMELDUNGEN erzählst ist natürlich Blödsinn. Das Handling von kaputten Daten, gescheiterten Transaktionen und sonstigen nicht erwünschten Effekten läuft –*und das macht man halt so –*über Exceptions. Dass die im Super-Ultra-Basic-Beispiel komplett als "Fehlermeldung" ausgegeben werden, ist nur eine erleichterung für den Entwickler. Auf Live-Systemen gibt man sowas natürlich nicht mehr aus.

Geändert von unset (21-10-2009 um 20:23 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 21-10-2009, 20:35
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aha.
Ich kann aber doch nicht in einer statischen Klasse eine dynamische Variable speisen.
Oder?

Also ich meine, wenn ich eine klasse habe und eine statische methode aufrufe und einen wert übergebe, kann die klasse ja nicht die übergebenen Werte z.B. in eine Array speichern und per statischem methodenaufruf die mitlerweile gefüllte Array ausgeben.
Mit Zitat antworten
  #10 (permalink)  
Alt 21-10-2009, 20:36
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Doch. Und eigentlich gilt auch: Versuch macht kluch –*Lieber ausprobieren statt anzunehmen und dann doof zu Fragen.
Mit Zitat antworten
  #11 (permalink)  
Alt 21-10-2009, 22:10
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Natürlich probiere ich es auch aus bevor ich es behaupte.
Vll. mache ich etwas falsch

PHP-Code:
class FW_Notice
{
    public 
$bla = array();

    public static function 
add($key)
    {
        
self::$bla[] = $key;
    }

    public static function 
show()
    {
        
print_r($this->bla);
    }


Mit Zitat antworten
  #12 (permalink)  
Alt 21-10-2009, 22:39
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Na, dann lies mal die Fehlermeldungen, die dir um die Ohren gehauen werden!
Mit Zitat antworten
  #13 (permalink)  
Alt 21-10-2009, 22:50
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Wenn ich das schon höre: Singleton und "statische Dinger".....
So wie ich das sehe soll ja "nur" irgendwas geloggt werden.

Da ist doch eigentlich sowas wie das "Observer Design Pattern" angesagt. Und typischer Weise werden dem Subject die Observer per Setter überreicht.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #14 (permalink)  
Alt 21-10-2009, 23:01
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Für den Verwendungszweck ja, für den Betreff nicht. Und mehr lese ich beim TO auch nicht mehr wirklich

Ich bin auch kein großartiger Freund des Singletons, aber ist immer noch wesentlich einfacher zu implementieren als eine (halbwegs saubere) Observer-Struktur –*vor allem bei dem Kenntnisstand …
Mit Zitat antworten
  #15 (permalink)  
Alt 22-10-2009, 02:10
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Observer sehe ich hier nicht. Er will in seiner Applikation an jeder Stelle im Code einen Errorlogger füttern können. Wer soll da wen observieren?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[OOP] Klasse benötigt andere Klasse / Pfadproblem compuboy1010 PHP Developer Forum 12 11-05-2006 10:10
[OOP] Variablen in Klasse bekannt machen schneller als ... Le_Cheffe PHP Developer Forum 3 16-02-2006 13:16
[Bug] MySQL-Klasse in anderer Klasse nutzen Eagle PHP Developer Forum 48 05-03-2005 14:28
[OOP] In einer Klasse eine andere Klasse verwenden? JamieWolf PHP Developer Forum 34 26-08-2004 16:20
Klasse::Klasse --> und dann auf Attribut der Mutterklasse zurückgreifen? Pascal P. PHP Developer Forum 7 14-04-2003 19:48

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:23 Uhr.