Sefaz/Portal
Pacote que configura automaticamente o frontend das aplicaƧƵes., (*1)
Instale uma nova versão do Laravel
``` bash
laravel new novoSistema, (*2)
Crie a chave da aplicação
``` bash
php artisan key:generate
Altere o nome da aplicação com o comando:, (*3)
``` bash
php artisan app:name NovoSistema, (*4)
Adicione a dependĆŖncia do Sefaz/Portal no novoSistema:
``` bash
composer require motamonteiro/sefaz-portal
Publique os arquivos necessƔrios na pasta public
``` bash
php artisan vendor:publish, (*5)
Escolha a opção do PortalServiceProvider
``` bash
[5 ] Provider: MotaMonteiro\Sefaz\Portal\Providers\PortalServiceProvider
Abra o aqrquivo app\Http\Kernel.php e adicione o PortalMiddleware (FrontendMiddleware ou BackendMiddleware) para controlar a autenticacao e a permissao dos usuƔrios
``` php
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
...
//\App\Http\Middleware\VerifyCsrfToken::class, (se quiser, comente a verificação do CsrfToken)
...
],
...
];, (*6)
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'portal' => \MotaMonteiro\Sefaz\Portal\Http\Middleware\FrontendMiddleware::class,
//'portal' => \MotaMonteiro\Sefaz\Portal\Http\Middleware\BackendMiddleware::class,
];, (*7)
Abra o arquivo `app\Providers\EventServiceProvider.php` e substitua a variavel `$listen` de acordo com o trecho abaixo
``` php
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'MotaMonteiro\Sefaz\Portal\Events\ServidorApiNaoRespondeuEvent' => [
'MotaMonteiro\Sefaz\Portal\Listeners\ServidorApiIndisponivelListener',
],
'MotaMonteiro\Sefaz\Portal\Events\ServidorApiNaoRespondeuCorretamenteEvent' => [
'MotaMonteiro\Sefaz\Portal\Listeners\ServidorApiRespostaInvalidaListener',
],
];
Copie trecho abaixo e cole no final do arquivo .env e altere de acordo com o seu projeto
``` php, (*8)
-----------------------------------------------------------------------------------------------------------------------
CONFIGURAĆĆES PARA USO DO PACOTE SEFAZ-PORTAL
-----------------------------------------------------------------------------------------------------------------------
SISTEMA_VERSAO='0.1.0'
SISTEMA_CODIGO= ${APP_NAME}
SISTEMA_NOME=${APP_NAME}
SISTEMA_DESC='Sistema de Exemplo'
SISTEMA_URL= ${APP_URL}
SISTEMA_URL_BACKEND='https://api-cod_sistema_sistema-metro-des.com.br/v1/'
SISTEMA_TOKEN_KEY_BACKEND='portaltokendev', (*9)
MODULO_CODIGO= ''
MODULO_NOME=''
MODULO_URL= '', (*10)
AMBIENTE_SIGLA=${APP_ENV}
AMBIENTE_NOME='Ambiente Local', (*11)
CDN_CSS='https://cdn-des.sefaz.es.gov.br/layout/css/'
CDN_JS='https://cdn-des.sefaz.es.gov.br/layout/js/'
CDN_IMG='https://cdn-des.sefaz.es.gov.br/layout/img/', (*12)
EMAIL_BACKEND='test@test.com'
EMAIL_BACKEND_SERVIDOR='test@test.com'
EMAIL_FRONTEND='test@test.com'
EMAIL_PORTAL_API='test@test.com', (*13)
PORTAL_URL='https://s2-metro-des.sefaz.es.gov.br/portal/'
PORTAL_NOME_COOKIE='PORTAL_TOKEN_DEV', (*14)
PORTAL_API_URL='https://s2-intranet-des.sefaz.es.gov.br/api/portal/'
PORTAL_API_TOKEN_KEY=${SISTEMA_TOKEN_KEY_BACKEND}, (*15)
No caso de uma aplicação `Frontend`, abra o arquivo `public\css\app.css` e remova todo o conteúdo do arquivo para não dar conflito com o `CDN SEFAZ`.
Crie uma rota de exemplo dentro de `routes\web.php`
``` php
<?php
Route::get('/', ['as' => 'exemplo', 'middleware' => 'portal:COD_FUNCAO', 'uses' => 'ExemploController@index']);
Crie um controller de exemplo dentro de app\Http\Controllers
``` php
<?php, (*16)
namespace App\Http\Controllers;, (*17)
class ExemploController extends Controller
{
public function index()
{
return view('exemplo');
}
}, (*18)
Crie uma view de exemplo dentro de `resources\views\exemplo.blade.php`
``` php
@extends('Portal::layout.default')
@section('content')
Exemplo
@endsection
Inicie o servidor do php
``` bash
php -S 0.0.0.0:8000 -t public, (*19)
Inicie o browser
``` bash
http://ESTACAO.net.sefaz.es.gov.br:8000