Criação de um projeto Laravel Passo a Passo

Tecnologia infraestrutura e desenvolvimento

Criação de um projeto Laravel Passo a Passo

instalacao do projeto usando o laravel jetstream

1 banco de dados mysql

db_system2

senha: mtEpsayePAwrX5Cz

Obs: padrao do banco de dados e preciso ser UTF8mb4_general_ci

2 baidxando projeto via composer

composer create-project laravel/laravel system2

3 instalando laravel jetstream

composer require laravel/jetstream

4 habilitando jetstream no sistema com tema escuro

php artisan jetstream:install inertia –ssr –dark

5 parametrizando o projeto no env

6 instalando pacote do npm

npm install

7 buildando projetos com gerenciador de pacotes npm
npm run build

8 criando tabelas e populando com o eloquente do laravel
php artisan migrate

Nesta parte e preciso ter conhecimento sobre a hospedagem e apontar o o dominio para pasta raiz do sistema e a

9 apos acessar o sistema vamos as configurações básicas começaremos pelo horario
1 acessar a pasta app/config/app.php
alterar a linha 73
de: ‘timezone’ => ‘UTC’,
para: ‘timezone’ => ‘America/Sao_Paulo’,

2 acessar tbm dentro da pasta config o arquivo jetstream.php
e descomentar as linhas 61 62 e 63
    de:
'features' => [
    // Features::termsAndPrivacyPolicy(),
    // Features::profilePhotos(),
    // Features::api(),
    // Features::teams(['invitations' => true]),
    Features::accountDeletion(),
],
para:
  'features' => [
    Features::termsAndPrivacyPolicy(),
    Features::profilePhotos(),
    Features::api(),
    // Features::teams(['invitations' => true]),
    Features::accountDeletion(),
],
estas alterações irão ativar algumas funções do jetstream para utilizarmos  mais tarde com o permissionamento.

10 rodar o build e testar as alterações feitas
npm run build

11 proximo passo e parametrização de rotas para isso vamos criar um controler
php artisan make:controller Web/PageController

1 vamos trazer renderização das paginas para dentro do controlador e tirar a funçaõ das rotas
desta forma sera possivel criar cache das rotas e tornar o sistema ate 100X mais rapido
apos tirar as rederizações padroes, dashborad e welcome da rota web e preciso ajustar a rota api

2 para isso vamos criar um controller para exibir os usuarios
php artisan make:controller UserController --resource


Obs: anste de usar API e preciso ativar autenticação de cessão por crftoken no laravel sanctum, decomentando a linha "\Lravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,"
Next, if you plan to utilize Sanctum to authenticate a SPA, you should add Sanctum's middleware to your api middleware group within your application's app/Http/Kernel.php file:

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],


3 e usar um recurso poderoso do laravel para retorno de informações da API pelo controller
php artisan make:resource UserResource
"resources"
    3.1 dentro do resource basicamente ele recebera os dados enviados pelo controller e transforma e json para resposta
    uma observação importante e que desta forma e facil organizar e parametrizar o retono da API como desejarmos

    ex: 
    public function toArray(Request $request): array
        {
            return [
                'id'   => $this->id,
                'name' => $this->name,
                'email' => $this->email,
                'role_id' => $this->roles,
                'roles' => $this->roles,
                'created_at' => $this->created_at->toDateString(),

            ];
        }
    3.2 desta forma o retono da funcao do controler sera  assim:
    class UserController extends Controller
        {
            /**
             * Display a listing of the resource.
             */
            public function index()
            {
                return UserResource::collection(User::all());
            }

Testando as alterações e parametrizações de rotas.
Para realizar os teste vamos criar uma pagina com VueJS para receber as informações do controler por meio do resource.

Dentro da pasta resource/js/pages crie uma pasta de usuario sempre seguindo as regras de PSR-4 para organização do projeto, neste caso em ingles tbm ex: User
Dentro da pasta user vamos criar o index.vue

Passo importante

Para publicar as imagens de dentro do storage do projeto laravel e preciso utilizar o comando

php artisan storage:link
desta forma ele ira publicar o local onde as imagens são salvas

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *