![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 18.07.2007
Beiträge: 15
|
Hallo, ich erstelle meine ganzen seiten mit smarty. da ich nun aber mit oop angefangen habe, hätt ich mal ne frage. und zwar habe ich eine configdatei wo smarty mit "new smarty" aufgerufen wird. dann habe ich die index.php über die alles läuft, login, register usw., und diese includiert config. dann habe ich meine classen welche ebenfalls die config benötigen. also heißt das doch, das smarty in jeder datei verfügbar sein sollte. aber wenn ich in der classe $this->smarty->assign z.b. aufrufe, nölt der das er smarty nicht kennt. ich habe in der klasse folgendes: PHP-Code: weil ich müsste dann ja auch im tpl das $var benutzen können. |
| | |
| | Nach oben #2 |
| Neuer Benutzer Registriert seit: 03.03.2006 Ort: Msobach
Beiträge: 14
|
$smarty wurde außerhalb der funktion definiert und liegt nicht in deren zugriffsbereich. du kannst mit dem "global" stichwort, die variable in der funktion erreichbar machen, also: PHP-Code:
__________________ Mein Blog: nicky.nubbel.info |
| | |
| | Nach oben #5 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Als Alternative ab PHP5: Grundlegende Frage zur Objektorientierung / OOP
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #6 |
| Benutzer Registriert seit: 18.06.2006 Ort: Straubing
Beiträge: 85
|
Ich würde dir zu letzerem raten. Ich hatte schoneinmal selbst das gleiche Problem. Bei wir war es so, dass wenn ich nun auch noch eine Datenbank-Klasse benutzen wollte sprich nochmals zusätzlich zu global $smarty, global $db geschrieben habe, dass sich diese beiden praktisch gegenseitig sperrten! Mfg, berti |
| | |
| | Nach oben #7 |
| Neuer Benutzer Registriert seit: 18.07.2007
Beiträge: 15
|
erstmal danke an euch alle. habe noch etwas im netz gestöbert nach singleton, und ich denke, das wird die einfachste und sauberste lösung sein. nur irgendwie steh ich auf dem schlauch. ich erstelle also das singleton. jenachdem welches modul ich aufrufe, includiere ich die klasse und starte diese über singleton? ist das so korrekt? und dann ist diese klasse global verfügbar? |
| | |
| | Nach oben #8 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.203
|
Les dir vielleicht mal das hier noch durch: http://www.phpbar.de/w/Singleton da ist ein Beispiel gebracht wie man das ganze nutzen kann, besonders interessant das 2te Muster in Form einer Registry, damit kannst du mehr als 1 Objekt verwalten und von überall darauf zugreifen. |
| | |
| | Nach oben #9 | |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Und zum Beabtworten der Fragen: Zitat:
Klassen sind - wie Funktionen - in PHP immer global verfügbar. Einmal geladen kannst du aus jedem Folgescript darauf zugreifen, auch ohne extra include, bis dein Request fertig ist. Ein neuer Request startet logischerweise wieder bei 0 und includiert amAnfang wieder die Klasse. Das static Keyword bewirkt, das die zugehörige Variable genau einmal existiert, nämlich im Kontext deiner Klasse. Völlig egal, ob du neue Instanzen anlegst. Die statische Variable gibt es nur einmal. Das macht ein Singleton aus. Die Methode getInstance dient "nur" dazu, bei Bedarf eine neue Objekt-Instanz anzulegen, so dass du immer nur exakt eine Objektinstanz hast und nie mehr. Diese Objekt-Instanz merkt es sich in einer statischen Variable.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Smarty und number_format() | Berti | PEAR, PECL und Frameworks | 12 | 23.02.2007 04:39 |
| Navigation auf Smarty umstellen?! | napsio | PEAR, PECL und Frameworks | 4 | 25.01.2006 19:22 |
| [PHP] OOP - eine Einführung | MrNiceGuy | Tutorials | 16 | 11.11.2005 00:05 |
| PEAR Alternative zu Smarty | ex³ | PEAR, PECL und Frameworks | 5 | 08.11.2005 21:19 |
| Wie beginnne ich eine Seite mit Oop richtig? | ex³ | PHP-Programmierung | 9 | 01.11.2005 17:38 |