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 07-09-2006, 21:00
p4cm4n
 Registrierter Benutzer
Links : Onlinestatus : p4cm4n ist offline
Registriert seit: Jul 2006
Beiträge: 53
p4cm4n ist zur Zeit noch ein unbeschriebenes Blatt
Standard OOP Frage - PHP - Session

hi,

habe mal ein bisschen nach meinem Problem gesucht, bin aber nicht wirklich fündig geworden.

Was ich vor habe:

Mit PHP eine Kundenverwaltung umzusetzen.
Also hab ich eine Kunden-Maske mit feldern wie kundennr, name usw.

Habe eine Klasse Kunden und eine Klasse KundenOperator.

Wenn ich diese Kunden-Maske aufrufe, wird ein Objekt der Klasse KundenOperator instanziert.

Die Klasse Kundenoperator hat halt ein Objekt der Klasse Kunde und kann halt Suchen, Anlegen, Ändern.

-- Soviel zu meinem Vorhaben.

(Randbemerkung)
Jetzt, ist es das erste mal das ich mich an OOP mit PHP ranwage, hab schon Erfahrung mit OOP Programmierung.

Mein Problem:
Ich mache eine Session, und speichere dieses Objekt als Session Variable.
! Geht nicht.

Die Lösung die ich gefunden habe, war serialize zu benutzen.

http://www.php.net/manual/de/languag...ialization.php
(Siehe ganz unten, da hab ich den code ma reingemacht)

Nur, da wird dieser Objekt also in einen bytestream umgewandelt und in eine Datei angelegt.
Ich bin da skeptisch,
da ich schon mal mit rechne das viele Leute gleichzeitig die Anwendung benutzen. Und ich weiss halt nicht so Recht.

Meine Frage:
Kann man das besser Lösen mit dem speichern eines Objektes?

Wenn 100 User das gleichzeitig benutzen, speichert er das ja alles in der selben Datei.. Kommt er da nicht durcheinander?

Wenn ich für jeden Objekt für jeden Kunden eine Datei anlege sprich:
$dateiname= $sessionid . "objekt.datei"
Hab ich dann 100 Dateien wenn 100 User eingeloggt sind.

Irgendwie find ich das alles nicht so elegant.

Würde mich auch über allgemeine Statements zu meiner Vorgehensweise freuen. (Villeicht hab ich das nicht ganz durchdacht?!)
Auch statements zu PHP und OOP programmierung.

PHP-Code:

classa
.inc:
  class 

  
{
     var 
$one 1;
   
     function 
show_one()
     {
         echo 
$this->one;
     }
  }
  
page1.php:
  include(
"classa.inc");
  
  
$a = new A;
  
$s serialize($a);
  
// speichere $s irgendwo, wo sie page2.php finden kann.
  
$fp fopen("store""w");
  
fputs($fp$s);
  
fclose($fp);

page2.php:
  
// Dies ist für das korrekte Arbeiten von unserialize nötig.
  
include("classa.inc");

  
$s implode("", @file("store"));
  
$a unserialize($s);

  
// Nun verwenden wir die Funktion show_one() des Objektes $a.  
  
$a->show_one(); 
(Sorry wenn ich mich scheisse ausgedrückt habe)
greetz

Geändert von p4cm4n (08-09-2006 um 09:46 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 07-09-2006, 22:17
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie wäre es mit php5 benutzen? Dann klappts auch mit dem Objekt in der Session vernünftig...
Mit Zitat antworten
  #3 (permalink)  
Alt 07-09-2006, 23:43
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: OOP Frage - PHP - Session

Zitat:
Original geschrieben von p4cm4n
Die Lösung die ich gefunden habe, war serialize zu benutzen.
Warum, ich dachte du wollstest die Daten in einer Session ablegen?
Ablegen in/Auslesen aus Session serialisiert/deserialisiert ein Objekt doch automatisch, steht auch auf der von dir selbst verlinkten Seite.

Zitat:
Wenn 100 User das gleichzeitig benutzen, speichert er das ja alles in der selben Datei..
Nur bei deiner selbstgebastelten Lösung - wenn du beim Session-Mechanismus von PHP bleibst, dann nicht, dann kommen die Daten jedes Nutzers in seine eigene Sessiondatei, du brauchst dich nicht ums "aufräumen" kümmern, etc. pp.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 08-09-2006, 00:24
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: OOP Frage - PHP - Session

Zitat:
Original geschrieben von p4cm4n
Mein Problem:
Ich mache eine Session, und speichere dieses Objekt als Session Variable.
! Geht nicht.
mit "geht nicht" meinst du bestimmt, dass du ein objekt ohne methoden erhälst?
da kann ich nur Wie speichere ich Objekte in Sessions? zitieren:
Zitat:
Zu beachten ist dabei allerdings, dass auf jeder Seite, in der auf die Session zugegriffen wird (in der also session_start() aufgerufen wird), auch die Klassendefinition eingebunden sein muss. Falls sich diese in einer seperaten Datei befindet, muss sie vor session_start() inkludiert werden.
Mit Zitat antworten
  #5 (permalink)  
Alt 08-09-2006, 09:45
p4cm4n
 Registrierter Benutzer
Links : Onlinestatus : p4cm4n ist offline
Registriert seit: Jul 2006
Beiträge: 53
p4cm4n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Thx für die vielen schnellen antworten.

@ghostgambler: ich benutze PHP 5!
@wahsaga: da mangelts wohl an meine englisch kenntnisse!
@3DMax: Mein Problem genau ins schwarze getroffen.

Also, ich kann dann nicht auf dem nächsten Skript auf die Methoden vom Objekt zugreifen.

Also wenn ich das dann richtig verstehe:

PHP-Code:
<?php

  
include "include/class/myclass.php";
  
session_start();

?>
Und das reicht, damit mein Objekt wieder "ansprechbar" ist?

greetz
Mit Zitat antworten
  #6 (permalink)  
Alt 08-09-2006, 09:49
Trashar
 PHP Senior
Links : Onlinestatus : Trashar ist offline
Registriert seit: Dec 2001
Ort: /root/
Beiträge: 1.366
Trashar ist zur Zeit noch ein unbeschriebenes Blatt
Trashar eine Nachricht über ICQ schicken Trashar eine Nachricht über AIM schicken
Standard

try it
Mit Zitat antworten
  #7 (permalink)  
Alt 08-09-2006, 10:22
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von p4cm4n

Und das reicht, damit mein Objekt wieder "ansprechbar" ist?
Ja, aber es reicht unter umständen nicht, wenn du die klassen
zu einem späteren zeitpunkt wieder deserialisieren und benutzen
willst.
Du musst darauf achten dass die klassendeklaration vor der
deserialisierung bekannt ist.

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
  #8 (permalink)  
Alt 13-09-2006, 15:38
p4cm4n
 Registrierter Benutzer
Links : Onlinestatus : p4cm4n ist offline
Registriert seit: Jul 2006
Beiträge: 53
p4cm4n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

.. es hat alles soweit geklappt! .. danke.

Nur jetzt hab ich ne andere Frage.
Poste es auch hier rein, weil es um meine Kundenverwaltung weiterhin geht.

Ich habe eine Kunden Klasse:

PHP-Code:
class Kunden
{
  public 
$a;
  public 
$b;

Und eine Klasse KundenOperator

PHP-Code:
class KundenOperator
{
  private 
$kunde = new Kunden();
  
  public 
kundeLoeschen()
  {
   ....
  }

Mein FehlerMeldung:

Zitat:
parse error, unexpected T_NEW
Denke ma der Code reicht und zeigt was ich vorhabe?
Wieso kann ich kein Objekt Kunde in kundenOperator haben?

Oder schreibt mann das anders?
greetz
Mit Zitat antworten
  #9 (permalink)  
Alt 13-09-2006, 15:52
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

PHP-Code:
<?php
class Kunden {
}
class 
KundenOperator {
    public 
$kunde;
    function 
__construct() {
        
$this->kunde = new Kunden();
    }
}
?>
Zitat:
http://php.net/class
The default value must be a constant expression, not (for example) a variable, a class member or a function call.
Mit Zitat antworten
  #10 (permalink)  
Alt 13-09-2006, 15:55
p4cm4n
 Registrierter Benutzer
Links : Onlinestatus : p4cm4n ist offline
Registriert seit: Jul 2006
Beiträge: 53
p4cm4n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

oh, alles klar, vielen dank
Mit Zitat antworten
Antwort

Lesezeichen


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

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 21:53 Uhr.