anpera.net
http://anpera.homeip.net/phpbb3/

NPC-Chatsystem auf PHP5-OOP
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4009
Seite 3 von 4

Autor:  Auric [ So 13 Jul, 2008 13:50 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Wow, da scheine ich tatsächlich massive Teile vergeseen oder verloren zu haben. Bin schon an der Programmierung

Autor:  Auric [ Fr 04 Sep, 2009 11:12 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Bugfix hochgeladen!

Autor:  Auric [ Mo 07 Sep, 2009 13:56 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Noch einmal erneuerte Version mit Namens-Überprüfung (Danke an Harthas)

Autor:  Freya [ Mo 12 Okt, 2009 17:01 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

:wink: Huhu,
ich weis man hat schon recht lange nichts mehr von mir gehört... weil ich selten Internet habe und sonst auch nich sonderlich oft on bin *welches wunder*

Aber ich hab natürlich gleich mal die neue Version hoch geladen und schupp!! Es klappt prima!! Ich danke euch recht herzlich das das nun klappt *alle knuddel*

Lieben gruß

Autor:  Yanara [ Mo 24 Mai, 2010 19:46 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Hey ihrs

Hab es eingebaut (habe das alte Commentary System wieder rein gepackt) und nun ist es so das ich die NPC's zwar freischalten kann ihnen auch Namen geben, Avatar und Text schreiben, aber sobald ich es abschliessen will kommt der Fehler:

Die Erschaffund deines NPCs schlug fehl, eventuell hast du nicht genügend Punkte

Aber ich hab mehr als genug Punkte, daran kann es also nicht liegen. Und ich weiss nicht was ich sonst noch anschauen könnte um den Fehler zu finden, sitze schon lange vor dran.
Wir haben keine Rp Punkte im Speziellen, aber wir haben es auf DP's eingestellt.
Könnte das dennoch ein Problem sein?

Gruss
Yanara

Autor:  MySql [ Mi 02 Jun, 2010 07:09 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Hayho. :)

Ich hab mir die Klasse gerade mal angesehen.. und bin da auf folgendes gestoßen:

$this->bbcode_second_pass_code('', ' public function getName() {
return $this->name;
}

public function getId() {
return $this->id;
}

public function getErsteller() {
return $this->ersteller;
}

public function getErstellerName() {
return $this->erstellername;
}

public function getErstellerLogin() {
return $this->erstellerlogin;
}

public function getText() {
return $this->text;
}

public function getAvatar() {
return $this->avatar;
}')

Ich frag mich: Wieso? :?
Daher Du ja sagst, dass das System erst ab PHP5 [!] funktioniert, hättest Du doch einfach die Funktion __get nehmen können!?

Wäre zumindest Platzsparender, als für alles nochmal eine extra Funktion.. x: ♥

Autor:  Yanara [ Mi 02 Jun, 2010 09:49 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Hey Mysql

Ich habe das so drin wie Ich es runtergeladen habe.

Da musst Auric fragen warum er es so gemacht hat.

Gruss

Yanara

Autor:  Auric [ Mi 02 Jun, 2010 11:10 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Die Antwort ist ganz einfach: Saubere Kapselung.
Ich hätte auch einfach die Felder alle auf public stellen können, dann bräuchte man gar keine Getter und Setter, sofern die nichts anderes tun. Zugegeben, bei einem Projekt dieser geringen Größe mag es etwas übertrieben sein, aber ich halte nun mal viel von sauberem Programmierstil und der sieht für jedes Feld einen passenden Getter/Setter vor.

Auric

Autor:  MySql [ Mi 02 Jun, 2010 12:29 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Okay. :)

Autor:  Bathory [ Mi 02 Jun, 2010 23:39 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Auric hat geschrieben:
Die Antwort ist ganz einfach: Saubere Kapselung.
Ich hätte auch einfach die Felder alle auf public stellen können, dann bräuchte man gar keine Getter und Setter, sofern die nichts anderes tun. Zugegeben, bei einem Projekt dieser geringen Größe mag es etwas übertrieben sein, aber ich halte nun mal viel von sauberem Programmierstil und der sieht für jedes Feld einen passenden Getter/Setter vor.

Auric


Das würde ich nicht unterschreiben...

Sinn macht es in Sprachen die dies von Haus aus mitbrigen (zB get/set in c#) in PHP eine reine Ansammlung an Get/Set Funktionen zu schreiben die nur lesen und schreiben sollte man tunlich vermeiden und auf die magic _get und _set zurückgreifen!

Autor:  Auric [ Do 03 Jun, 2010 02:51 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Damit wäre aber die Möglichkeit der Unterscheidung des Scopes (public, protected, private) ausgehebelt. Zudem hat auch die Maxime "guter Code lässt sich einfach erweitern" ihre Daseinsberechtigung: Will man von der Klasse ableiten und braucht getter/setter die mehr als nur simples set/get anstellen, ist man mit den magic methods gleich wieder gekniffen.
Sicher hat jedes vorgehen je nach Fall seine Vorteile - aber das muss hier ja nun nicht ausarten.

Auric

Autor:  Bathory [ Do 03 Jun, 2010 20:45 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Auric hat geschrieben:
Damit wäre aber die Möglichkeit der Unterscheidung des Scopes (public, protected, private) ausgehebelt. Zudem hat auch die Maxime "guter Code lässt sich einfach erweitern" ihre Daseinsberechtigung: Will man von der Klasse ableiten und braucht getter/setter die mehr als nur simples set/get anstellen, ist man mit den magic methods gleich wieder gekniffen.
Sicher hat jedes vorgehen je nach Fall seine Vorteile - aber das muss hier ja nun nicht ausarten.

Auric


Die magic setter/getter haben keinen Einfluß auf die Sichtbarkeit von Variabeln.
Da man in den magics ja entscheidet wird ob und wie eine nicht real existente variable verarbeitet wird.

Wie gesagt, an dem Tag wo PHP native get/set für Vars hat, dann wird es Sinn machen.

In deiner Klasse macht es so wie ist aber nun mal kein Sinn, ausser Ressourcen zu verschwenden.

Autor:  Eliwood [ Fr 04 Jun, 2010 08:13 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Es dürfte mal intressant sein, zu testen, welche Methode die bessere ist... Bei meinen eigenen, kurzen Stichproben (n = 8 bei 10'000 Durchläufen auf Windows mit PHP 5.3.0), habe ich keine grossartigen Unterschiede erhalten:
  • Mit __get/__set im Durchschnitt 0.02935s bei Abweichung von 10.4%
  • Mit getName() und setName() im Durchschnitt 0.02772s mit einer Abweichung von 9.3%
  • Mit weder-noch als Blindprobe mit im Durchschnitt 0.0007605s mit einer Abweichung von 1.8%

Es ist eine Tendenz erkennbar, aber da sowieso keine 10'000 Aufrufe dieser Methode stattfinden dürften, macht es keinen Unterschied

Die einzige Ressourcenverschwendung, die ich bei Auric sehe, ist Arbeitsspeicher und Interpretierzeit, die vermutlich grösser ist, weil es mehr zu interpretieren gibt, sofern die Methoden alle so klein sind - mit opcode-Cache spielt das aber keine Rolle mehr.

Persönlich ziehe ich Aurics Variante vor. Aus zwei Gründen: Der Code ist erstens leichter nachvollziehbar, als wenn im Hintergrund ganz "magisch" etwas passiert. Und zweitens ist der Code leichter erweiterbar, wenn man kurze get/set auf längere ändern will.

Autor:  Ruffy [ Sa 02 Apr, 2011 13:35 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Hallo,
sorry das ich das Thema wieder aufroll, aber ich hab ein paar Probleme.

Und zwar hab ich das Script eingebaut, bekomm jedoch viele Fehler dass die Mehtoden veraltet sind. Z.B. wird protected $variable; angemeckert. Sowas konnt ich beheben, kein Problem.
Wo ich nicht weiterkomm ist diese Zeile hier:

PHP:
const GS_COST_PREFIX = 'NPC_COST_';


Und diese Fehlermeldung spuckt er genau aus:

Zitat:
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/htdocs/siziliir/lib/npc.class.php on line 29


Ich hoffe ihr könnt mir helfen und schonmal vielen Dank für eure Bemühungen.

MfG Ruffy

Autor:  Harthas [ Sa 02 Apr, 2011 14:31 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Läuft auf deinem Server zufälligerweise noch PHP4?

Autor:  Ruffy [ Sa 02 Apr, 2011 16:08 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Eigentlich nicht. Hab die Anleitung hier verwendet um auf PHP5 umzustellen und auch in den Admineinstellungen vom Webspace PHP5 eingestellt.

Autor:  Jack [ Sa 02 Apr, 2011 23:21 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Das kannst du ganz leicht überprüfen. erstelle eien datei namens phpinfo.php mit folgendem inhalt

$this->bbcode_second_pass_code('', '<?php
phpinfo();
?>')

und lad sie hoch. Und geb dann in deine Adresszeile

http://dein-url.de/phpinfo.php

ein und du siehst welche PHP-Version du hast (falls das Umstellen nicht geklappt hat)

Autor:  Ruffy [ So 03 Apr, 2011 01:24 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Ok danke hab ich gemacht. Und die Umstellung hat nicht geklappt es ist PHP 4.4.7 drauf -__-

Autor:  Harthas [ So 03 Apr, 2011 07:27 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Die Änderungen hier im Forum für PHP 5 sind nur dafür da, LoGD anzupassen, wenn PHP 5 auf einem Server installiert ist ;)

Aber klär doch mal mit deinem Hoster ab, ob nicht ein update auf PHP 5 möglich wäre. Die 4er-Version ist inzwischen ja quasi scho ein Verbrechen.

Autor:  Jack [ So 03 Apr, 2011 11:41 ]
Betreff des Beitrags:  Re: NPC-Chatsystem auf PHP5-OOP

Harthas hat geschrieben:
Die Änderungen hier im Forum für PHP 5 sind nur dafür da, LoGD anzupassen, wenn PHP 5 auf einem Server installiert ist ;)


Er sagte ja:

Ruffy hat geschrieben:
[...] und auch in den Admineinstellungen vom Webspace PHP5 eingestellt.

Seite 3 von 4 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/