2016-06-28 28 views
1

Kollektionen und On-Demand Trink
Der Vorteil der Verwendung eine Sammlung anstelle eines Arrays ist, dass Propel Modellobjekte auf Anfrage Hydrat kann. Wenn Sie eine große Anzahl von Ergebnissen abrufen, werden Sie bei der Verwendung dieser Funktion nie zu wenig Speicher haben. Erhältlich durch die setFormatter() -Methode des Modellanfragen, On-Demand-Hydratisierung sehr einfach zu triggern:Was ist der Unterschied zwischen Sammlung und Array in PHP (Antrieb)?

<?php 
$authors = AuthorQuery::create() 
    ->limit(50000) 
    ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND) 
    ->find(); 

foreach ($authors as $author) { 
    echo $author->getFirstName(); 
} 

1) Was ist die Bedeutung von „Trink“ hier?
2) Was ist der Unterschied zwischen Sammlung und Array?

Quelle: Propel @1.6

Antwort

2

1.Hidration

A bedeutet, die Leistung zu verbessern, indem sie "Füllung" Ihre Klasse/Objekt mit den Zeilendaten nur, wenn Sie es brauchen.

Statt "SELECT * FROM SomeTable" aus einer sehr großen Tabelle zu tun, wird Propel zunächst "SELECT ID FROM SomeTable" abfeuern, dann in der Schleife, dann tun "SELECT [COLUMS] FROM SomeTable WHERE ID=[CurrentID]", also "On Demand"

2. Sammlung vs Array Array ist nur die normale Anordnung, während ein PropelCollection ist ein Ziel von Objekten, die eine Menge Material zur Verfügung hat, wie:

  • Paging
  • Überprüfen auf od ergibt d oder sogar, ->isOdd() usw.
  • die Anzahl der Elemente darin prüfen $object->count()
  • Format konvertieren ->toYAML(), ->toCSV(), ->toXML()

Jedes Element in der Sammlung ein PropelObject ist, so dass Sie immer noch Daten abrufen können mit ->getColumn() innerhalb Ihrer Schleife. Documentation