Skip to content

deadmemories/tc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Класс коллекций:

  • core\collection\Collection.php
  • collect([]);
public function __construct(array $items = []): void;
public function set(string $key, $value): void;
public function get(string $key, $default = null): mixed|null;
public function replace(array $items): void;
public function has(string $key): bool;
public function remove(string $key): void;
public function all(): array;
public function except($keys): void;
private function exceptOne(string $key): void;
private function exceptMany($keys): void;
public function only(array $keys): Collection;
public function clear(): void;
public function count(): int;

Примеры

  • Инициализация, Принимает массив и вызывает replace()
$data = collect();
$array = ['key' => 'value'];
$data = collect([$array]);
  • Помещает новое свойство вида: $key => $value
$data = collect();
$data->set('key', 'value');
  • Возвращает $value по $key
echo collect([])->get('key');
  • Перебирает массив и и вызывает метод set() для каждого индекса (вид: $key => $value)
$array = ['key' => 'value'];
$data = collect()->replace($array);
  • Проверяет существования ключа
return $data->has('key') ? 'true' : 'false';
  • Удаляет ключ
$data->remove('key');
  • Возвращает все и меняет тип на массив
$array = ['key' => 'value'];
$data = collect([$array]); // Object type
$data->all() // Array type
  • Два вида:

    • ('key') | (['key1', 'key2'])

    Возвращает все данные без ключей которые указанны выше

$array = ['key' => 'value', 'key2' => 'value'];
$data = collect([$array])->except('key');
$data->get('key') // error
  • Используется методом except()

  • Используется методом except()

  • Возвращает новую коллекцию с вышеперечисленными ключами

$data = collect([$_SERVER])->only(['REQUEST_SCHEME', 'SERVER_PROTOCOL', 'CONTENT_LENGTH']);
dd($data);
  • Очищает коллекцию

  • Возвращает количество элементов

  • Класс имеет глобальную функцию collect()

Класс конфига

  • core\config\Repository
  • config()
public function load(string $filepath): throw|void;
public function get(string $key): mixed
  • Используется методом get для загрузки файла
  • Принимает 3 вложения (учитывая название файла) и возвращает $value ключа
config()->get('app.name') // config/app.php[name];

Сервис контейнер

  • core\container\ServiceContainer
  • app()
public static function getInstance();
public function set(string $key, $object, $singleton = false): $this|void;
public function singleton($key, $object): void;
public function createAlias(string $key, string $alias): mixed;
public function bildClass(string $key, $params = null): mixed;
public function onlyLoadClass(array $classes): void;
private function instance($key, $parameters = null): mixed;
  • Возвращает объект класса
  • Добавляет новый класс
app()->set('Router', '\core\routers\Router');
  • Добавляет синглтон класс
  • Создает алиас | можно записать класс в config/app.php aliases
app()->set('name', '\core\name\system')->createAlias('name', 'aliasName');
  • Возвращает объект класса
$request = app()->bildClass('request'); // Если класс уже загружен (указан в config/app.php)
$requst = app()->set('request', '\core\request\Request')->bildClass('request');
  • Используется системой
  • Используется для загрузки объектов

Куки

  • core\cookie\Cookie
  • cookie()
public function __construct(): Collection;
public function set($key, $value, $minutes = 0, $path = null, $domain = null, $secure = false, $httponly = true): void;
public function get($key): string;
public function has($key): bool;
public function remove($key): void;
public function getData(): mixed|object;
public function __debugInfo();
  • Возвращает все куки
  • Записывает куку | для значения используется обратное шифрование
cookie()->set('login', 'DeadMemories');
  • Возвращает куку
cookie()->get('login');
  • Проверяет на существования
echo cookie()->has('login') ? 'true' : 'false';
  • Удаляет куку
cookie()->remove('login');
  • Возвращает все куки | Collection ojbect

Помощники

  • core\helpers\function
  • Помогают Вам не писать большие use :)
function app() {
    return \core\container\ServiceContainer::getInstance();
}

function config() {
    return app()->set('config', '\core\config\Repository')->bildClass('config');
}

function route(){
    return app()->bildClass('Route');
}

function cookie() {
    return app()->bildClass('Cookie');
}

function collect(array $data = []) {
    return app()->bildClass('Collection', $data);
}

function response() {
    return app()->bildClass('Response');
}

function view($path, $data = [], $type = '') {
    return app()->bildClass('View')->showView($path, $data, $type);
}

function request() {
    return app()->bildClass('Request');
}

function dd() {
    $args = func_get_args();
    call_user_func_array('dump', $args);
    die();
}

Request

  • core\request\Request
  • request()
public function __construct(): void;
public function input($name, $default = null): mixed;
public function has(string $name): bool;
public function getAll(): mixed;
private function cleanData($data): string;
  • Помещает в только что созданный объект $request 3 объекта(response, cookie, uploadFIled) и записывает все данные

  • Возвращает веденное значение.

    • Два вида
      $request->input('name');
      $request->input(['name1', 'name2']);
  • Проверка на существование

echo $request->has('key') ? 'true' : 'false',
  • Возвращает все данные
  • Используется системой

UploadFiles - помощник для реквеста. Работает с файлами.

Когда загружается файл, объект $request->uploadFiles содержит коллекцию загруженных файлов. Вы можете использовать foreach, чтобы узнать подробную информацию

public function getFiles(): mixed;
private function getAllFiles($file_keys, $file_count, $file_post, $name): mixed;
private function getFile($data, $name): mixed;

Response

  • core\response\Respose
  • response()
public function __construct(): void;
public function getData(): mixed;
public function changeResponseCode(int $code): void;
public function getStatus(): mixed;
public function getContent(): mixed;
public function setContent($key): $this;
private function setContents($keys): void;
public function setHeader($key): $this;
private function setHeaders($keys): void;
public function relocation(string $url): void;
public function json($data, $code = 200): mixed;
public function __debugInfo();
  • Помещает в себя всю нужную информацию
  • Возвращает всю информацию
  • Изменяет код ответа
response()->changeResponseCode(200);
  • Возвращает статус
  • Возвращает контент
  • Устанавливает контент
response()->setContent('content');
response()->setContent([''content', 'content1']);
  • Устанавливает контент
  • Устанавливает хеадер | аналогия с контентом
  • Используется для хеадера
  • Переадресация
  • Возвращает json

Router

  • core\routers\Router;
  • router()
public static function __callStatic($func, $args);
public function __call($func, $args): Exception;
public function getRequestMethod(): string;
public function getCurrentUrl(): string;

Используется, чтобы задать роутеры: {integer}, {string}, {any}

Route::get('/', function() {
    echo 'main';
});

Route::get('/user/id{integer}', '\app\controllers\IndexController@userProfile'); // userProfile($id)

Base Route

public static function get(...$arguments): void;
public static function post(...$arguments): void;
private static function addRouter(string $method, $arguments): void;
public function initRouters(): void;
public function startRoute(): mixed;
private function initRout($matches): mixed;
private function initNotFoundRout(): string; // 404 not found

Валидация

  • core\validate\Validate
public function rules($request, array $rules): void;
private function callMethod($data, $params, string $key): void;
public function min($data, string $length, string $input): void;
public function max($data, string $length, string $input): void;
public function required($data, string $input): bool;
public function getErrors(): array;
public function isValid(): bool;

Все ошибки валидации содержатся в config/ru-validate.php. Чтобы изменить язык, Вам нужно создать новый файл: eng-validate.php, зайти в config/app.php и изменить validate_errors на название вашего файла.

Использовать валидацию можно так:

$request = new \Request;

$validate = new Validate;

$validate->rules($request->getAll(), [
        'login'    => 'required|min:5|max:15',
        'password' => 'required|min:2|max:10',
    ]
);

if ($validate->isValid()) {
    echo 'success';
} else {
    dd($validate->getErrors());
}

Views

  • core\views\View;
  • function view($path, $data = [], $type = '')

Шаблоны используют twig. Функция view() принимает: путь к файлу, дата и тип. Так как твиг понимает практически все типы, то Вы можете использовать различные расширения: html, php, twig и т.п. По умолчанию тип .html. Изменить можно в config/app.php[types_file] Вложенность описывается через . (точку)

view('index', ['login']);
$data = 'name';
view('user.profile', compact('data'), 'php'); // resources/views/user/profile.php

Harry | Potter

  • core\harry\Potter;

Harry является подобием eloquent Методы описывать не буду, так как их много.

В модели можно указать название таблицы protected $table = 'users' Если название не указанно, то будет применено : 'model' + 's'

Примеры использования:

$user = new User;
$user->login = 'DeadMemories';
$user->save(); // Создает новую запись
$user->login // Возвращает логин из созданной записи
  • Обновление
$user = new User;
$user->findId(1);
$user->login = 'New login';
$user->update();

$user->login; // вернет 'new login'
  • Выборка
$user = new User;
$data = $user->select('users.id', 'users.login', 'image.src as image_path')
            ->leftJoin('images as image', function($q) {
                $q->on('image.user_id', '=', 'users.id')->where('image.status', '=', 1);
            })
            ->get();

$data1 = $user->all();
$user->findId(2);
$user->login;
  • Удаление
$user->delete(2);

About

framework with laravel ideas :P

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published