chocofamilyme/restapi-helpers

Вспомогательные функции и классы для проекта RestAPI

2.0.1 2019-10-25 07:31 UTC

This package is auto-updated.

Last update: 2024-04-25 17:54:44 UTC


README

Внимание начиная с версии 2.x "глобальная" функция коллекции "collect" была перемеинована в "pcollect"

Требуется

- Phalcon > 3.0.0
- RestAPI

Коллекции

Коллекции принимают как параметр массив.

Cоздание

Есть два способа создания коллекции

  1. Через helper pсollect, пример:
$collection = pcollect([1, 2 , 3, 4]);
return $collection->first(); //1
  1. Через класс
use Chocofamily\Collection\Collection;
$collection = new Collection([1,2,3,4]);
return $collection->last();//4
Методы

На данный момент у коллекции доступны следующий список методов:

  • first() - Возвращает первый атрибут коллекции
  • last() - Возвращает последний атрибут коллекции
  • key() - возвращает индекс текущего атрибута коллекции.
  • next() - Возвращает следующий после текущего атрибута коллекции
  • current() - Возвращает текущий атрибут коллекции
  • all() - Возвращает все атрибуты коллекции в виде массива
  • map() - Обертка над функцией array_map
  • mapWithKeys() - Аналог метода mapwithkeys c Laravel
  • filter() - Обертка над функцией array-filter
  • reduce() - Обертка над функцией array_reduce
  • diff() - Обертка над функцией array_diff
  • diffUsing() - Обертка над функцией array_udiff
  • diffAssoc() - Обертка над функцией array_diff_assoc
  • diffAssocUsing() - Обертка над функцией array_diff_assoc -diffKeys() - Обертка над функцией array_diff_key
  • diffKeysUsing() - Обертка над функцией array_diff_ukey
  • each() - Аналог метода each с Laravel
  • when() - Аналог метода when с Laravel
  • flip() - Обертка над функцией array_flip
  • splice() - Аналог метода splice с Laravel
  • merge() - Обертка над функцией array_merge
  • combine() - Обертка над функцией array_combine
  • partition() - Аналог метода partition с Laravel
  • reverse() - Обертка над функцией array_reverse
  • intersect() - Обертка над функцией array_intersect
  • intersectByKeys() - Обертка над функцией array_intersect_key
  • pad() - Обертка над функцией array_pad
  • slice() - Обертка над функцией array_slice
  • chunk() - Аналог метода chunk с Laravel
  • exists() - Принимает как параметр callback, и возвращает true false в зависимости от условии
  • values() - Обертка над функцией array_values
  • keys() - Обертка над функцией array_keys
  • add() - Добавляет новый атрибут к коллекции
  • remove() - Удаляет атрибут по ключу
  • push() - Аналог метода push с Laravel
  • sort() - Аналог метода sort с Laravel

Модели

В модели доступны все методы коллекции.

На данный момент в моделях можно указать:

  • свойство fillable - список элементов для массового заполнения
  • cвойство required - список обязательных элементов для заполненения (в случае отсутствии элементов из списка required выкидывается exception MissingRequiredException)
Пример
<?php

use Chocofamily\Collection\Model;

class ModelStub extends Model
{
    protected $fillable = [
        'first_name', 'last_name', 'age', 'sex', 'active'
    ];

    protected $required = [
        'first_name'
    ];
}