Util
in package
Utility methods
Class providing utility methods that are not strictly tied to NacoWiki
Table of Contents
Constants
- VALID_CHARS = '-A-Za-z0-9_\/\.'
- Set of valid characters
Properties
- $cache : array<string|int, string>
- content cache
- $logmsg : array<string|int, string>
- used to keep logged strings
Methods
- defaultMeta() : array<string|int, mixed>|null
- Generate default meta-data from file system
- dumpLog() : void
- dump log messages
- fileContents() : string|null
- cached file_get_contents
- fileMeta() : array<string|int, mixed>|null
- Generat file-system level meta data
- is_program_in_path() : bool
- Check if executable is in path
- log() : void
- log message
- recurse_copy() : void
- Copy files recursively
- runPath() : string
- resolves a file or URL path
- sanitize() : string
- make sure input path is sane
- sendFile() : void
- Send $file_path
- stackTrace() : string
- Return a simplified stack trace
- vdump() : string
- var_dump to string
- walkTree() : array<string|int, mixed>
- get directory contents
Constants
VALID_CHARS
Set of valid characters
public
string
VALID_CHARS
= '-A-Za-z0-9_\/\.'
Follows POSIX portable filename character set.
If changing this, try to keep valid chars compatible with Windows. (See: https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names)
Also one must reserve ';' to use for alternative streams for example:
.prop;page.md
Properties
$cache
content cache
public
static array<string|int, string>
$cache
= ['content' => []]
Caches file contents
$logmsg
used to keep logged strings
public
static array<string|int, string>
$logmsg
= []
Methods
defaultMeta()
Generate default meta-data from file system
public
static defaultMeta(string $fn[, mixed $mtime = NULL ]) : array<string|int, mixed>|null
Create default metadata from filesystem meta-data containing:
- title - based on the filename
- date - YYYY-MM-DD
Parameters
- $fn : string
-
name of file to use
- $mtime : mixed = NULL
-
if provided, it will not get timestamps from the file system.
Return values
array<string|int, mixed>|null —contains default metadata or NULL on error
dumpLog()
dump log messages
public
static dumpLog([bool $hr = false ]) : void
Output HTML with the contents of the message log
Parameters
- $hr : bool = false
-
if true, a
<hr>
will be shown first.
fileContents()
cached file_get_contents
public
static fileContents(string $fn) : string|null
It wraps file_get_contents with a simple cache.
Parameters
- $fn : string
-
name of file to read
Return values
string|null —file context or NULL on error.
fileMeta()
Generat file-system level meta data
public
static fileMeta(string $fn[, mixed $mtime = NULL ]) : array<string|int, mixed>|null
Will create file level metadata containing:
- datetime - YYYY-MM-DD HR:MN:SC
- year - 4 digit number
- mtime - time stamp in Linux Epoch.
Parameters
- $fn : string
-
name of file to use
- $mtime : mixed = NULL
-
if provided, it will not get timestamps from the file system.
Return values
array<string|int, mixed>|null —contains file-system related metadata, NULL on error.
is_program_in_path()
Check if executable is in path
public
static is_program_in_path(string $program) : bool
This function checks if a given program/command is in the Linux executable path
Parameters
- $program : string
-
: program to check for
Tags
Return values
bool —: true if found, false if it does not exist
log()
log message
public
static log([string $msg = '' ]) : void
Writes the message to stderr and also saves it to the logmsg
static property. The log messages can then be retrieved
later with dumpLog
.
Log entries are tagged with the file and line location of calling scope.
Parameters
- $msg : string = ''
-
text to log
recurse_copy()
Copy files recursively
public
static recurse_copy(string $src, string $dst) : void
From copy doc in php.net
Parameters
- $src : string
-
: source directory
- $dst : string
-
: target directory
runPath()
resolves a file or URL path
public
static runPath(string $path[, bool $nodots = false ]) : string
It will examine the $path and resolves .
and ..
directory
entries.
Optionally, will remove path components that start with .
(dot).
Resolved path will never contain any .
or ..
path components,
so, resulting paths will never go up outside the current directory
tree.
Parameters
- $path : string
-
file path to resulve
- $nodots : bool = false
-
defaults to false, if true path componets that start with
.
(dot) will be removed.
Return values
string —resolved path
sanitize()
make sure input path is sane
public
static sanitize(string $url[, string $rdoc = '' ]) : string
Will use runPath
and VALID_CHARS
to make sure that the
given $url does not contain invalid characters (as defined by
VALID_CHARS
and does not contain .
or ..
path components.
Parameters
- $url : string
-
URL to sanitize
- $rdoc : string = ''
-
optional realtive doc to use when sanitizing relative paths
Return values
string —sanitized url path
sendFile()
Send $file_path
public
static sendFile(string $file_path[, string $mime = NULL ]) : void
Sends the given file. It supports byte ranges for download resume.
Parameters
- $file_path : string
-
path of the file to send
- $mime : string = NULL
-
content-type header
stackTrace()
Return a simplified stack trace
public
static stackTrace() : string
Return values
string —dumped strack trace suitable for Util::log()
vdump()
var_dump to string
public
static vdump(mixed $val) : string
Returns a string representation of the given value
Parameters
- $val : mixed
-
value to dump
Return values
string —dumped value
walkTree()
get directory contents
public
static walkTree(string $basedir[, bool $hide_dots = true ][, bool $vacuum = false ]) : array<string|int, mixed>
Create a list of files and folders in the $basedir directory.
Parameters
- $basedir : string
-
directory to read.
- $hide_dots : bool = true
-
if True, files beginning with dot(.) or comma(,) are hidden. Pass $false to include these files.
- $vacuum : bool = false
-
if True, will delete dangling metadata files...
Return values
array<string|int, mixed> —[ $array-of-dirs, $array-of-files ]