WireNumberTools::uniqueNumber() method

Generate and return an installation unique number/ID (integer)

  • Numbers returned by this method are incrementing, starting from 1.
  • Unique number counter stored in the database so is unique aross all time/requests.
  • Returned number is guaranteed to be unique among other calls to this method.
  • When using the namespace option, it will generate a new DB table for that namespace.
  • Use the reset option to delete a namespace when no longer needed.
  • You cannot reset the default namespace, so any caller is always assured a unique number.
  • This method creates table names that begin with unique_num.

Available since version 3.0.213.


// basic usage
$int = $wireNumberTools->uniqueNumber();

// usage with all arguments
$int = $wireNumberTools->uniqueNumber($options = []);


options (optional)array, string

Array of options or string for the namespace option.

  • namespace (string): Optional namespace for unique numbers, in table name format [_a-zA-Z0-9] (default='')
  • getLast (bool): Get last unique number rather than generating new one? (default=false)
  • reset (bool): Reset numbers in namespace by deleting its table? Namespace required (default=false)

Return value


Returns unique number, or returns 0 if reset option is used, or returns 0 if getLast option is used and no numbers exist.


Method can throw exceptions on error:

  • WireException

WireNumberTools methods and properties

API reference based on ProcessWire core version 3.0.225

Latest news

  • ProcessWire Weekly #489
    In the 489th issue of ProcessWire Weekly we'll check out what's new in the core this week, share a brand-new recipe of the week, and more. Read on!
    Weekly.pw / 23 September 2023
  • ProcessWire 3.0.226 new main/master version
    After 8 months in development we are excited to bring you ProcessWire 3.0.226 main/master. This version has a ton of great new features, improvements and optimizations, plus more than 100 issue fixes. This post takes an in-depth look at highlights from this great new version.
    Blog / 25 August 2023
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK