SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.12.2008, 19:53:04
CharelB CharelB ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 33
Beiträge: 5
Singelton oder $GLOBALS

Hi Community ,


Ich wollte mich fragen in php5 was eigentlich besser ist .... eine Singelton Klasse ... oder meine Klassen via $GLOBALS aufzurufen .... wenn ja warum ... was sind die vor und nachteile?


Kind regards - Charel B
Mit Zitat antworten
  #2  
Alt 11.12.2008, 21:39:43
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Singelton oder $GLOBALS

Erschießen == Singleton
Erstechen == Globale Variablen
Was ist besser?
Mir wäre Erschießen lieber!
(obwohl, so ganz sicher bin ich mir da auch nicht)

Meist gibt es Alternativen.
Was willst du wirklich erreichen?

Geändert von DokuLeseHemmung (11.12.2008 um 21:40:56 Uhr)
Mit Zitat antworten
  #3  
Alt 11.12.2008, 21:46:11
CharelB CharelB ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 33
Beiträge: 5
AW: Singelton oder $GLOBALS

mir wurde im IRC geraten dies zu tun also entweder $GLOBALS oder Singelton's zu benutzen.


weil ich hab mir z.b in database.php ne klasse geschrieben namens "database" ... diese hab ich wiederum in der selben datei schon gestartet per

PHP-Code:
...

$database=new database();

... 
so hab ich das auch bei anderen klassen gemacht was nur komisch war nadem ich die datei included hatte ...

per

PHP-Code:
...

@include(
'database.php'); 
wollte ich auf die funktion "doConnect" zugreifen um eine verbindung zum datenbanken server zu bekommen

aber komischerweise bekam ich einen error dass er die funktion nicht kannte ... so hab ich mich ein wenig umgegooglet und im irc nach gefragt ... diese sagten mir wiederum ich solle $GLOBALS oder Singelton's benutzen


Wenn jemand nen anderen vorschlag hat kann mir ja hier antworten oder ne pm schicken

Kind regards- CharelB
Mit Zitat antworten
  #4  
Alt 11.12.2008, 21:56:26
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Singelton oder $GLOBALS

Lass es dir gesagt sein:
Irgendwann brauchst du eine Verbindung zu einer 2ten Datenbank!
Und dann fällst du mit Globals/Singletons auf die Nase.


Wenn es irgend möglich ist, übergib den Klassen, welche eine DB Verbindung brauchen, die Verbindungsklasse im Konstruktor, oder per Setter Methode.

Für dich könnten folgende Pattern von Interesse sein:
Factory
Registry
Dependency Injection
Oder eine Kombination aus diesen, welche dann evtl Singleton sein darf. Aber längst nicht muß.

Tipp:
Ein Singleton im Projekt bringt Sorgen aber mehrere davon ist softwaretechnischer Selbstmord auf Raten.

Geändert von DokuLeseHemmung (11.12.2008 um 22:01:09 Uhr)
Mit Zitat antworten
  #5  
Alt 11.12.2008, 22:13:59
CharelB CharelB ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 33
Beiträge: 5
AW: Singelton oder $GLOBALS

wo finde ich diese patterns?


Kind regards Charel B
Mit Zitat antworten
  #6  
Alt 11.12.2008, 22:45:56
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Singelton oder $GLOBALS

http://de.wikipedia.org/wiki/Entwurfsmuster
Und über google z.B:
[google]Dependency Injection Design Pattern PHP[/google]
Mit Zitat antworten
  #7  
Alt 12.12.2008, 01:36:25
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Singelton oder $GLOBALS

Zitat:
Zitat von CharelB Beitrag anzeigen
mir wurde im IRC geraten [...] $GLOBALS
die ratschläge dieser person wurde ich in zukunft sehr kritisch betrachten. globale variablen, noch dazu für ein vergleichsweise triviales problem, sind ein grosses tabu in der programmierung.

Zitat:
Zitat von CharelB Beitrag anzeigen
PHP-Code:
@include('database.php'); 
fehler solltest du besser durch skript-logik abfangen, nicht durch das voranstellen von '@':

- frisst performance en masse
- sehr schlechter stil

cx
Mit Zitat antworten
  #8  
Alt 04.01.2009, 17:27:57
Benutzerbild von Morrandir
Morrandir Morrandir ist offline
Anfänger
 
Registriert seit: Jun 2006
Beiträge: 120
AW: Singelton oder $GLOBALS

Ich würde generell in der database.php keine Instanz erzeugen sondern nur die Klassenstruktur ablegen. Warum? => Weil ich sonst vielleicht 20 includes in ner Datei stehen hab, aber jedesmal in die einzelnen Dateien reinschaun muss, wo ich wieviele und welche Instanzen schon erzeugt hab.

+Puls: ich würde require_once verwenden, wenn ich irgendwo eine Klassenstruktur einbinde - da bei wiederholtem include ein Fehler (Redefinition) auftritt!

+Plus: Singelton würde ich generell vergessen!
+Plus: $GLOBALS sind (meiner Meinung nach - und vieler anderer nach) schrott!

+Plus: Eine Datenbankklasse mit Datenbankparametern im Konstruktor (wie sie DokuLeseHemmung beschrieben hat) ist wesentlich besser zu handhaben!

Gruß
Andi
__________________
Zitat:
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. (Rick Cook, The Wizardry Compiled)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
in_array und $GLOBALS Problem malefiz PHP Grundlagen 3 20.06.2007 09:49:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:45:44 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt