bulletin board code parser gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bulletin board code parser gesucht

    hi,

    kennt jemand einen stabilen bb parser für php5.1+ des sich im oo-modus, also innerhalb von klassen, betreiben lässt?

    pear's html_bbcodeparser ist bekannt. der lässt sich allerdings nicht ohne umschreiben des quelltextes direkt nutzen (updates wären umständlich). man muss beispielsweise sämtliche "var" deklarationen in "public/private/protected" umwandeln und es gibt probleme mit call-by-reference rückgaben:

    Strict Standards: Assigning the return value of new by reference is deprecated in [...]\PEAR.php on line 563

    Strict Standards: Assigning the return value of new by reference is deprecated in [...]\PEAR.php on line 566
    wenn mir jemand sagen könnte, wie man diesen fehler behebt, wär ich dankbar. das paket gefällt mir von der funktionsweise her sehr gut.

    AdvancedBBCode ist zu wenig konfigurierbar und bietet für meinen geschmack sogar zuviel an funktionalität. die darstellung von zitaten ist in der standardversion fehlerhaft unter IE6.

    StringParser_BBCode gefällt mir auch gut, allerdings nutzt die klasse callbackfunktionen (convertlinebreaks, bbcode_stripcontents, do_bbcode_url, ...), die sich nicht so ohne weiteres in eine klasse integrieren lassen.

    vielleicht hat jemand eine empfehlung für einen (idealerweise stackbasierten) bb code parser, der sich in einer OOP umgebung einsetzen lässt.

    danke.

  • #2
    Re: bulletin board code parser gesucht

    Original geschrieben von php_rookie
    pear's html_bbcodeparser ist bekannt. der lässt sich allerdings nicht ohne umschreiben des quelltextes direkt nutzen (updates wären umständlich). man muss beispielsweise sämtliche "var" deklarationen in "public/private/protected" umwandeln und es gibt probleme mit call-by-reference rückgaben:
    var ist ab den aktuellen Versionen nicht mehr deprecated, somit braucht man das nicht mehr umschreiben und der andere beschriebene Fehler ... das sind zwei Zeilen, die kannst du entweder bei jedem Update eben korrekt umschreiben, oder du ignorierst die Fehler einfach und stellst display_errors auf off, wie man es in der Produktion eh haben sollte

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      nein, es sind nicht nur zwei zeilen. & kommt mehrfach im code vor und AFAIK ist call-by-falue die defaulteinstellung bei PHP5. die oberen zweil zeilen werden als deprecated eingestuft und es wird eine entsprechende meldung ausgegeben. diese scheinen nur aus, wenn ich errorreporting auf E_STRICT stelle. unter E_ALL hätte ich sie nicht einmal bemerkt.

      da mehrmals im code call-by-reference mit & verwendet wurde ist es leider sehr mühsam alles auszubessern. abgesehen davon wüsste ich nicht einmal WIE.

      ignorieren kann ich die fehlermeldungen nicht, da das script innerhalb von classen in dieser form nicht wie erwartet funktioniert. außerhalb von klassen arbeitet es tadellos.

      Kommentar


      • #4
        Re: bulletin board code parser gesucht

        Original geschrieben von php_rookie
        StringParser_BBCode gefällt mir auch gut, allerdings nutzt die klasse callbackfunktionen (convertlinebreaks, bbcode_stripcontents, do_bbcode_url, ...), die sich nicht so ohne weiteres in eine klasse integrieren lassen.
        Doch, natürlich tun sie.

        Übergebe als Parameter für die callback-Funktion statt des Funktionsnamens ein Array, welches als ersten Parameter die Referenz auf das Objekt enthält (also bspw. &$this, bzw. $this müsste unter PHP 5 auch reichen, da wie du schon sagtest da sowieso by reference übergeben wird), und als zweites den Methodennamen.


        Allerdings wirst du damit auch noch weiterhin das Problem haben, unter E_STRICT einiges an Meldungen zu bekommen - Christian möchte halt mit der Klasse weiterhin PHP 4-kompatibel bleiben.
        Ob du da selber Hand anlegst, und alle var-Deklarationen anpasst - oder lieber von E_STRICT auf E_ALL gehst, bleibt dir überlassen.

        Die Klasse ist auf jeden Fall genial, und auch im OOP-Umfeld gut einsetzbar.
        Unter PHP 5 kann man dann noch weitere Feinheiten reinbringen, bspw. per singleton-Pattern multiple Instanzierungen verhindern, da man ja (idR.) nur eine braucht, etc.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Original geschrieben von wahsaga
          Allerdings wirst du damit auch noch weiterhin das Problem haben, unter E_STRICT einiges an Meldungen zu bekommen - Christian möchte halt mit der Klasse weiterhin PHP 4-kompatibel bleiben.
          Ob du da selber Hand anlegst, und alle var-Deklarationen anpasst - oder lieber von E_STRICT auf E_ALL gehst, bleibt dir überlassen.
          wie ich schon sagte, var ist nicht mehr deprecated. Gerade nachgeguckt, seit Version 5.1.3.
          Ist ab da ein Synonym für public, weil die sich überlegt haben, dass es im Endeffekt nicht weiter schlimm ist (die Meinungen gehen da auseinander... zumindest meine Meinung mit deren, aber egal)

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Alle var in public zu verwandeln macht der editor mit replace-all.
            Als php-Editor ist Crimson oder besser zu empfehlen.

            Alle new Stellen zu finden und anzupassen könnte ähnlich gehen.
            Die meisten call-by-reference kann man doch stehen lassen!

            Dann braucht es noch eine Dokumentation wie es angepasst wurde, damit es bei
            updates leicht wiederholt werden kann. Es braucht ja sowieso eine kleine Dokumentation zum ganzen für Installation, Pfade, Benützernamen+Passworte, Sicherungen und dergleichen.

            Dann sieht es schon nicht mehr nach viel Arbeit aus.

            Kommentar

            Lädt...
            X