/**
  * Build the filter from configuration
  *
  * @param array $cabinNamespaces
  * @param array $motifs
  * @return PreferencesFilter
  */
 public static function fromConfig(array $cabinNamespaces = [], array $motifs = []) : self
 {
     $filterContainer = new PreferencesFilter();
     foreach ($cabinNamespaces as $cabin) {
         $activeCabin = $motifs[$cabin];
         $filterContainer->addFilter('prefs.motif.' . $cabin, (new StringFilter())->addCallback(function ($selected) use($cabin, $activeCabin) : string {
             foreach ($activeCabin as $cabinConfig) {
                 if ($selected === $cabinConfig['path']) {
                     return $selected;
                 }
             }
             return '';
         }));
     }
     return $filterContainer;
 }