Jan
30

Behaviors - meine Best-of

Als Behaviors in CakePHP vorgestellt wurden - ja ist schon eine zeitlang her - konnte ich nicht wirklich viel damit anfangen, da ich die Vorteile nicht wirklich gesehen habe. Vielleicht lag es aber auch daran, dass die Dokumentation gefehlt hat, was sich inzwischen geändert hat oder weil die Beispiele mir unverständlich erschienen.

Inzwischen ist die Liste der veröffentlichten Behaviors in der Bakery ziemlich lang geworden. Ich habe über 40 - in Worten vierzig - Behaviors gezählt und das ist doch schon eine ziemlich lange Liste. Einige der Behaviors sind mittlerweile in den Core eingebaut worden, wie beispielsweise das CounterCache-Behavior (direkt in das Model) und das Containable Behavior. Ein Einsatz von Behaviors ist ja denkbar einfach und auch im Book recht gut beschrieben. Behaviors sind ja sowas wie die Komponenten der Controller und erweitern die Funktionalität des Models. Also werden sie auch im Model angewendet.

1
2
3
class Category extends AppModel {    
    var $name   = 'Category';    
    var $actsAs = array('Tree');}

So hier meine kleine Best-of-Liste:

  • Sluggable Behavior, das ja Sebastian schon vorgestellt, bzw. erweitert hat. Mittlerweile kann man hier auch Inflector::slug() nutzen.
  • Polymorphic Behavior von Andy Dawson (AD7six), das sehr nützlich ist, wenn man ein Modell mit mehreren anderen Modellen verknüpfen will. Beispielsweise lassen sich damit Notizen an andere Modell anhängen ohne, dass man mehrere Notizen bräuchte. Sehr kuhl.
  • Cipher-Behavior von Xemle, das einzelne Teile einer Tabelle, bzw. eines Models verschlüsselt und damit vor fremden Augen schützt.
  • Containable Behavior, wie ja bereits schon gesagt, steht es mittlerweile im Core zur Verfügung und gehört zu meinen absoluten Rennern, die bei der Optimierung von Model::find() Zugriffen helfen
  • Image Behavior, das ist ja auch schon kurz erwähnt hatte
  • NamedScope Behavior, das ich nicht in der Bakery gefunden habe, sondern via m3nt0r bei Joel Moss gefunden habe.

So das wäre erstmal meine kleine Liste. Ich hab noch ein paar auf der Pfanne, die ich noch verstellen werde, wenn ich ein wenig mehr damit gemacht habe. Hab ich ein wirklich gutes Behavior vergessen?

Oben