php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 11.01.2011, 17:03  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 724
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Soweit ich weiß bekomme ich anders nicht die Fremdschlüsselbeziehungen.
Für MySQL gibts es diese INFO in information_schema.KEY_COLUMN_USAGE
hts ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2011, 12:33  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.020
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Wo kommt die DDL denn her? Bei mir mache ich es andersrum (forward engineering). Mein Modell liegt in XML Dateien, die vom ORM gelesen werden. Falls das Schema in der DB nicht existiert generiere ich die DDL-Statements und lege sie an. Ist einfacher

Wenn die DDL-Statements aber bereits gegeben sind, bleibt nur das Parsen oder das Auslesen des Schemas aus der DB. Ich würde trotzdem zu letzterem tendieren Aber wo du schon mal angefangen hast
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 13.01.2011, 13:52  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Die DDL kommt aus der Datenbank, mit SHOW CREATE TABLE. Danke hts übrigens für die Info. Ich bin halt nicht sicher ob jeder Zugriff auf die Tabelle hat. Deshalb versuche ich es gerade so. Im übrigen machts grad voll Spass, wollt schon immer nen Parser bauen Und es klappt auch, nur dass ich mit optionalen Treeelementen noch nicht optimal umgehen kann. Aber von diesem "kleinen" Problem abgesehen, kann ich CREATE TABLE-Statements parsen. Für alle neuen DDLs (ALTER TABLE usw.) brauch ich nur noch den ParseTree zu erzeugen. Verschachtelungen kann er auch lesen, also z.B. Sub-SELECTs gehen theoretisch auch. Ich kann ja mal eine Version in den nächsten Tagen online stellen. Danach hab ich auch schon des nächste Einsatzgebiet für den Parser: Ich will deutsche Zeitangaben parsen, in etwa wie strtotime() nur auf deutsch. Bräuchte das als Feature für meinen Kalender, ist etwas mühselig Termine (vor allem Wiederholungstermine) anzugeben.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 15.01.2011, 09:05  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.020
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Wie definierst du denn deinen Syntax-Tree? ASN1?
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 15.01.2011, 14:04  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

ASN1? Habe ich noch nichts von gehört und habs auch irgendwann aufgegeben ne sinnvolle Anleitung im Netz zu finden. Hab mich dunkel an die Vorlesung zum Parserbau erinnert und das Problem sitzt wie immer zwischen Stuhl und Keyboard. Soviele K***fehler weil ich den Parserbaum falsch aufgebaut habe. Ich denk dieses WE krieg ich ne fertige Vorabversion für CREATE-TABLE-Statements hin (hoffentlich) und stells mal hier vor.

Edit: hab mir mal den Wikiartikel angeschaut. Also mein Baum sieht so aus, dass ich Schlüssel/Wertepaare (ohne Objekte, nur Arrays, der Performance wegen) habe. Der Schlüssel stellt die Art der Verarbeitung da, der Wert eben das Subjekt bzw. den weiteren Parserbaum. Als Schlüssel habe ich
  • P_PARSER: lädt einen Parser, könnte z.B. für HTML mit Inline-JavaScript sinnvoll sein
  • P_LISTING: nach ASN1 vlt. SEQUENCE ?
  • P_TOKEN: Vergleicht Quellcodetoken mit Parserbaumtoken
  • P_OPTIONAL: macht den Parserbaum optional
  • P_ALIAS: lädt einen Parserbaumabschnitt nach
  • P_OR: prüft ob einer der Parserbaumabschnitte positiv ist
  • P_LOOP: Schleife von Befehlen, die mindestens einmal ausgeführt werden können, werd ich ersetzen durch ein P_REPEAT, für das man genaue, maximale, minimale oder unbegrenzte Wiederholung festlegen kann
  • P_DEBUG: um an einer bestimmten Stelle im Parserbaum eine Funktion auszuführen, meistens nur var_dump() für die Ausgabe

Muss zugeben ich weiß nicht, wie das in ASN1 aussehen würde, oder ob das überhaupt geht. Mir fehlt da wirklich die Lektüre zu. Evtl. geh ich mal in die Bücherei.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
delphi html parser bauen, lexer.js, lexer zeitangaben, php lexer, js parser bauen, lexer mysql, lexer php, string parser, inline javascript sinnvoll, http://www.php.de/software-design/75869-stringparser-bauen-wie-setz-ich-den-lexer-um-2.html, xml lexer selber bauen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum