PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gute php Klassen (class)


doudie
09.12.2002, 17:24:40
ich habe schon einige gefunden, und mir auch schon ein paar selber gemacht, aber gibts da nicht ne möglichts komlette Sammlung an wirklich gute php-casses ?!???

Ihr wisst schon, sowas wie: mailckeck, newpass, passcheck, sendmail, formtypes, readirgendwas, mysql-klassen, ...etc...

Bsp:
.... was Klassen Sind ???? ... na z. B.: eine Funktion zum Mail-Prüfen die immer wieder in verschiedenen Seiten includet wird ... also "Wiederverwendbar" .... und zu diesem Bsp will ich halt "alles" Testen und nicht nur auf @ oder so'n Witz geprüft wird?!

Ich mill mir eine Sammlung von Standard-Klassen anlegen...

habt Ihr Vorschlage?! THX!

MiH
10.12.2002, 12:16:00
http://www.phpclasses.org/mirrors.html?page=%2Findex.html

Matt
10.12.2002, 18:15:59
oooooouuuuuhhhhh.
also freund, du hast da denn sinn von klassen nicht ganz verstanden.
Klassen sind NICHT dazu da, oft verwendete dinge an einem ort zu zentralisieren, das kannst du mit funktionen besser.
Klassen sind dazu gedacht, komplexe abläufe zu vereinfachen, beispielsweise eine Klasse, die ein Protokoll implementiert:
um mails von einem POP3 Server abzufragen, musst du zuerst einmal eine verbindung zu diesem aufbauen, diese muss bestehen bleiben, solange du was von ihm willst, das geht über den konstruktor, der handler für die connection wird in der klasse gespeichert. Weitere methoden wären beispielsweise
getmails
deletemails
POPcommand
closeconnection

Somit kannst du mit drei zeilen deine neuen mails abfragen, ohne eine ahnung davon zu haben, was in dem POP Protokoll so vor sich geht.

Klassen vereinfachen, und wenn man das dahinter verstehen will, sollte man sie selbst schreiben ;)

Ben20
10.12.2002, 18:32:05
Kann man sowas nicht auch mit Funktionen machen?

doudie
10.12.2002, 20:35:49
@Matt ... naja. sowas meine ich doch!
>> Klassen sind dazu gedacht, komplexe abläufe zu vereinfachen

Ich mach mir die Standard-Abläufe in verschiedene inc-files und kann über ein einziges config-file alles anpassen und auf jeder domain dann die Sammlung wieder verwenden ... oder was ist das dann? .... die meisten Elemente hab ich auch unter dem Begriff "Klasse" gefunden und heruntergeladen..... so Codeschnipsel und Funktionen. Also entweder Lügen die alle und ich bin total doof oder ich meinte doch zumindest sowas ähnliches wie Klassen?! oder ned?!

@Ben20 .... jo, also ich hab hauptsächlich Funktionen (s.o.), muss aber nicht sein...

Progman
10.12.2002, 21:38:43
also eine Klasse, die eine zufallspasswd erstellt braucht man nicht. Da reicht eine eigene Funktion. Eine Klasse die eine Emailadresse auf gültigkeit prüft braucht man auch nicht, das geht auch mit einer Funktion. Aber einer Mail-Klasse, die macht sinn. Genauso wie eine MySQL-Query-Klasse und IRC-Klasse. Man darf Klassen nicht als ein Sammelkontainer für Funktionen sehen. OOP ist etwas anders...

doudie
11.12.2002, 14:01:16
achso ...... naja, dann suche ich halt schöne Funktionen die viel können und leicht bzw. garnicht anzupassen sind ......

OOP?

Progman
11.12.2002, 14:51:49
OOP = Objekt Orientiertes Programmieren = Die Technik Klassen zu benutzen.

www.hotscripts.com

Matt
11.12.2002, 22:14:05
an Ben20
ja natürlich kannst du das auch mit Funktionen machen, aber dann hast du handler und handler sind etwas TOTAL mieses, weil du mit einem handler alleine nichts vernünftiges anstellen kannst.
beispielsweise für eine Datenbank verbindung hast du den mySQL handler, zuerst
machst du mysql_connect
dann mysql_select_db
dann mysql_query
dann mysql_fetch_row
und am schluss noch die verbindung trennen. Du kannst das allles allerdings wahnsinnig auf deine bedürfnisse anpassen, weil in einem webprojekt hast du immer die gleiche db und auch die gleichen grundeinstellungen.
einer klasse kannst du sagen, was sie mit der datenbankverbindung tun soll, weil die in der klasse gespeichert wird, und von dieser verwaltet wird, was das ganze viel einfacher macht.
Das ist Objektorientierte Programmierung, einzelne Aufgaben werden durch Klassen stark vereinfacht, das macht auch das programmieren von Spielen wie Doom 3 oder Quake 3 möglich: wenn man das ganze in genug kleine unterobjekte aufteilt, besteht der hauptprogrammablauf nur noch aus

taste gedrückt? Neue position? JA --> sichtfeld anpassen (wie, weiss die Grafik Engine selbst, man muss ihr nur die position geben), nein? --> nichts tun.
schuss? ja: erstelle neuen schuss!
alle aktiven schüsse: lasse sie sich weiterbewegen (die eigenschaft, wohin und wie schnell wissen die schüsse selbst)
Hat ein schuss wen getroffen? Wenn ja, finde raus, wen und sage dem objekt, dass es weniger hitpoints hat)
sind bots da? Sehen sie dich? ja --> schau ob sie auf dich schießen können und tu es, wenn sie nicht gerade nachladen nein? lass sie herumsuchen (bots finden selbstständig einen weg)
hast du mehr als 20 Frags?
Du hast gewonnen!

Und DAS IST QUAKE 3!
Es gibts klassen für Bots, es gibt klassen für die 3D Welt und klassen für die Player und Klassen für die Schüsse, man sagt den klassen nur, was sie tun sollen (sich einfach bewegen für waffen; in die und die richtung bewegen für player, die welt aus der position zeigen für die Grafikengine)
Das ganze hat noch den vorteil, dass man somit solche spiele logisch durchplanen kann, indem man die einzelteile als objekte sieht, die eigenschaften haben (eben vorwärtsfliegen für Waffen zum Beispiel) Wenn die objekte gut geplant sind, ist die realisierung von was großem auf einmal möglich.
Aber wenn man sowas nicht macht, und einfach mit tippen anfängt: Wie würdet Ihr Quake programmieren?

Ben20
12.12.2002, 09:15:18
Das Prinzip von Klassen kenn' ich - hab mal ein wenig Java geprogt - nur ist mir bisher noch nie was untergekommen, wozu ich in PHP OOP gebraucht hätte.

Progman
12.12.2002, 11:28:32
da gab es neulich eine Diskussion in #php::QuakeNet, ich gegen den Rest. Ich war der Meinung das OOP in PHP nicht so wichtig ist aber alle anderen haben gesagt, dass da eine große nachfrage besteht. Und deshalb wird OOP in PHP5 sehr weit ausgebaut sein.

Ich hab aber auch schon mit Klassen gearbeitet


$Admin = new Admin($id);
if($Admin->getRight('News'))
{
tu_was();
}
else
{
echo("Keine Rechte");
}


Ist besser als immer ein mysql_query zu senden, das macht für mit die Klasse Admin und stellt auch diverse Methoden zu verfügung wie $Admin->setRight('foobar', 0);