Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

162 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

php7-common

A collection of common libraries for PHP 7.1+.

Installation

Use Composer to install php7-common into your project.

composer require nonamephp/php7-common

Included Libraries

  • Noname\Arr
  • Noname\Collection
  • Noname\Str
  • Noname\Validator

\Noname\Arr

A helper library for working with arrays.

Arr Methods

static flatten(array $array, string $separator = '.') : array

Flatten an associative array using a custom separator. This method will use a dot (.) for $separator by defult.

static dot(array $array) : array

Alias for Arr::flatten() that always uses a dot (.) separator.

static each(array $array, callable $callable) : array

Recursively assign the callable's return value to each array item. Array keys are preserved.

<?php
use Noname\Arr;

$values = [1, 2, 3, 4, 5];

// @return [2, 4, 6, 8, 10]
$values_doubled = Arr::each($values, function ($value) {
    return $value * 2;
});

\Noname\Collection

Create a Collection with an associative array to provide helpful methods for working with your data.

Collection implements the following interfaces: Countable, ArrayAccess, IteratorAggregate, Serializable, JsonSerializable

Usage Example

<?php
use Noname\Collection;

$userData = [
    'user_id' => 100,
    'user_name' => 'John Doe',
    'user_email' => '[email protected]'
];

$collection = new Collection($userData);

// output: '[email protected]'
echo $collection->get('user_email');

Collection Methods

__construct(array $items = []) : Collection

Creates an instance of Collection. Optionally pass an associative array for $items to prefill the collection with items.

static make(...$arrays) : Collection

Make a collection from one or more arrays.

set(string $key, mixed $value) : void

Add an item to the collection. If $key already exists in the collection it will be overwritten.

get(string|array $key, mixed $default = null) : mixed

Get an item from the collection. Returns $default if item not found.

Passing an array of item keys for the value of $key will result in multiple items being returned as an array. Keys that are missing from the collection will be returned with a value of $default.

has(string $key) : bool

Check if the collection has an item with same $key.

is(string $key, mixed $value, mixed $operater = null) : bool

Compare an item's value against $value. By default, the method will check if the item's value is equal to $value. Optionally, you may supply an $operator to change the comparison logic.

Supported $operator values: =, ==, ===, >, >=, <, <=, <>, !=

Note: = and == are the same, but === is will perform a strict comparison. <> and != are the same.

pluck(string $key, mixed $default = null) : mixed

Pluck an item from the collection. If $key doesn't exist in the collection then $default will be returned.

delete(string $key) : void

Remove an item from the collection.

destroy() : void

Remove all items from the collection.

count() : int

Returns the count of all of the items in the collection.

keys() : array

Returns an array containing the keys of all of the items in the collection.

values() : array

Returns an array containing the values of all of the items in the collection.

all() : array

Alias for toArray().

toArray() : array

Returns an array of all of the items in the collection.

toJson() : string

Returns collection as JSON.

flatten() : array

Flatten all of the items in the collection using dot (.) notation.

\Noname\Str

A helper library for working with strings.

Str Methods

static startsWith(string $string, string $prefix, bool $caseSensitive = true) : bool

Checks if string starts with given prefix. By default this method is case-sensitive.

static endsWith(string $string, string $suffix, bool $caseSensitive = true) : bool

Checks if string ends with given prefix. By default this method is case-sensitive.

static equals(string $a, string $b, bool $caseSensitive = true) : bool

Checks if two strings equal each other. By default this method is case-sensitive.

static contains(string $string, string $search, bool $caseSensitive = true) : bool

Checks if string contains another string. By default this method is case-sensitive.

static toArray(string $string) : array

Splits a string into an array containing each character.

\Noname\Validator

Use Validator to validate your data based on a set of rules.

Usage Example
<?php
use Noname\Validator;

// Data to be validated
$data = [
    'customer_id' => 100,
    'customer_email' => '[email protected]'
];

// Validation rules
$rules = [
    'customer_id' => 'int',  // customer_id MUST be an integer
    'customer_email' => 'email' // customer_email MUST be an email address
];

// Create Validator
$validator = new Validator($data, $rules);

// Validate data using rules
// @return bool
$valid = $validator->validate();

if ($valid) {
    echo 'Data passed validation!';
} else {
    $errors = $validator->getErrors();
    print_r($errors);
}

Built-in Validation Types

  • *, any Always pass validation for any data type
  • null Validate that value is null
  • bool, boolean Validate that value is boolean
  • scalar Validate that value is scalar (integer, float, string or boolean)
  • str, string Validate that value is string
  • num, numeric Validate that value is numeric
  • int, integer Validate that value is integer
  • float, double Validate that value is float/double
  • alnum, alphanumeric Validate that value only contains alpha-numeric characters
  • alpha Validate that value only contains alpha characters
  • arr, array Validate that value is array
  • object Validate that value is object
  • callable Validate that value is callable
  • email Validate that value is a valid email address
  • ip Validate that value is either of IPv4 or IPv6
  • ipv4 Validate that value is IPv4
  • ipv6 Validate that value is IPv6
  • date, datetime Validate that value is date/datetime
  • resource Validate that value is a resource
  • stream Validate that value is a stream
  • dir, directory Validate that value is a directory
  • file Validate that value is a file

Hint: Adding [] to any type (e.g. int[]) will validate an array of values.

Validator Methods

__construct(array $values, array $rules) : Validator

Create an instance of Validator.

addType(string $typeName, array $typeRule) : void

Add a custom validator type. The following example will add a type of equals_2 which validates that the value is equal to 2 and will set an error otherwise.

<?php
use Noname\Validator;

// Data to be validated
$values = ['a' => 3];

// Validation rules
$rules = ['a' => ['type' => 'equals_2']];

// Create Validator
$validator = new Validator($values, $rules);

// Add custom 'equals_2' type
$validator->addType('equals_2', [
    'validator' => function ($value, $rule, $validator) {
        $valid = $value === 2;
        if (!$valid) {
            $validator->setError($rule['name'], 'Value does not equal 2');
        }
        return $valid;
    }
]);

// Validate data using rules
// @return bool
$valid = $validator->validate();

if ($valid) {
    echo 'Data passed validation!';
} else {
    $errors = $validator->getErrors();
    print_r($errors);
}

Note: Custom types must be added prior to calling validate() or an InvalidArgumentException will be thrown.

addValue(string $name, mixed $value) : void

Add value to dataset that is to be validated.

addValues(array $values) : void

Add multiple values to dataset that is to be validated.

values() : array

Returns an array of the values that are set to be validated.

addRule(string $name, mixed $rule) : void

Add a rule to the validator.

addRules(array $rules) : void

Add multiple rules to the validator.

rules() : array

Returns an array of the rules that are set for validation.

validate() : bool

Validate the set data based on the set rules.

hasErrors() : bool

Checks if any errors were set during validation.

getErrors() : array

Returns an array of the errors that were set during validation.

static is(string $type, mixed $value) : bool

Static method to check if $value is valid $type. You can pass any of the built-in validator types for $type.

This method is useful when validating a single value.

<?php
use Noname\Validator;

Validator::is('string', 'Hello world!'); // @return true
Validator::is('integer', 'Hello world!'); // @return false
static is{Type}(mixed $value) : bool

Similar to is(), except type is passed in the method name.

<?php
use Noname\Validator;

Validator::isString('Hello world!'); // @return true
Validator::isInteger('Hello world!'); // @return false

Note: These methods are case-sensitive. If you are having issues it is recommended that you use is() instead.

About

A collection of common libraries for PHP 7

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages