Do not speak Portuguese? Translate this site with Google or Bing Translator
Recursos ocultos do Laravel que você precisa conhecer

Posted on: March 03, 2023 11:07 AM

Posted by: Renato

Categories: Laravel

Views: 212

Recursos ocultos do Laravel que você precisa conhecer 

O Laravel é um poderoso framework PHP que existe há mais de uma década. Ele ganhou muitos seguidores devido à sua sintaxe elegante, conjunto robusto de recursos e facilidade de uso. Seja você um desenvolvedor Laravel experiente ou apenas começando, existem alguns recursos ocultos dos quais você pode não estar ciente. Nesta postagem do blog, destacaremos alguns dos recursos ocultos mais úteis do Laravel que você precisa conhecer em 2023.

Cache de rota
O cache de rota é um recurso que foi introduzido no Laravel 5.5. Ele permite que você armazene em cache as rotas do seu aplicativo, o que pode acelerar significativamente o tempo de inicialização do seu aplicativo. Para usar o cache de rota, basta executar o seguinte comando em seu terminal:

php artisan route:cache

 

2. Artisan command scheduler

O programador de comandos Artisan permite-lhe agendar tarefas repetitivas na sua aplicação, tais como envio de e-mails, limpeza de dados antigos, ou actualização da sua base de dados. Para utilizar o programador de comandos Artisan, terá de adicionar uma tarefa ao ficheiro app/Console/Kernel.php:

protected function schedule(Schedule $schedule)
{
$schedule->command('emails:send')->dailyAt('9:00');
}
 

3. Automatic Namespace Model Detection

O Laravel possui um recurso chamado detecção automática de modelo de namespace, que permite omitir o namespace de seus modelos quando você os estiver usando. Por exemplo, em vez de escrever:

$user = App\User::find(1);
$user = User::find(1);

 

4. Model factories

As fábricas de modelos são uma ótima maneira de gerar dados falsos para testar seu aplicativo. Você pode definir uma fábrica para um modelo criando um arquivo no diretório database/factories. Por exemplo, aqui está uma fábrica para um modelo de usuário:

$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => bcrypt('secret'),
];
});

5. Route Model Binding

A associação de modelo de rota é um recurso que permite recuperar automaticamente uma instância de um modelo com base no valor de um parâmetro de URL. Por exemplo, em vez de escrever:

Route::get('users/{id}', function ($id) {
$user = App\User::find($id);

return view('users.show', compact('user'));
});

você pode simplesmente escrever:

 

Route::get('users/{user}', function (App\User $user) {
return view('users.show', compact('user'));
});
 

6. Task Scheduling with Task Closures

O agendamento de tarefas em Laravel pode ser feito utilizando encerramentos de tarefas, que proporcionam uma forma mais elegante de agendar tarefas em comparação com o agendamento de comandos artesanais. Os encerramentos de tarefas podem ser definidos no ficheiro app/Console/Kernel.php, e são executados numa programação definida no mesmo ficheiro. Aqui está um exemplo de encerramento de uma tarefa:

$schedule->call(function () {
// Your task logic
})->daily();
 

7. HTTP middleware

O middleware HTTP são classes que podem ser utilizadas para filtrar pedidos HTTP antes de chegarem à sua aplicação. Por exemplo, pode utilizar um middleware para verificar se um utilizador está autenticado antes de lhe permitir aceder a um determinado itinerário ou recurso. Pode definir o seu próprio middleware, criando uma classe no directório app/Http/Middleware. Aqui está um exemplo de um middleware simples:

 

namespace App\Http\Middleware;

use Closure;

class CheckAge
{
public function handle($request, Closure $next)
{
if ($request->age <= 200) {
return $next($request);
}

return redirect('home');
}
}

 

8. Eloquent Subqueries

As subconsultas do Eloquent são um recurso poderoso que permite executar subconsultas dentro de uma consulta do Eloquent. Isso pode ser útil quando você precisa recuperar dados com base nos resultados de outra consulta. Aqui está um exemplo de uma subconsulta do Eloquent:

 

$users = App\User::select('name')
->whereIn('id', function ($query) {
$query->select('user_id')
->from('orders')
->whereRaw('orders.created_at >= ?', [Carbon::yesterday()]);
})
->get();

 

9. Route Prefixing

O prefixo de rota permite-lhe agrupar rotas sob um prefixo URL comum. Isto pode ser útil quando precisar de organizar os seus itinerários em diferentes secções ou categorias. Pode definir os prefixos das rotas no ficheiro rotas/web.php ou rotas/api.php. Aqui está um exemplo de como utilizar o prefixo de rota:

 

Route::prefix('admin')->group(function () {
Route::get('users', function () {
// Matches The "/admin/users" URL
});
});

 

10. Query Builder Macros

As macros de construção de consultas são métodos personalizados que se podem adicionar ao construtor de consultas Laravel. Isto pode ser útil quando necessita de reutilizar uma determinada consulta em vários locais ao longo da sua aplicação. Pode definir macros de construção de consultas no ficheiro app/Providers/AppServiceProvider.php. Aqui está um exemplo de uma macro de construtor de consultas:

 

use Illuminate\Support\Facades\DB;

DB::macro('getTotal', function ($table) {
    return $this->table($table)->sum('total');
});

// Use the macro
$total = DB::getTotal('orders');

 

 conclusão, Laravel é um quadro poderoso e rico em características que tem muito a oferecer. Quer seja um desenvolvedor Laravel experiente ou apenas a começar, há algumas características escondidas que precisa de conhecer em 2023. Esperamos que este post no blog o tenha ajudado a descobrir algumas características novas e úteis que irão tornar a sua experiência de desenvolvimento de Laravel ainda melhor.

Fonte: 

https://ismatbabir.medium.com/laravel-hidden-features-you-need-to-know-in-2023-d76eba1bdfc3


2

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (158) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (27) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (40) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1)

New Articles



Get Latest Updates by Email