Doctrine_Query dein Freund und Helfer

Wie lange hab ich von dem Tag geträumt. Endlich kann ich mit dem neuen ORM den Shop neu bauen. Hier z.B. die Such-Funktion – ihr wollt nicht wissen was die vorher alles an SQL gemacht hat. Diese hier ist auch gleich mal 75% schneller als die alte.

  1. function search ($pos, $count, $orderBy) {
  2.     $searchFields = array (
  3.         ‘c_nr’,
  4.         ‘name’,
  5.         ‘description’,
  6.         ‘description_detail’,
  7.     );
  8.     $list = Doctrine_Query::create()
  9.     ->from (‘ShopArticle a’);
  10.     if ( ! $this->ShopLanguage->fl_default) {
  11.         $list->leftJoin (‘a.ShopArticleText at’)
  12.         ->leftJoin (‘at.ShopLanguage atl’)
  13.         ->addWhere (‘atl.id = ‘ . $this->ShopLanguage->id);
  14.     }
  15.     $list->orderBy (‘a.’ . $orderBy)
  16.     ->offset ($pos)
  17.     ->limit ($count);
  18.     foreach ($this->getclean () as $s) {
  19.         foreach ($searchFields as $f) {
  20.             $list->orWhere (‘a.fl_disabled = 0′)
  21.             ->addWhere (‘a.fl_category_hide = 0′)
  22.             ->addWhere (‘a.fl_soldout = 0′);
  23.             if ($f == ‘c_nr’ || $this->ShopLanguage->fl_default) {
  24.                 // Default Sprache und c_nr ist in der Artikeltabelle
  25.                 $list->addWhere ($f . ‘ LIKE ?’, ‘%’ . $s . ‘%’);
  26.             } else {
  27.                 // Alles andere in der ArticleText Tabelle mit unserer Sprache
  28.                 $list->addWhere (‘at.’ . $f . ‘ LIKE ?’, ‘%’ . $s . ‘%’);
  29.             }
  30.         }
  31.     }
  32.     return $list;
  33. }

Leave a Reply

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken.

Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da einige von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei Ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Menschen schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.
Quelle: http://www.gesetze-im-internet.de/urhg/__95a.html