Selectors class

Processes a selector string into a WireArray of Selector objects.

This Selectors class is used internally by ProcessWire to provide selector string (and array) matching throughout the core.

$selectors = new Selectors("sale_price|retail_price>100, currency=USD|EUR");
if($selectors->matches($page)) {
  // selector string matches the given $page (which can be any Wire-derived item)
}
// iterate and display what's in this Selectors object
foreach($selectors as $selector) {
  echo "<p>";
  echo "Field(s): " . implode('|', $selector->fields) . "<br>";
  echo "Operator: " . $selector->operator . "<br>";
  echo "Value(s): " . implode('|', $selector->values) . "<br>";
  echo "</p>";
}

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Selectors class also inherits all the methods and properties of: WireArray and Wire.

Show class?             Show args?        

Common

NameReturnSummary 
Selectors::debugInfoItem($item)
(nothing) 
Selectors::getAllFields()
arrayReturn array of all field names referenced in all of the Selector objects here 
Selectors::getAllValues()
arrayReturn array of all values referenced in all Selector objects here 
Selectors::getOperatorType(string $operator)
bool stringReturn a string indicating the type of operator that it is, or false if not an operator 
Selectors::getSelectorByField(string $fieldName)
Selector array nullGet the first selector that uses given field name 
Selectors::init($selector)
(nothing)Set the selector string or array (if not set already from the constructor) 
Selectors::isOperator(string $operator)
boolReturns true if given string is a recognized operator, or false if not 
Selectors::matches(Wire $item)
boolDoes the given Wire match these Selectors? 

Advanced

Static helpers

Static helper methods useful in analyzing selector strings outside of this class.

Additional methods and properties

In addition to the methods and properties above, Selectors also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.130

Twitter updates

  • New post: ProcessWire 3.0.131 adds support for partial/resumable downloads and http stream delivery, and contains several updates to our comments system, among other updates— More
    3 May 2019
  • New post: Quietly and without interruption this week, the ProcessWire.com website (and all subdomains) moved from a single static server to a load-balanced multi-server environment, giving us even more horsepower and redundancy than before— More
    19 April 2019
  • New post: With ProcessWire 3.0.130, this week we’ll take a detailed look at a few useful new API additions made in the last few weeks, along with examples of each—More
    12 April 2019

Latest news

  • ProcessWire Weekly #262
    The 262nd issue of ProcessWire Weekly will cover the latest module updates, both Pro modules and non-commercial ones. We've also got some highlights from the support forum, and a beautiful new site of the week. Read on!
    Weekly.pw / 18 May 2019
  • Lots of module updates
    In this post we take a quick look at the new version of ProFields Repeater Matrix, yet another new version of FormBuilder, and a new version of the GoogleClientAPI module.
    Blog / 17 May 2019
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits