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 08.01.2012, 15:00  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Dafür musst du aber die Klasse selbst instanziieren, sie selbst möglicherweise laden,
Ich verwende fast ausschließlich nur Instanzen. Klar geht manches auch als static, nur is mir fast (eigentlich nie, aber "sage nie nie") noch nix untergekommen, wo es nicht anders geht.
Salopper formuliert:
eine Klasse, deren Methoden nur static aufgerufen werden, ist keine Klasse sondern nur einer verkappte Funktionssammlung. Vielleicht noch'n büschen 'global' und ein paar & dazu - schon simmer (sind wir) bei der prozeduralen Programmierung.

btw: ich bemerke gerade, daß ich mich etwas weit vom Thema entfernt habe. MOD: entweder löschen oder Thema teilen...
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.01.2012, 15:03  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von meikel Beitrag anzeigen
Ich verwende fast ausschließlich nur Instanzen. Klar geht manches auch als static, nur is mir fast (eigentlich nie, aber "sage nie nie") noch nix untergekommen, wo es nicht anders geht.
Salopper formuliert:
eine Klasse, deren Methoden nur static aufgerufen werden, ist keine Klasse sondern nur einer verkappte Funktionssammlung. Vielleicht noch'n büschen 'global' und ein paar & dazu - schon simmer (sind wir) bei der prozeduralen Programmierung.
Du missverstehst mich.

Nach deinem Prinzip muss eine klasse Instanziiert werden, da du im Constructor der Klasse auf die Session-Variable zugreifst um dort Daten vom Typ-Array rauszugraben.

Nach dem prinzip der objektserialisierung sparst du dir das und deserialisierst die objekt-instanz einfach und kannst das objekt nutzen.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 08.01.2012, 15:13  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Du missverstehst mich.
Gerne... <ggg>

Zitat:
Nach deinem Prinzip muss eine klasse Instanziiert werden, da du im Constructor der Klasse auf die Session-Variable zugreifst um dort Daten vom Typ-Array rauszugraben.
Das geht schneller als Teil II Deiner Antwort.

Zitat:
Nach dem prinzip der objektserialisierung sparst du dir das und deserialisierst die objekt-instanz einfach und kannst das objekt nutzen.
Liest sich gut, ist aber in PHP mehr als etwas krötig umgesetzt. Ich würde da auf ne Version warten, wo es den Schnodder als Funktion gibt.

Das http://www.php.net/manual/en/languag...ialization.php ist sehr dürftig:
PHP-Code:
  $a = new A
Aha, ne Instanz...

PHP-Code:
  $s serialize($a); 
  
file_put_contents('store'$s); 
Wat anderes macht PHP beim Speichern der Session auch nicht. Aber eben schneller...

Da wird noch umständlicher:
PHP-Code:
  // this is needed for the unserialize to work properly.
  
include("classa.inc"); 
wozu noch __autoload?
PHP-Code:
  $s file_get_contents('store');
  
$a unserialize($s); 
Das würde session_start() zT erledigen. Und session_start() sollte schon sein, weil sonst wirds etwas sinnfrei.

Und das http://www.php.net/manual/en/languag...p5.magic.sleep ist auch nicht fixer, weils erst mal interpretiert werden muß.
  Mit Zitat antworten
Alt 08.01.2012, 15:27  
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:
Liest sich gut, ist aber in PHP mehr als etwas krötig umgesetzt. Ich würde da auf ne Version warten, wo es den Schnodder als Funktion gibt.
Häh? session_start und das Objekt ist da. Was bitte willst Du noch?!
__________________
--
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.01.2012, 15:29  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Note: unserialize_callback_func directive
It's possible to set a callback-function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object "__PHP_Incomplete_Class".) Use your php.ini, ini_set() or .htaccess to define 'unserialize_callback_func'. Everytime an undefined class should be instantiated, it'll be called. To disable this feature just empty this setting.
http://www.php.net/manual/de/var.con...-callback-func

Zitat:
unserialize_callback_func string
Die unserialize() Callback-Funktion wird (mit dem Namen der undefinierten Klasse als Parameter) aufgerufen, wenn die Deserialisierungsroutine eine undefinierte Klasse findet, die instanziiert werden soll. Es wird eine Warnung ausgegeben, wenn die angegebene Funktion nicht definiert ist oder die Funktion die fehlende Klasse nicht einbinden/implementieren kann. Setzen Sie diesen Wert daher nur, wenn Sie wirklich eine entsprechende Callback-Funktion implementieren wollen.
Ergo den Autoloader der die Klasse laden würde einfach als Callback-Function per ini_set() setzen, fertig. Der Aufwand besteht also insofern man eh Autoloading nutzt bei einer zusätzlichen Zeile Code..
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 08.01.2012, 16:39  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Häh? session_start und das Objekt ist da.
Hä?
script1.php
PHP-Code:
# viele klassen im Gepäck
# Scriptende 
script2.php
PHP-Code:
<?php
session_start
();
und alle Klassen + Instanzen aus script1.php leben wieder nach Funktionsaufruf? Tolle Sprache...

Zusatz:
Zitat:
Zitat von tr0y Beitrag anzeigen
http://www.php.net/manual/de/var.con...-callback-func
...
Ergo den Autoloader der die Klasse laden würde einfach als Callback-Function per ini_set() setzen, fertig. Der Aufwand besteht also insofern man eh Autoloading nutzt bei einer zusätzlichen Zeile Code..
Ein "paar Zeilen mehr" werdens schon werden...

Geändert von meikel (08.01.2012 um 16:43 Uhr).
  Mit Zitat antworten
Alt 08.01.2012, 17:15  
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

Sorry meikel, ich glaube ich höre auf, mit Dir persönlich zu diskutieren. Mit Deiner Argumentationsweise komme ich nicht klar. Deinen Fetzen von eben kann ich auch kein Argument entnehmen.
__________________
--
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
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
Objekte in Session, oder wie verfügbar halten? Igäl PHP Einsteiger 12 09.08.2011 19:49
Objekte mit Attributen variabler Anzahl und variablen Typs speichern Bergtroll Datenbanken 9 29.01.2011 14:54
Objekte in Array speichern und diese Verwenden michi_pader PHP Einsteiger 6 12.12.2010 17:24
[Erledigt] Zerstörung der Objekte am Ende eines Scripts ByStones PHP Tipps 2010 8 03.05.2010 14:01
[Erledigt] Browsergame : Objekte auf einer Karte BlackScorp Software-Design 10 01.04.2010 09:59
Verschachtelte Objekte und Vererbung GELight PHP-Fortgeschrittene 1 11.12.2009 09:09
Was bringt OOP wenn Objekte nach jeder Seite sterben? majorbenks PHP Tipps 2009 9 18.11.2009 14:11
[Erledigt] Referenzen auf Objekte innerhalb eines Arrays PHP-Fortgeschrittene 6 31.08.2009 17:06
[Erledigt] Wo liegen bei OOP die Objekte? Jafix PHP Tipps 2009 2 12.06.2009 18:14
[Erledigt] Objekte übergeben Felix PHP Tipps 2008 23 18.06.2008 12:21
Objekte zur Laufzeit Vererbung anhängen Zergling-new PHP-Fortgeschrittene 8 17.11.2007 17:31
[Erledigt] Objekte vergleichen PHP-Fortgeschrittene 4 08.12.2005 16:20
[Erledigt] Verständnisfrage OOP - Objekte in MySQL Datenbank schreiben? PHP Tipps 2005 2 19.05.2005 21:40
Ganze Objekte an Script weitergeben dreamingof8a PHP Tipps 2004-2 6 23.11.2004 12:17
[Erledigt] Referenzen auf Objekte PHP-Fortgeschrittene 2 17.08.2004 11:08


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