Clansuite Community Forum


 
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
 
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Umstieg auf Doctrine2  (Gelesen 728 mal)
0 Mitglieder und 2 Gäste betrachten dieses Thema.
Jens-A. Koch
Maintainer
*
Offline Offline

Beiträge: 574

One-Man Team


« am: Januar 21, 2011, 03:54:28 »

Guten Tag,

ihr habt möglicherweise die letzten Änderungen mitverfolgt und somit hoffentlich mitbekommen,
dass ich das System auf Doctrine2 umgestellt habe.
Hierfür wurden einige Dinge gänzlich neu geschrieben, so bspw. die Doctrine2.core Klasse,
die der Initialisierung dient. Modifiziert wurden auch das Datagrid, die Models,
die Schema-Beschreibungen und natürliche Queries.

Die Umwandlung von D1 zu D2 ist nicht abgeschlossen.
Bei den Query-Umwandlung könnt ihr mir gerne unter die Arme greifen.
Im News-Modul finden sich Beispiele für Queries mit D2.
Die alten D1-Records müssen noch in D2-Objekte mit Annotationen umgewandelt werden und
die D1-Tables zu Repositories. Vom Grundgedanken ändert sich erstmal nichts, d.h. Record/Objekt beschreibt die Tabelle und stellt grundlegende Zugriffmethoden bereit. Table/Repository ergänzt die Zugriffsmethoden um selbst implementierte.

Ich habe nach folgender Aufgabenliste gearbeitet:

- Austausch der Bibliothek (D1->D2)
- D2 Verzeichnisstruktur einfügen
- einige alte D1 Datenbankenqueries anpassen, Frontend (News/User/Cats) und Controlcenter (Menu)
- Datagrid auf DQL und appended Queries umgestellt
- Laden von Entities bei modularer Ablage von Entities sichergestellt
- Laden von Entities aus Core
- CLI Tool für D2 bereitgestellt
- Entity Prüfung/Schema Validierung bereitgestellt
- Logging bereitgestellt
- CreateSchema bereitgestellt

Nich nicht ganz angepasst:
- Datagrid Pager
- Doctrine Profiler
- Doctrine Debug Console

Ich bin mir durchaus bewusst, dass die Konzepte von Doctrine2 nicht leicht verständlich sind.
Es sind zahlreiche Wissenssegmente die verbunden werden müssen, um zu verstehen, wie D2
konzipiert ist und arbeitet. Angefangen bei den "kleinen" PHP-Neuerungen wie Namespaces und globalen use-Statements geht es schnell zu stark konzentriertem OOP, Entities, UnitsOfWork, sowie dateiübergreifenden Mapping mit verschiedenen Mapping-Treibern (YAML, XML, PHPDoc).
Zusätzlich zu relationalen Datenbankenkonzepten sind Meta-Datentypen und Meta-Datenabfragesprache (DQL) als Objektabfragespache, sowie Objekt-Assoziationen und Objektverbindungen zu verstehen.

Gruß Jens
Gespeichert

Keine Supportanfragen per PN oder Mail. Fragen bitte nur im Forum stellen (Wie man Fragen richtig stellt).
Jens-A. Koch
Maintainer
*
Offline Offline

Beiträge: 574

One-Man Team


« Antworten #1 am: Januar 22, 2011, 08:26:43 »

Durch die Umstellung von D1 auf D2 reduziert sich der Overhead deutlich.
Zudem ist D2 auch schneller als der Vorgänger.

Ich denke die nachfolgenden Werte sprechen für sich:

Frontend (Standard Theme) + Cache für Templates, System und Datenbank
Memory: 1.83MB / 128MB
Application Runtime: 0.304 Seconds

Das Backend liegt bei 3,35 MB und 0.315 Seconds.
News Datagrid im Backend: 3,38MB und 0.556 Seconds.

Für weitere Optimierungstipps bin ich dankbar.
Gespeichert

Keine Supportanfragen per PN oder Mail. Fragen bitte nur im Forum stellen (Wie man Fragen richtig stellt).
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  


Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines

Google visited last this page Mai 19, 2012, 04:04:50