Just some tools to work better with PHP

2.6.1 2021-08-25 15:18 UTC

This package is auto-updated.

Last update: 2022-05-26 23:09:58 UTC


Build Status

Just some classes helping to code with PHP in general. No dependencies. High quality code.

This repository follows semver.


composer require "nekland/tools"


This library provide some tools to help you with your developments.

Here is the list of tools it provides:

StringTools class

Encoding arguments are optionals.


StringTools::camelize($str, $from, $encoding, $normalize = true) : string
  • $str string input
  • $from (optional, default "_") input string format (can be "-" or "_")
  • $encoding (optional, default "UTF-8") encoding of your input string
  • $normalize decide either you want to normalize (remove special characters) or not, that's what you want in most cases when camelizing


Say if the given string starts with needle or not.

StringTools::startsWith($str, $start) : bool
  • $str string input
  • $start string it should starts with


Say if the given string ends with needle or not.

StringTools::endsWith($str, $end) : bool
  • $str string input
  • $end string it should ends with


Removes the start of the string if it matches with the given one.

StringTools::removeStart($str, $toRemove) : string
  • $str string input
  • $toRemove string to remove at the start of $str


Removes the end of the string if it matches with the given text to remove.

StringTools::removeEnd($str, $toRemove) : string
  • $str string input
  • $toRemove string to remove at the end of $str


StringTools::contains($str, $needle) : bool
  • $str string input
  • $needle potentially contained string


Adds missing multi-byte PHP function for ucfirst standard function.

StringTools::mb_ucfirst($str, $encoding) : string
  • $str string input
  • $encoding (optional, default "UTF-8") encoding of your input string

ArrayTools class


ArrayTools::removeValue($array, $value) : void
  • $array input array passed by reference
  • $value The value to remove from the $array


Helps you equals on objects on a similar way as java.


Method that you must implements to check if the object taking as parameter is equals or not.

DateTimeComparator class

For following methods lowest and greatest, you can provide unlimited DateTimeInterface objects. Please note that non DateTimeInterface objects will be ignored by functions.


Compare \DateTimeInterface from parameters and return the greatest

DateTimeComparator::greatest($dateTime1, $dateTime2, $dateTime3, ...) : ?\DateTimeInterface


Compare \DateTimeInterface from parameters and return the lowest

DateTimeComparator::lowest($dateTime1, $dateTime2, $dateTime3, ...) : ?\DateTimeInterface

Temporary file management

The class TemporaryFile helps you to create temporary file with ease.


TemporaryFile::__construct(TemporaryDirectory $dir = null, string $prefix = '')


// Create a file in temporary folder
$file = new TemporaryFile();

// Create a file inside a temporary directory (see TemporaryDirectory class)
$file = new TemporaryFile($temporaryDir);

// Create a file in a temporary folder with php_ prefix.
$file = new TemporaryFile(null, 'php_');

::setContent & ::getContent

TemporaryFile::setContent(string $content)
TemporaryFile::getContent(): string


Returns the complete path to the file (ie: /tmp/generated-folder/filename)

TemporaryFile::getPathname(): string


Removes the file from filesystem.


Temporary directory management


TemporaryDirectory::__construct(string $dir = null, string $prefix = 'phpgenerated')


// create a new directory
$directory = new TemporaryDirectory();


Create a TemporaryFile from the directory generated.

TemporaryDirectory::getTemporaryFile(): TemporaryFile


Removes the directory.

TemporaryDirectory::remove(bool $force = false): void

If force is specified to true, it will remove the directory even if it has files inside.


Returns the complete path to the folder (ie: /tmp/folder-name)

TemporaryDirectory::getPathname(): string