A dependency for php project
progress build...
PHP >= 8.1
composer require saidqb/core-php
- Array Collection doctrine/collection
- String Manipulation str/str
- Generator String phlak/strgen
use Saidqb\CorePhp\Lib\Arr;
$arr = [1, 2, 3];
Arr::collection($arr)->filter(function($element) {
return $element > 1;
}); // [2, 3]
Arr::collection($arr)->contains(1); // true
Arr::collection($arr)->filter(function($element) {
return $element > 1;
}); // [2, 3]
Detail Documentation
use Saidqb\CorePhp\Lib\Str;
$str = 'string';
Str::make($str)->startsWith($substring);
Str::make($str)->endsWith($substring);
Detail Documentation
use Saidqb\CorePhp\Lib\Generate;
Generate::str()->lowerAlpha($length);
Generate::str()->upperAlpha($length);
Generate::str()->mixedAlpha($length);
Generate::str()->numeric($length);
Generate::str()->alphaNumeric($length);
Generate::str()->special($length);
Generate::str()->all($length);
Generate::str()->custom($length, $charset);
Detail Documentation
use Saidqb\CorePhp\Pagination;
$pagination = Pagination::make()->totalItems(100)->itemPerPage(10)->currentPage(1)->get();
use Saidqb\CorePhp\Response;
Response::make()->response([], ResponseCode::HTTP_OK, ResponseCode::HTTP_OK_MESSAGE, 0)->send();
// list item
Response::make()->response(['items' => $items, 'pagination' => $pagination])->send();
// single item
Response::make()->response(['item' => $item])->send();
used in controller
BaseController
use Saidqb\CorePhp\Response;
use Saidqb\CorePhp\ResponseCode;
public $res;
public function __construct()
{
$this->initResponse();
}
public function initResponse()
{
$this->res = new Response();
return $this->res;
}
public function response($data, $code = ResponseCode::HTTP_OK, $message = ResponseCode::HTTP_OK_MESSAGE, $errorCode = 0)
{
$this->res->response($data, $code, $message, $errorCode)->send();
}
Extends to BaseController
use Saidqb\CorePhp\ResponseCode;
public function __construct()
{
parent::__construct();
$this->initResponse()->hide(['password']);
}
public function index()
{
$this->response($data, ResponseCode::HTTP_OK);
}
Avilable Manipulate data:
->hide(['password'])
->decode(['extra'])
->decodeChild(['extra.user'])
->decodeArray(['extra_list'])
->addFields(['field1' => '1', 'field2' => '2'])
->addField('field1', '1')
->hook('item', function($data){ return $data})
COFFEE HERE for more inovation
OR