php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.02.2012, 23:18  
Benutzer
 
Registriert seit: 07.05.2009
Beiträge: 36
superheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ich habe das ganze nur überflogen aber finde es an vielen Stellen verbesserungswürdig. Allein schon das Stichwort "global" zu sehen wertet den ganzen Spaß massiv ab.
Geht mir genauso Allerdings frage ich mich trotzdem noch, ob man nicht sowas wie globale Klassen anlegen kann? Sozusagen ein Toolkit oder Zwischenschicht, dass dann alle anderen Klassen verwenden können, um z.B. unterschiedliche Datanbankstandards oder Dateisysteme (/ vs. \) zu unterstützen. Ich hab jetzt gelesen, dass es sowas mal in PHP gab aber mit PHP5 entfernt wurde?
superheld ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.02.2012, 23:21  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von superheld Beitrag anzeigen
Geht mir genauso Allerdings frage ich mich trotzdem noch, ob man nicht sowas wie globale Klassen anlegen kann? Sozusagen ein Toolkit oder Zwischenschicht, dass dann alle anderen Klassen verwenden können, um z.B. unterschiedliche Datanbankstandards oder Dateisysteme (/ vs. \) zu unterstützen.
"Globale Klassen" sind meist nichts weiter als eine Funktionssammlung in eine Klasse gestopft.

Da sind Konzepte wie das Singleton Pattern eher zu empfehlen - wenn überhaupt.

Die bessere Alternative lautet Dependency Injection.

PHP bietet so manche Konstanten an, z.B. DIRECTORY_SEPARATOR.

Edit: Zufrieden, Trainmaster?
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

Geändert von Dark Guardian (07.02.2012 um 23:24 Uhr).
Dark Guardian ist offline   Mit Zitat antworten
Alt 07.02.2012, 23:24  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

DIRECTORY_SEPARATOR
Trainmaster ist gerade online   Mit Zitat antworten
Alt 07.02.2012, 23:54  
Benutzer
 
Registriert seit: 07.05.2009
Beiträge: 36
superheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Da sind Konzepte wie das Singleton Pattern eher zu empfehlen - wenn überhaupt.

Die bessere Alternative lautet Dependency Injection.
Singleton Pattern hatte ich schon mal im Visier, aber nicht weiter verfolgt, weil sie offenbar zu anderen Zwecken eingerichtet wurden. Wenn ich das richtig verstanden habe

Dependency Injection klingt sehr spannend. Allerdings wollte ich nicht gleich ein riesiges Framework installieren. Kann man soetwas nicht auch selbst schreiben? Die Frameworks laufen doch auch auf PHP, es scheint also zu funktionieren

Außerdem sehe ich das CMS an sich als Framework. Die Module dann sind nur noch für den Seiteninhalt verantwortlich. Im Prinzip kann ja jede Seite nur aus Text, Tabellen, Listen und Formularen bestehen. Also müsste man den Modulen nur die Werkzeuge geben, um aus diesen Bestandteilen eine Seite zu bauen. Wie seht Ihr das?
superheld ist offline   Mit Zitat antworten
Alt 07.02.2012, 23:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Dependency Injection klingt sehr spannend. Allerdings wollte ich nicht gleich ein riesiges Framework installieren. Kann man soetwas nicht auch selbst schreiben?
Lies Dir doch bitte erstmal Wissen zu diesem Begriff an, bevor Du darüber diskutieren möchtest (bzw. es Dir erklären lassen willst).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.02.2012, 00:18  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von superheld Beitrag anzeigen
Außerdem sehe ich das CMS an sich als Framework.
Das Framework abstrahiert wiederkehrende Vorgänge um Code Redundanzen zu vermeiden. Ein CMS hat da andere Zielsetzungen.

Schau dir einfach mal (entgegen dem Rat von Pflaume) einige CM Systeme und Frameworks an. Dann wirst du den Unterschied mit Sicherheit schnell erkennen und einige Konzepte und verschiedene Umsetzungen derer kennenlernen.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 08.02.2012, 12:50  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von superheld Beitrag anzeigen
Dependency Injection klingt sehr spannend. Allerdings wollte ich nicht gleich ein riesiges Framework installieren.
Nunja das eine hat da mit dem anderen nichts zu tun, Dependency Injection kannst du auch getrost ohne ein Framework nutzen und solltest du auch. Frameworks bieten meist noch den Service eine DI-Containers an.
DI bedeutet nichts anderes als das du Objekten seine Abhängigkeiten ausen als Konstruktorinjection oder Setter Injection übergibst.
z.B.
PHP-Code:
class Test
        
{
            
//allerhand zeugs
        
}

        class 
MyClass
        
{
            protected 
$_obj;

            public function 
setObj($obj)
            {
                
$this->_obj $obj;
            }
        }

        
$test = new Test();
        
$myclass = new MyClass();
        
$myclass->setObj($test); 
Mittels Typehinting kannst du zusätzlich noch den Datentyp der Klasse sicherstellen, da eine Klasse ein Benutzerdefinierter Datentyp ist, auch wenns in PHP nichts mit Typstrenge an sich gibt.

In einem DI-Conatainer kann man mehrere Abhängigkeiten zusammenfassen und den fertigen Container dann als Dependency Injection übergeben.

Zitat:
Zitat von superheld Beitrag anzeigen
Außerdem sehe ich das CMS an sich als Framework. Die Module dann sind nur noch für den Seiteninhalt verantwortlich. I
Da wirfst (wie ich früher auch) 2 vollkommen verschiedene Schuhe durcheinander. Ein CMS ist ein eigenständiges System wie ein Framework auch. Ein CMS baut idR auf einem Framework auf, ein Framework aber nicht auf einem CMS.

Das heist du entwickelst dein CMS und benutzt als Basis z.B. das Zend Framework, oder Synfony oder auch APF. Diese FWs bieten dir nun in diesen Fällen speziell schon vorliegende Architektoren an, MVC oder HMVC.
Auf deren Basis KANNST du nun dein CMS entwickeln, musst du aber nicht, denn beim ZF kannst du alle Sachen auch ohne MVC oder so nutzen.

Also Framework bietet dir nützliche, nutzbare Funktionalitäten und sind mehr als Libraries zu verstehen und ein CMS ist ein fertiges Produkt, dessen Konzept und Funktionsumpfang du selbständig entwickeln musst.

Ich hoffe ich konnte dir deutlich erklären was die Unterschiede da drin sind.

Aber ich denke bevor du auf ein FW zurück greifst solltest du dich über grundlegende OOP Sachen belesen. Denn ohne OOP in gewisser Weise verstanden zu haben wirst du auch Probleme bekommen ein FW anzuwenden und zu verstehen was da so passiert.

Noch ein kleiner Tipp, streiche den Beitrag von Pflaume am besten ganz schnell wieder aus deinem Kopf.

Gruß der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 10.02.2012, 01:28  
Benutzer
 
Registriert seit: 07.05.2009
Beiträge: 36
superheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So, ich hatte heute mal Zeit, mir Dependency Injection anzusehen. Hat ein bisschen gedauert, aber ich glaube, ich habs. Wenn man es dann mal verstanden hat, ist es relativ einfach. Nur glaube ich, dass es irgendwann einmal unübersichtlich wird, wenn man nicht mehr weiß, wer denn nun wo welche Klassen übergeben bekommen hat. Derzeit verwende ich nur zwei, eine für die Config-XML und eine für die Datenbank. Aber wer weiß...

Eine Frage habe ich aber noch: Ich übergebe die Methoden jetzt so:

PHP-Code:
$this->db = new dbm($this->config); 
dbm übernimmt im constructor die Methoden der classe config in seine eigenen. Wie sieht das mit dem Speicher aus? Referenziert das nur oder werden die Methoden in der dbm-Klasse neu angelegt? Wäre ja ein bisschen Mächtig, wenn jede Klasse zum Speicherfresser werden würde

Ich hab den Unterschied zwischen Framework und CMS schon verstanden. Was ich meine ist, dass ein CMS ja doch auch nur Methoden bereitstellt, um eine Ausgabe zu erwirken und somit für alle Module, die man in dieses einbaut, das Framework darstellt. Ich sollte vielleicht ergänzen, dass ich ein Framework (vielleicht mangels Kenntnis an Software-Design-Methoden) als ein Toolkit sehe, mit dem ich arbeiten kann.

Geändert von superheld (10.02.2012 um 01:31 Uhr). Grund: Verständnis
superheld ist offline   Mit Zitat antworten
Alt 10.02.2012, 01:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Eine Frage habe ich aber noch: Ich übergebe die Methoden jetzt so:

$this->db = new dbm($this->config);
Schon falsch im Sinne der DI.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.02.2012, 12:27  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von superheld Beitrag anzeigen
aber ich glaube, ich habs. Wenn man es dann mal verstanden hat, ist es relativ einfach.
Schau dir mal meinen kleinen codeauszug an oben und dann deinen und dann versuche herauszufinden warum das kein wirkloches DI ist was du da machst.
DI heist Objektabhängigkeiten von außen einem Objekt zu übergeben, du machst das aber innerhalb eines Objektes.

Zitat:
Zitat von superheld Beitrag anzeigen
Ich hab den Unterschied zwischen Framework und CMS schon verstanden. Was ich meine ist, dass ein CMS ja doch auch nur Methoden bereitstellt, um eine Ausgabe zu erwirken und somit für alle Module, die man in dieses einbaut, das Framework darstellt. Ich sollte vielleicht ergänzen, dass ich ein Framework (vielleicht mangels Kenntnis an Software-Design-Methoden) als ein Toolkit sehe, mit dem ich arbeiten kann.
Nunja ein CMS stellt kein Framework dar und ist keins.
Und ein CMS kann kein Software Design beinhalten? Du kannst also in einem CMS keine eigene Composite aufbauen nur weil es die in einem Framework was du benutzt für andere zwecke schon gibt?

Du hast den Unterschied scheinbar nicht wirklich ganz verstanden.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna 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
DB Aufbau für Visitor Tracker ragtek Datenbanken 2 08.10.2011 08:53
Namensschema für Methoden einer Klasse ("Best Practise") dreamcatcher Software-Design 11 14.06.2011 14:43
Wohin mit methoden BlackScorp Software-Design 9 24.03.2011 16:37
[Erledigt] Objekt mit statischen Methoden hts JavaScript, Ajax und mehr 3 18.12.2010 21:07
Objekte verwenden gleiche Methoden Cube PHP Tipps 2010 2 21.04.2010 09:25
Kindklasse: Methoden über _call() ergänzen? ciss PHP Tipps 2008 2 29.12.2008 18:08
[Erledigt] Methoden auf Objekt aufrufen (und fangen), die nicht existieren tsisson PHP Tipps 2008 2 07.10.2008 18:19
UML - Abstrakte und vererbte Methoden zwingend anzugeben? MaMo-Net Off-Topic Diskussionen 3 17.03.2008 06:04
Zugriff auf statische methoden oder konstanten nightfreak PHP-Fortgeschrittene 6 14.11.2005 16:56
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
Modularer Aufbau, wie? PHP-Fortgeschrittene 26 31.01.2005 20:16
Modularer Aufbau von cms! PHP-Fortgeschrittene 2 26.01.2005 16:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc modularer aufbau, php dependency injection alternative, php global vs classen, modularer aufbau website, php code modular aufbauen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:00 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