tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
4328
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Pherseus Pherseus ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    146
    Hi,

    kennt jemand ein gutes script oder tut, das fast komplett mit OOP in PHP5 arbeitet?
     

  2. #2
    Avatar von bled
    bled bled ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    B-W
    Beiträge
    246
    http://www.tutorials.de/tutorials166160.html

    Also ein bischen Suchen hätte da echt nicht geschaded.
    Dieses Thema wurde meines Erachtens wirklich schon oft genug durchgekaut...
     

  3. #3
    Pherseus Pherseus ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    146
    hmm, okay das ist eine erkläreung wie Klassen funktionieren. Das ist mir im großen und ganzen auch durchaus klar.

    Jedoch suche ich ein komplettes Script, meinetwegen ein Portal, Gästebuch Newssystem, was auch immer, welches fast nur mit Klassen arbeitet.

    Im Prinzip suche ich etwas das eine Haupklasse hat, in dem dann die einzelnen Unterklassen gestartet werden. Irgendwie sowas.

    Halt ein Projekt, welches fast komplett mit Klassen arbeitet.

    Ein Script welches einen Db klasse z.B. verwendet, habe ich schon geschrieben das ist nicht das Problem. Nur habe ich mal gehört, dass wenn man wirklich OOP macht, dass dann quasie alles nur noch mit Klassen gemacht wird und es keinen Code mehr ohne Klassen gibt. Sowas suche ich halt, da ich mir derzeit nicht vorstellen kann wie sowas aussieht/aussehn könnte.Ich hoffe das ist verständlich.
     

  4. #4
    EaStErDoM EaStErDoM ist offline Mitglied
    Registriert seit
    Sep 2004
    Ort
    Klagenfurt (Kärnten(Österreich))
    Beiträge
    24
    Also diese Datenbankklasse ist echt alles andere als ein gutes Beispiel. Der Quelltext ist furchtbar formatiert - hält nicht einmal so etwas ordinäres wie den Syntax-Standard ein. Außerdem halte ich es schon für sehr wenig mitgedacht mysql_fetch_array zu verwenden hier wäre wirklich mysql_fetch_object angebracht. Obwohl beides eigentlich eher Geschmacksache ist.

    Mit OOP in PHP5 hat die Klasse aber nicht das Geringste zu tun.

    Soviel zu "ein bisschen suchen hätt schon gereicht".

    Dieser Beitrag ist in den Google-Suchergebnissen nach "OOP in PHP5" ganz oben dabei. Sehr enttäuschend. Vielleicht kann hier doch noch jemand ein paar gute Quellen nennen für Leute die wie ich hier stranden.

    Und dem/der Herrn/Frau bled rate ich Beiträge mit ein bisschen mehr Hirn zu lesen, die Antwort is absolut unbrauchbar.
     

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Mit einem komplett OOP-basierten Projekt kann ich nicht dienen, aber mit ein paar Klassen, welche zufaellig auch das PHP5-OOP nutzen (wenngleich ich auch Backports zu PHP4 erstellt habe). Ein paar der Klassen gibt es hier auch als Tutorials.
    All meine Klassen sind unter http://php-classes.sourceforge.net zu finden.
    Folgende Klassen hab ich auch hier als Tutorials hinterlegt (wobei nicht zwingend die jeweils aktuellste Version hier verfuegbar sein muss):
    Ein Projekt vollstaendig OOP-basiert ist meiner Meinung nach auch Overkill. Es gibt einfach Sachen wo eine simple Funktion einfacher und schneller ist als extra ein Objekt zu instanziieren.
    Meine Website arbeitet auch relativ viel mit Klassen, und es wird auch immer mehr; als naechstes steht an meine Klasse SQLSession einzubinden um die Session-Verwaltung in ein Objekt und in die Datenbank zu verfrachten.
    Dennoch habe ich eine functions.php die eine Anzahl sinnvoller Funktionen enthaelt die mir das Leben einfacher machen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    EaStErDoM EaStErDoM ist offline Mitglied
    Registriert seit
    Sep 2004
    Ort
    Klagenfurt (Kärnten(Österreich))
    Beiträge
    24
    Gänzlich Klassen is indem Sinn nicht wirklich sinnvoll, da gib ich recht, weil das Verwenden der Klassen "im freien Raum" praktisch is, nur für die Verwendung wieder Klassen zu schaffen, halte ich für hinderlich.

    Was OOP5 ausmacht sind vor allem die eingeführten public, private und protected Sachen und die erweiterten Möglichkeiten die diese (angeblich) auftun. Ich persönlich werd auch nie __constructor verwenden, weil ichs hässlich find, und Destruktoren find ich total überflüssig. Und das meine Methoden alle public sind hat mir bisher auch nie geschadet. Ich such irgendwie den Sinn in diesen "Neuerungen".

    PS: Eine deiner Klassen kannich gut für eines meiner Projekte brauchen http://sentaqor.berlios.de/ - wie man manchmal auf der Suche nach etwas so schnell ganz was Anderes kriegt, dass man braucht
     

  7. #7
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Zitat Zitat von EaStErDoM Beitrag anzeigen
    Was OOP5 ausmacht sind vor allem die eingeführten public, private und protected Sachen und die erweiterten Möglichkeiten die diese (angeblich) auftun.
    Auch zu den Unterschieden von OOP in PHP4 und PHP5 hab ich ein kleines Tutorial geschrieben. Das geht aber hauptsaechlich in die Richtung Backporting von PHP5-Klassen nach PHP4.

    Zitat Zitat von EaStErDoM Beitrag anzeigen
    Ich persönlich werd auch nie __constructor verwenden, weil ichs hässlich find, und Destruktoren find ich total überflüssig.
    __construct() und __destruct() find ich eigentlich garnicht so schlimm. Vor allem weiss man gleich womit man zu tun hat.
    Der Destruktor kann manchmal recht sinnvoll sein.
    Meine FTP-Klasse verbindet zum Server im Konstruktor und schliesst die Verbindung im Destruktor. Aehnlich sieht es mit meiner SQL-Klasse aus.
    Im Destruktor kann man eben noch letzte Massnahmen ergreifen um alles sinnvoll zu beenden. Dies muss man dann eben bei der Programmierung nicht mehr machen weil es Teil der Klasse ist, was meiner Meinung nach sinnvoll ist, denn die Verwaltung der Verbindung zum Server (ob nun FTP oder SQL ist dabei ja egal) ist Aufgabe der Klasse.

    Zitat Zitat von EaStErDoM Beitrag anzeigen
    Und das meine Methoden alle public sind hat mir bisher auch nie geschadet. Ich such irgendwie den Sinn in diesen "Neuerungen".
    Sicherlich schadet es nicht, vor allem wenn Du der alleinige Nutzer bist. Ich setze aber gern Methoden auf privat die von aussen nicht genutzt werden sollen/brauchen um eben gleich zu signalisieren dass diese nur fuer den internen Ablauf von Bedeutung ist.

    Zitat Zitat von EaStErDoM Beitrag anzeigen
    PS: Eine deiner Klassen kannich gut für eines meiner Projekte brauchen http://sentaqor.berlios.de/ - wie man manchmal auf der Suche nach etwas so schnell ganz was Anderes kriegt, dass man braucht
    Und welche waere das?
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  8. #8
    EaStErDoM EaStErDoM ist offline Mitglied
    Registriert seit
    Sep 2004
    Ort
    Klagenfurt (Kärnten(Österreich))
    Beiträge
    24
    War falscher Alarm, dachte die RSS Klasse wäre zum auswerten von Feeds, da sind aber nur drei Methoden drin zum Feed erstellen. Habich schneller reagiert als gelesen

    Hm ja sinvoll beenden, bei einer Datenbank macht das sicher Sinn.

    Hab übrigens eine Erklärung gefunden die scheinbar alles enthält: http://www.dynamicwebpages.de/php/language.oop5.php
    Gerade bei den komplizierteren Sachen is sie aber zu dünn - wie alles was ich in Bezug zu Interfaces, abstrakten Klassen, Überladung und Iteration find.

    Aber diese Doku zeigt mal auf wieviel da wirklich neu is - puh!
     

  9. #9
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Das sieht mir aus wie der Originaltext aus dem PHP-Manual auf php.net.
    Das Manual find ich uebrigens echt gut. Dort findet man eigentlich alles was man so braucht um mit PHP arbeiten zu koennen.

    Ich empfehle aber, bei entsprechenden Kenntnissen der englischen Sprache, das englische Original, denn die deutsche Uebersetzung scheint nicht immer auf dem aktuellsten Stand zu sein.
    So gab es (ist mein ich mittlerweile behoben) z.B. Unterschiede bei der Seite zu md5(). Seit PHP5 hat md5() einen zweiten, optionalen Parameter erhalten. In der englischen Version fand man diese Info auch, auf der deutschen Seite hingegen wurde die Existenz dieses Parameter vollkommen verschwiegen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  10. #10
    EaStErDoM EaStErDoM ist offline Mitglied
    Registriert seit
    Sep 2004
    Ort
    Klagenfurt (Kärnten(Österreich))
    Beiträge
    24
    Du das is genau der Grund warum ich nicht wusste, dass das die Standarddoku ist - ich verwend nämlich nur die englische, eben weil ich genau dieselbe Erfahrung gemacht habe: in der deutschsprachigen fehlen manchmal Sachen.

    Ich muss zugeben suchen tu ich darin auch sehr selten, ich programmiere PHP seit mittlerweile 5 Jahren und kenn was ich brauch zumeist schon und tipp dann einfach in die Adresszeile sowas wie php.net/preg_split und so. Komm mir jetzt schon ein bisschen dumm vor, dass ich nicht daran gedacht habe mir die DE-Doku in Sachen OOP5 vorzunehmen - aber wie du siehst hat sie ja mich gefunden
     

  11. #11
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Diese Seite hat mir auch manchmal geholfen: phpBar.de
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  12. #12
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Mir entzieht sich irgendwie der Sinn, warum man ein komplett auf PHP5-basierendes Projekt schon vorgesetzt bekommen möchte - Der Lerneffekt wäre irgendwie gleich null.
    In Sachen Tutorials finde ich sogar die PHP-Doku sehr aufschlussreich, und wenn mal doch ein Wort unklar ist, wie zB Interface oder Überladungen, kann man auch gerne mal schauen, was C++ Hilfen dazu meinen.

    Und damit ich auch noch mit einem Link aufwarten kann, empfehle ich mein Lieblingsframework (made by Zend) - Baut vollständig auf PHP5 auf, ist aber kein vorgefertigtes Projekt. Besonders die View-Klasse hat es mir irgendwie angetan.

    Zur Geschichte "public" vs "protected" vs "private": Ich weiß nicht, wie viele Leute das Wort "objektorientiert" ernst nehmen, die alle Eigenschaften eines Objekts publik maskieren, nur weil sie denken, dass eh nur sie darauf Zugriff hätte Klar ist es einfacher, die Eigenschaften immer direkt, auch von außen, anzuwählen, aber was ist denn, wenn man nun wirklich mal ein paar Änderungen vornimmt, die man durch eine Set- oder Get-Methode viel einfacher und produktiver hätte umsetzen können?
    Mal abgesehen davon, dass es im Falle einer einzigen Anwendung des Objekts von einem einzigen Anwender keinen Unterschied macht, ob public oder private, habe ich schon so oft Klassen geschrieben, deren Eigenschaften in einem Resultat enden müssen - Und da überprüfe ich lieber gleich bei der Eingabe, ob diese auch korrekt ist, und forme mir diese so, wie ich es möchte, als das dann final nochmal hin- und herzuschrauben. Einfaches Beispiel: In meiner FileUpload Klasse kann ich ein Ziel-Verzeichnis bestimmen, welches ich über eine passende set-Methode erstmal auf Existenz überprüfe. Das verschafft mir die Möglichkeit, es entweder noch zu erstellen oder eine Exception zu werfen oder eine andere Warnung auszugeben. Gleiches gilt für das Setzen des Dateinamen: Über ein preg_match wird überprüft, ob der gewünschte Dateiname valide ist, ansonsten wird wieder mit Steinen geworfen.
    Würde ich das alles von außen über zB $upload->_directory = '/dieses/verzeichnis/existiert/nicht/ setzen, hätte ich beim endgültigen Upload-Befehl einige Probleme, die über den korrekteren Einsatz von OOP umgangen werden können.
     

  13. #13
    EaStErDoM EaStErDoM ist offline Mitglied
    Registriert seit
    Sep 2004
    Ort
    Klagenfurt (Kärnten(Österreich))
    Beiträge
    24
    Ja von dem ursprünglichem Eröffner des Beitrages der das wollte sind wir ja schon thematisch ziemlich abgegangen, ich lerne sowieso ausschließlich praktisch, also kapier ichs meist erst wirklich, wennichs wirklich brauch.

    Und was man anderen zugänglich macht und was nicht, muss man sich letztendlich sowieso untereinander ausreden, weil mit den Anforderungen an eine Klasse kommen ihre Methoden.

    Und wie du darauf kommst ich würde die Eigenschaften von außen anwählen weiß ich nicht. Ich bin absolut kein Fan davon Variabeln einer Instanz extern direkt zu setzen, ich finde eine gute Klasse liefert für das was sie kann ausdrücklich Methoden die das erledigen.
     

  14. #14
    Avatar von tobias_petry
    tobias_petry tobias_petry ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    284
    Zitat Zitat von Pherseus Beitrag anzeigen
    Nur habe ich mal gehört, dass wenn man wirklich OOP macht, dass dann quasie alles nur noch mit Klassen gemacht wird und es keinen Code mehr ohne Klassen gibt. Sowas suche ich halt, da ich mir derzeit nicht vorstellen kann wie sowas aussieht/aussehn könnte.Ich hoffe das ist verständlich.
    schau dir mal das Zend-Framework mit seinem FrontController und schau mal ob du Beispiel-Anwendungen findest, da hast du wirklich nur noch Klassen, einfach 1a.
    wird sich höchstwahrscheinlich auch als Quasi-Standard etablieren und viele Pear-Packages ablösen, zieht ja trotz seinem geringen Alter schon sehr große Kreise.
     
    "If you give someone a program, you will frustrate them for a day
    but if you teach them how to program, you will frustrate them for a lifetime."

  15. #15
    Sarah Schüßler Sarah Schüßler ist offline Mitglied Silber
    Registriert seit
    Oct 2007
    Beiträge
    55
    Hi!
    Ich soll PHP-Skripte überprüfen bzw. "auf PHP5 updaten"(unter Apache und MySQL). Da ich noch ein relativer Anfänger bin: hat jemand einen Tipp wie ich da am besten vorgehe Also wie/vorher ich seh was ich ändern muss, was ich ändern kann, etc(was sind must have und was can have).. Onlinemanuals durchforsten und mich a la "try- and- error"-Prinzip probieren?
     

Ähnliche Themen

  1. PHP5 und XML
    Von DirkHo im Forum PHP
    Antworten: 0
    Letzter Beitrag: 05.10.10, 00:01
  2. OOP und PHP5
    Von deostift im Forum PHP
    Antworten: 4
    Letzter Beitrag: 04.07.08, 18:00
  3. php5 und php5&fcgid gleichzeitig laufen lassen
    Von fanste im Forum Hosting & Webserver
    Antworten: 5
    Letzter Beitrag: 20.04.07, 18:22
  4. Php5
    Von time-master im Forum PHP
    Antworten: 2
    Letzter Beitrag: 26.05.05, 08:08
  5. Php5
    Von jaylibII im Forum PHP
    Antworten: 11
    Letzter Beitrag: 15.03.05, 14:59