An open API service indexing awesome lists of open source software.

https://github.com/pkit-php/framework

The Pkit Framework.
https://github.com/pkit-php/framework

framework jwt php pkit rest-api

Last synced: 3 months ago
JSON representation

The Pkit Framework.

Awesome Lists containing this project

README

          

# Pkit

![https://packagist.org/packages/pkit/pkit](https://img.shields.io/packagist/dt/pkit/pkit)
![https://packagist.org/packages/pkit/pkit](https://img.shields.io/packagist/v/pkit/pkit)
![https://packagist.org/packages/pkit/pkit](https://img.shields.io/packagist/l/pkit/pkit)

![https://github.com/pkit-php/pkit/raw/master/icon.png](https://github.com/pkit-php/pkit/raw/master/icon.png)

`Esse projeto está parado para fins de estudo`

```Esse projeto está parado para fins de estudo```

Pkit é um framework php para aplicações web que visa facilitar o desenvolvimento de tais projetos.

## Instalação

Instale o Pkit através do [composer](https://getcomposer.org/download/)

`composer require pkit/pkit`

## Como iniciar

- adicione o `.htaccess` para que só considere o `index.php`

```php
RewriteEngine On
RewriteRule . index.php [L,QSA]
```

- inicie o roteador

```php
'[1-9]*',
* 'repo' => '[\w]*'
* 'file' => '.*'
* ]
*/
$params = Router::getParams();
/***/
return new Response(/***/);
}
}

return new FileByRepo;
```

### Rota especial

As rota interceptam erros das rotas, ainda funcionando como um rota comum, contudo qualquer método HTTP é pego pelo método `ALL`. Essa rota deve ser chamada de '*.php' e estar no pasta `routes`.

```php
[
// os valores são passados como parâmetros para o Middleware
Auth::class => "jwt",
],
];

function GET($request)
{
/***/
return new Response(/***/);
}

// os atributos podem ser usado para definir os middlewares
#[Middlewares([Auth::class => "session",])]
function POST($request)
{
/***/
return new Response(/***/);
}
}

return new Home;
```

### middlewares do framework

- `Pkit/Middlewares/Auth`  : autentica o usuário com base na sessão
- Os possíveis parâmetros são “jwt”, “session” ou a sequência configuradas por array
- `Pkit/Middlewares/Maintenance` : indica um rota em manutenção

## Session

```php
'1234',
'name' => 'user...'
]);
return new Response("logged");
}

/***/
}

return new Login;
```

### logout

```php
'session'
])]
function GET($request)
{
/***/
Session::logout();
return new Response("logged out");
}

/***/
}

return new Logout;
```

## Jwt

```php
'jwt'
])]
function GET($request)
{
/***/
// pega o token enviado pelo header 'Authorization'
$token = Jwt::getBearer();
return new Response(Jwt::getPayload($token));
}

function POST($request)
{
/***/
$token = Jwt::tokenize(/*payload*/);
// envia o token pelo header 'Authorization'
Jwt::setBearer($token);
return new Response(Jwt::getPayload($token));
}

/***/
}

return new Login;
```

## Variáveis de ambiente especiais

```php
MIDDLEWARES_NAMESPACE=\App\Middlewares # namespace onde se encontra os middlewares que não são do framework
ROUTE_PATH=/var/www/pkit/routes
PUBLIC_PATH=/var/www/pkit/public
VIEW_PATH=/var/www/pkit/view
SESSION_TIME=0 # tempo da sessão do PHP
SESSION_PATH=/var/lib/php/sessions # path da sessão
JWT_KEY=abcde # chave do JWT
JWT_EXPIRES=0 # tempo de expiração do JWT
JWT_ALG=0 # algoritmo de criptografia do JWT
DOMAIN=pkit.com # domínio a ser desconsidera ao procura o subdomínio
SUB_DOMAIN=true # se true o subdomínio declarado será considerado com parte da URI
PKIT_DEBUG=true # se true, caso aja erro, mostra uma pagina com o código de erro e a mensagem do erro
PKIT_CLEAR=false # se false, mantêm o conteúdo renderizado mesmo que tenha sido ocasionado um erro
```

***Para mais informações acesse as documentações nas pastas no framework***