yii2mod/yii2-helpers

Collection of useful helper functions for Yii Framework 2.0

Installs: 122 376

Dependents: 5

Suggesters: 0

Security: 0

Stars: 15

Watchers: 6

Forks: 4

Open Issues: 0

Type:yii2-extension

1.3 2016-11-22 15:51 UTC

This package is not auto-updated.

Last update: 2024-04-19 19:59:14 UTC


README

This extension is a collection of useful helper functions for Yii Framework 2.0.

Latest Stable Version Total Downloads License Build Status

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yii2mod/yii2-helpers "*"

or add

"yii2mod/yii2-helpers": "*"

to the require section of your composer.json file.

Available Methods

  1. add()
  2. average()
  3. collapse()
  4. except()
  5. has()
  6. first()
  7. flatten()
  8. last()
  9. only()
  10. pluck()
  11. prepend()
  12. pull()
  13. set()
  14. sort()
  15. sortRecursive()
  16. where()
  17. xmlStrToArray()

Method Listing

#####add()

Add a given key / value pair to the array if the given key doesn't already exist in the array:

$array = ArrayHelper::add(['card' => 'Visa'], 'price', 200);
// ['card' => 'Visa', 'price' => 200]

#####average()

Get the average value of a given key:

ArrayHelper::average([1, 2, 3, 4, 5]);
// 3

You may also pass a key to the average method:

$array = [
   ['score' => 10],
   ['score' => 30],
   ['score' => 50],
];

ArrayHelper::average($array, 'score');

// 30

#####collapse()

Collapse an array of arrays into a single array:

$array = ArrayHelper::collapse([[1, 2, 3], [4, 5, 6]]);

// [1, 2, 3, 4, 5, 6]

#####except()

Get all of the given array except for a specified array of items:

$array = ['name' => 'Desk', 'price' => 100];

$array = ArrayHelper::except($array, ['price']);

// ['name' => 'Desk']

#####has()

Check if an item exists in an array using "dot" notation:

$array = ['products' => ['desk' => ['price' => 100]]];

$hasDesk = ArrayHelper::has($array, 'products.desk');

// true

#####first()

Return the first element in an array passing a given truth test:

$array = [100, 200, 300];
$value = ArrayHelper::first($array); // 100

// or apply custom callback

$value = ArrayHelper::first($array, function($key, $value) {
      return $value >= 150; // 200
});

#####flatten()

Flatten a multi-dimensional array into a single level:

$array = ['name' => 'Bob', 'languages' => ['PHP', 'Python']];

$array = ArrayHelper::flatten($array);

// ['Bob', 'PHP', 'Python'];

#####last()

Return the last element in an array passing a given truth test:

$array = [100, 200, 300];
$value = ArrayHelper::last($array); // 300

// or apply custom callback

$value = ArrayHelper::last($array, function($key, $value) {
      return $value; // 300
});

#####only()

Get a subset of the items from the given array:

$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];

$array = ArrayHelper::only($array, ['name', 'price']);

// ['name' => 'Desk', 'price' => 100]

#####prepend()

Push an item onto the beginning of an array:

$array = ['one', 'two', 'three', 'four'];

$array = ArrayHelper::prepend($array, 'zero');

// $array: ['zero', 'one', 'two', 'three', 'four']

#####pluck()

The function retrieves all of the collection values for a given key:

$array = [
   ['product_id' => 'prod-100', 'name' => 'Desk'],
   ['product_id' => 'prod-200', 'name' => 'Chair'],
];


$plucked = ArrayHelper::pluck($array, 'name');

// ['Desk', 'Chair']

You may also specify how you wish the resulting collection to be keyed:

$plucked = ArrayHelper::pluck($array, 'name', 'product_id');

// ['prod-100' => 'Desk', 'prod-200' => 'Chair']

#####pull()

Get a value from the array, and remove it:

$array = ['name' => 'Desk', 'price' => 100];

$name = ArrayHelper::pull($array, 'name');

// $name: Desk

// $array: ['price' => 100]

#####set()

Set an array item to a given value using "dot" notation:

$array = ['products' => ['desk' => ['price' => 100]]];

ArrayHelper::set($array, 'products.desk.price', 200);

// ['products' => ['desk' => ['price' => 200]]]

#####sort()

Sort the array using the given callback:

$array = [
    ['name' => 'Desk'],
    ['name' => 'Chair'],
];

$array = ArrayHelper::sort($array, function ($value) {
    return $value['name'];
});

/*
    [
        ['name' => 'Chair'],
        ['name' => 'Desk'],
    ]
*/

#####sortRecursive()

Recursively sort an array by keys and values:

$array = [
      [
          'Desc',
          'Chair',
      ],
      [
          'PHP',
          'Ruby',
          'JavaScript',
      ],
];

$array = ArrayHelper::sortRecursive($array);
        
/*
  [
      [
         'Chair',
         'Desc',
      ],
      [
         'JavaScript',
         'PHP',
         'Ruby',
      ]
  ];
*/

#####where()

Filter the array using the given Closure.:

$array = ["100", 200, "300"];
$value = ArrayHelper::where($array, function($key, $value) {
   return is_string($value);
});
// Will be return Array ( [0] => 100 [2] => 300 );

#####xmlStrToArray()

Convert xml string to array.

$xml = '<?xml version="1.0"?>
          <root>
            <id>1</id>
            <name>Bob</name>
          </root>';
          
ArrayHelper::xmlStrToArray($xml)

// ['id' => 1, 'name' => 'Bob']

####StringHelper

  • StringHelper::removeStopWords('some text'); - remove stop words from string
  • StringHelper::removePunctuationSymbols('some text'); - Remove punctuation symbols from string