$files->mkdir() method

Create a directory that is writable to ProcessWire and uses the defined $config chmod settings

Unlike PHP's mkdir() function, this function manages the read/write mode consistent with ProcessWire's setting $config->chmodDir, and it can create directories recursively. Meaning, if you want to create directory /a/b/c/ and directory /a/ doesn't yet exist, this method will take care of creating /a/, /a/b/, and /a/b/c/.

The $recursive and $chmod arguments may optionally be swapped (since 3.0.34).

Example

// Create a new directory in ProcessWire's cache dir
if($files->mkdir($config->paths->cache . 'foo-bar/')) {
  // directory created: /site/assets/cache/foo-bar/
}

Usage

// basic usage
$bool = $files->mkdir(string $path);

// usage with all arguments
$bool = $files->mkdir(string $path, $recursive = false, $chmod = null);

Arguments

NameType(s)Description
pathstring

Directory you want to create

recursive (optional)bool, string

If set to true, all directories will be created as needed to reach the end.

chmod (optional)string, null, bool

Optional mode to set directory to (default: $config->chmodDir), format must be a string i.e. "0755" If omitted, then ProcessWire's $config->chmodDir setting is used instead.

Return value

bool

True on success, false on failure


$files methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #518
    The 518th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!
    Weekly.pw / 13 April 2024
  • ProFields Table Field with Actions support
    This week we have some updates for the ProFields table field (FieldtypeTable). These updates are primarily focused on adding new tools for the editor to facilitate input and management of content in a table field.
    Blog / 12 April 2024
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH