My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for

Funktionsumfang

  • MVC (Days_Model, Days_View, Days_Controller) - Grundbegriffe; wichtig zum Arbeiten mit dem Framework
  • Days_Config - die Konfiguration der Seite bearbeiten
  • Days_Db - bearbeiten der Datenbank
  • Days_Db_Table - Implementierung der ORM Darstellung von Datenbank-Tabellen
  • Days_Engine - am Startpunkt beginnen
  • Days_Event - Implementierung des Observer Entwurfsmusters
  • Days_Log - Fehler und Debugger-Informationen protokollieren
  • Days_Request - Anfragen vom Browser erhalten
  • Days_Response - Dem Browser antworten
  • Days_Url - die URL des Browsers ändern

Wird noch entwickelt..

  • Days_Acl (Zugriffs-Kontrollliste) - Diagramm der Zugriffsrechte zu den einzelnen Bereichen der Seite
  • Days_Filter - Daten filtern, die vom Benutzer kommen (wird auch Validation oder Verifikation der Daten genannt)
  • Days_Form - die Daten von HTML Formularen auswerten und bearbeiten
  • Days_User - Benutzerdaten bearbeiten (Berechtigung, Authentifizierung, Ende der Sitzung)
DeLibDaysDbTable  
ORM zum Arbeiten mit Tabellen
Lang-De
Updated Nov 3, 2009 by hilmar.a...@gmail.com

allgemeine Informationen

Mit ORM können Sie mit Datenbanken arbeiten, als würden Sie mit Objekten von PHP arbeiten. Sie brauchen keine SQL Abfragen zu schreiben, um Daten zu erhalten oder speichern. Anstelle dessen müssen Sie die Methoden benutzen, um Daten zu erhalten.

ORM wird Sie dabei unterstützen, die Entwicklung zu beschleunigen und vereinfacht es, Änderungen in der Zukunft vorzunehmen.

Wie funktioniert ORM?

Erstelle eine Klasse für für die Tabelle blog_category (enthält die Kategorie Posts). Dafür erstellen wir eine Datei "/var/www/myblog/app/Model/Table/Blog/Category.php" mit der Klassendefinition:

<?php
class Myblog_Model_Table_Blog_Category extends Days_Db_Table {
    protected $_name = 'blog_category';
}

Ermittle das erforderliche Tabellenobjekt. Das wird folgenderweise gemacht:

$tableBlogCategory = Days_Model::factory('table_blog_category');

Erhalte die Daten aus der Tabelle:

// erhalte Information über eine Kategorie
$category = $tableBlogCategory->find('one', array('where'=>array('id'=>10)));
// erhalte alle Kategorien
$categories = $tableBlogCategory->find('all');
// erhalte 20 Unterkategorien
$subcategories = $tableBlogCategory->find('all', array(
  // gib die Unterkategorien mit id=10 zurück
  'where' => array(
    'pid' = 10
  ),
  // gib die ersten 20 Reihen zurück
  'count' => 20
));
// erhalte die Anzahl an Subkategorien
$countCategories = $tableBlogCategory->find('count', array(
  // gib die Unterkategorien mit id=10 zurück
  'where' => array(
    'pid' = 10
  )
));
// erhalte die ersten 15 Kategorien
$firstCaterories = $tableBlogCategory->find('first', array(
  'count' => 15
));
// lösche Kategorie
$category->delete();
// lösche alle Kategorien des Sets
$firstCaterories->delete();
// erstelle eine neue Zeile
$newRow = $subcategories->create();
$newRow->name = 'New subcategory';
// speichere Zeile
$newRow->save();

Days_Db_Table benutzen

Das ist eine Darstellung einer echten Tabelle und ermöglicht Ihnen, Funktionen auf dieser Tabelle auszuführen.

  • find($type, $cond) - erhalte das Ergebnis in der vorgegebenen Art
    • $type - in welcher Art das Ergebnis ausgegeben werden soll
      • all: alle Zeilen
      • first: alle Zeilen sortiert nach Datum (свежие записи будут первыми)
      • last: alle Zeilen sortiert nach Datum (свежие записи будут последними)
      • one: eine Zeile
      • count: Gesamtzahl an Zeilen (Die Zeilen selbst werden nicht ausgegeben)
    • $cond - Bedingungen die das Ergebnis verändern
      • count (int): Anzahl der Zeilen im Ergebnis
      • page (int): aktuelle Seitennummer (beginnt bei 1)
      • columns (array): Spaltennamen
      • where (array): Paare column=>$value oder column_with_value
      • group (array): Gruppe nach Spalten
      • order (array): sortieren nach Spalten
  • create() - erzeugt eine neue leere Zeile
  • save(Days_Db_Row $row) - speichert angegebene Zeile
  • delete(Days_Db_Row $row) - löscht angegebene Zeile
  • join($table) - fügt die angegebene Tabelle dem Ergebnis hinzu

Days_Db_Rowset benutzen

Repräsentiert die Gruppe der Zeilen Days_Db_Row. Erlaubt Ihnen diese zu ändern.

  • create(array $data=array()) - erstelle neue Zeile Days_Db_Row
  • save(Days_Db_Row $row) - speichert angegebene Zeile
  • delete(Days_Db_Row $row) - löscht angegebene Zeile
  • count() - Anzahl der Zeilen in der angegebenen Gruppe
  • toArray() - gibt eine Gruppe an Zeilen als Array zurück

Enthält auch die Daten der aktuellen Zeile, als würden wir mit dieser Zeile arbeiten.

// Gebe den Namen der ersten Kategorie aus
echo $categories->name;

Days_Db_Row benutzen

Repräsentiert eine Tabellenzeile und erlaubt ihnen, diese zu bearbeiten.

  • save() - speichert die aktuelle Zeile
  • delete() - löscht die aktuelle Zeile
  • toArray() - gibt die aktuelle Zeile als ein Array zurück
  • parent - erhalte alle Parent-Elemente (wenn Sie eine Spalten ID und PID haben)
  • child - erhalte alle Child-Elemente (wenn Sie eine Spalten ID und PID haben)
  • table_name - erhalte ähnliche Records von der angegebenen Tabelle (für Kategorien der Tabelle blog_category müssen Sie bei der Objekttabelle blog nur category angeben anstelle von blog_category)

Sign in to add a comment
Powered by Google Project Hosting