Performance: Mail templates
MEDIUM IMPACT
This affects the server response time and initial page load speed when sending emails with rendered templates.
<?php // In controller $orders = $user->orders()->with('product')->get(); Mail::send('emails.welcome', ['user' => $user, 'orders' => $orders], function($message) use ($user) { $message->to($user->email)->subject('Welcome!'); }); // Blade template uses preloaded data @foreach($orders as $order) {{ $order->product->name }} @endforeach
<?php // In controller Mail::send('emails.welcome', ['user' => $user], function($message) use ($user) { $message->to($user->email)->subject('Welcome!'); }); // Blade template with heavy loops and inline queries @foreach($user->orders as $order) {{ DB::table('products')->where('id', $order->product_id)->first()->name }} @endforeach
| Pattern | DB Queries | Template Render Time | Email Size | Verdict |
|---|---|---|---|---|
| Inline queries in template | Multiple per item | High (500ms+) | Medium | [X] Bad |
| Preloaded data passed to template | Single query | Low (100ms) | Medium | [OK] Good |
| Heavy images and CSS | N/A | Low | Large (100+ KB) | [X] Bad |
| Minimal CSS and no large images | N/A | Low | Small (<20 KB) | [OK] Good |