لاراول، فریمورک محبوب PHP، از زمان انتشار به طور مداوم در حال پیشرفت بوده است. با هر نسخه جدید، لاراول ویژگی ها و پیشرفت های هیجان انگیزی را به ارمغان می آورد که توسعه وب را آسان تر و کارآمدتر می کند. در این مقاله 20 ویژگی لاراول را که باید در سال 2023 بدانید را بررسی خواهیم کرد. اگر شما یک توسعهدهنده با تجربه یا حتی یک کنجکاو در زمینه تکنولوژی هستید، این 20 ویژگی لاراول را که در سال 2023 باید بدانید، از دست ندهید.
اولین گام در سفر ما به دنیای ویژگیهای جدید لاراول در سال 2023، یک نگاه کلی به این مهم است. با گسترش استفاده از لاراول، باید بهروز با این بهبودها و امکانات انجام شود تا بتوانیم بهترین تجربه را برای کاربران خود فراهم کنیم.
1. کامپوننت های Blade
اجزای Blade به شما این امکان را می دهند که منطق UI را کپسوله کنید و از آن در سراسر برنامه خود استفاده مجدد کنید. آنها روشی تمیز و مدولار برای سازماندهی view های شما ارائه می دهند و حفظ کد شما را آسان تر می کنند. با اجزای Blade، می توانید عناصر UI قابل استفاده مجدد ایجاد کنید و با استفاده از یک سینتکس ساده آنها را در قالب های خود قرار دهید.
<x-alert type="success">
Welcome to my website!
</x-alert>
2. یکپارچه سازی با Livewire
Livewire یک فریمورک فول استک برای لاراول است که به شما امکان می دهد اجزای رابط کاربری تعاملی را بدون نوشتن جاوا اسکریپت بسازید. با ادغام دقیق آن با لاراول، می توانید به راحتی عناصر رابط کاربری پویا ایجاد کنید که در real-time به روز می شوند و برنامه شما را پاسخگوتر و کاربرپسندتر می کند.
class Counter extends Component
{
public $count = 0;
public function increment()
{
$this->count++;
}
public function render()
{
return view('livewire.counter');
}
}
3. Laravel Sanctum
Laravel Sanctum یک سیستم احراز هویت سبک وزن و با استفاده آسان برای برنامه های کاربردی تک صفحه ای (SPA)، برنامه های کاربردی تلفن همراه و API های مبتنی بر توکن ساده ارائه می دهد. با Sanctum، میتوانید بدون زحمت APIهای خود را ایمن کنید و با استفاده از توکنهای API احراز هویت کاربران را تأیید کنید.
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}
4. لاراول ایرلاک
Laravel Airlock یکی دیگر از سیستم های احراز هویت ارائه شده توسط لاراول است که برای SPA ها و برنامه های موبایل طراحی شده است. این به شما امکان می دهد تا توکن های API را برای اهداف احراز هویت صادر کنید و یک راه ساده برای احراز هویت کاربران بدون سربار ویژگی های مربوط به session ارائه می دهد.
use Laravel\Airlock\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}
5. Job Batching
Job Batching یک ویژگی جدید در لاراول 8 است که به شما امکان می دهد چندین کار را در یک دسته گروه بندی کنید و آنها را به طور همزمان اجرا کنید. این می تواند به طور قابل توجهی عملکرد برنامه شما را در هنگام برخورد با تعداد زیادی جاب بهبود بخشد.
Batch::dispatch([
new ProcessPodcast($podcast1),
new ProcessPodcast($podcast2),
new ProcessPodcast($podcast3),
])->then(function (Batch $batch) {
// All jobs completed successfully...
})->catch(function (Batch $batch, Throwable $e) {
// An error occurred while processing the batch...
});
6. کارخانه های مدل
کارخانه های مدل لاراول به شما این امکان را می دهند که طرح هایی را برای تولید داده های جعلی تعریف کنید. این در هنگام نوشتن تست ها یا زمانی که نیاز به تولید مقدار زیادی داده با ظاهر واقعی برای اهداف توسعه دارید، بسیار مفید است.
use Illuminate\Database\Eloquent\Factories\Factory;
class UserFactory extends Factory
{
protected $model = User::class;
public function definition()
{
return [
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
];
}
}
7. تلسکوپ لاراول
تلسکوپ لاراول یک دستیار اشکال زدایی زیبا برای برنامه های لاراول شما ارائه می دهد. این به شما امکان می دهد تا به راحتی درخواست های برنامه خود را بررسی کنید، کوئری های پایگاه داده را مشاهده کنید، کارهای نظارتی و موارد دیگر را مشاهده کنید. تلسکوپ ابزاری ارزشمند برای اشکال زدایی و بهینه سازی برنامه های لاراول شما است.
8. لاراول اکو
Laravel Echo یک کتابخانه جاوا اسکریپت است که کار با WebSockets را در برنامه های لاراول شما آسان می کند. این یک API ساده و زیبا برای ارسال و دریافت رویدادها از طریق اتصال WebSocket ارائه میکند که به شما امکان میدهد ویژگیهای بلادرنگ مانند چت، اعلانها و بهروزرسانیهای زنده را ایجاد کنید.
Echo.channel('chat-room')
.listen('MessagePosted', (e) => {
console.log(e.message);
});
9. شنوندگان رویداد در صف
شنوندگان رویداد در لاراول اکنون می توانند در صف قرار بگیرند و به شما امکان می دهند رویدادها را در پس زمینه مدیریت کنید و زمان پاسخگویی برنامه خود را بهبود بخشید. شنوندگان رویداد در صف به صورت ناهمزمان پردازش می شوند، رشته درخواست اصلی را آزاد می کند و برنامه شما را پاسخگوتر می کند.
class SendWelcomeEmail implements ShouldQueue
{
use Queueable;
public function handle(UserRegistered $event)
{
// Send welcome email to the user...
}
}
10. لاراول میکس
Laravel Mix یک ابزار قدرتمند جمعآوری assets است که فرآیند ساخت و مدیریت assets های فرانت اند شما را ساده میکند. این یک API تمیز و روان برای تعریف ساختهای بسته وب ارائه میکند، که کامپایل داراییهای CSS و جاوا اسکریپت شما، بهینهسازی آنها و تولید تگ های HTML مورد نیاز را آسان میکند.
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();
11. Laravel Dusk
Laravel Dusk یک ابزار اتوماسیون و تست مرورگر شخص اول است که توسط لاراول ارائه شده است. به شما امکان میدهد تستهای مرورگر واضح و قابل درک بنویسید که تعاملات کاربر را شبیهسازی میکند و ادعا میکند که برنامه شما مطابق انتظار عمل میکند.
public function testLogin()
{
$this->browse(function ($browser) {
$browser->visit('/login')
->type('email', 'user@example.com')
->type('password', 'secret')
->press('Login')
->assertPathIs('/dashboard');
});
}
12. بهبود اتصال مدل مسیر
در لاراول 8، route model binding برای ارائه انعطافپذیری بیشتر و گزینههای سفارشیسازی بهبود یافته است. اکنون میتوانید resolver های سفارشی را برای پارامترهای مسیر تعریف کنید و به شما این امکان را میدهد که کنترل دقیقی بر نحوه بازیابی مدلهای خود و اتصال به مسیر داشته باشید.
public function boot()
{
Route::bind('user', function ($value) {
return User::findBySlug($value) ?? abort(404);
});
}
13. Laravel Horizon
Laravel Horizon یک داشبورد زیبا و ابزار پیکربندی کد محور برای نظارت و مدیریت صف های لاراول شما است. این امکان نظارت در زمان واقعی بر ورکر های صف شما را فراهم می کند و به شما امکان می دهد وضعیت و عملکرد صف های خود را به راحتی مشاهده کنید.
14. Route Caching
ویژگی کش مسیر لاراول به شما این امکان را می دهد که فرم کامپایل شده تعاریف مسیر برنامه خود را کش کنید و در نتیجه ثبت مسیر سریعتر انجام شود. این می تواند به طور قابل توجهی عملکرد برنامه شما را بهبود بخشد، به خصوص اگر تعداد مسیرهای زیادی داشته باشید.
php artisan route:cache
15. لاراول Scout
Laravel Scout یک بسته جستجوی متن کامل است که به طور یکپارچه با لاراول ادغام می شود. این یک راه ساده و زیبا برای جست و جوی مدل های Eloquent شما با استفاده از درایورهای مختلف مانند Algolia، Elasticsearch و موارد دیگر ارائه می دهد.
use Laravel\Scout\Searchable;
class Product extends Model
{
use Searchable;
// ...
}
16. Laravel Cashier
Laravel Cashier یک رابط رسا و روان برای اشتراک کاربران در خدمات برنامه شما فراهم می کند. این کار صورتحساب اشتراک، صورتحساب، تولید رسید و موارد دیگر را انجام می دهد و ادغام صورتحساب مبتنی بر اشتراک را در برنامه لاراول شما آسان می کند.
use Laravel\Cashier\Billable;
class User extends Authenticatable
{
use Billable;
// ...
}
17. Eloquent: Subquery Enhancements
در لاراول 8، Eloquent چندین پیشرفت در رابطه با کوئری های فرعی دریافت کرده است که کار با کوئری های پیچیده را آسان تر می کند. اکنون میتوانید کوئری های فرعی را مستقیماً در سازنده کوئری خود تعریف کنید و از آنها در چندین کوئری استفاده مجدد کنید.
latestPosts = DB::table('posts')
->select('title')
->where('created_at', '>', function ($query) {
$query->select('created_at')
->from('posts')
->orderByDesc('created_at')
->limit(1);
})
->get();
18. Eloquent: روابط پویا
لاراول 8 روابط پویا را معرفی می کند که به شما امکان می دهد روابط را در زمان اجرا تعریف کنید، بدون اینکه نیازی به اعلام آنها در کلاس مدل خود داشته باشید. این انعطاف پذیری بیشتری را فراهم می کند و به شما امکان می دهد با ساختارهای داده پویا کار کنید.
public function products()
{
return $this->hasManyThrough(
$this->category->productModel,
$this->category,
'shop_id',
'category_id',
'id',
'id'
);
}
19. Eloquent: Automatic Date Casting
لاراول 8 ویژگی تعیین تاریخ خودکار را معرفی کرد که به طور خودکار ستون های تاریخ را به نمونه هایی از کربن تبدیل می کند و به شما امکان می دهد راحت تر با آنها کار کنید. دستکاری تاریخ را ساده می کند و کار با date را در مدل های Eloquent شما شهودی تر می کند.
protected $casts = [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
20. منابع API لاراول
منابع API لاراول روشی مناسب برای تبدیل مدل های Eloquent شما به نمایش های JSON ارائه می دهند. آنها به شما اجازه می دهند ارائه منابع خود را سفارشی کنید و داده های اضافی را برای پاسخ تعریف کنید.
class UserResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
];
}
}
در کنار 20 مورد بالا موارد دیگری مثل :
مقایسه بین لاراول Octane و node.js
لاراول Octane
استفاده از Bun در لاراول
دیزاین پترن های لاراول
می تواند به شما در تبدیل شدن به یک برنامه نویس حرفه ای کمک کند.
نتیجه
لاراول به تکامل خود ادامه می دهد و ویژگی ها و پیشرفت های پیشرفته ای را در اختیار توسعه دهندگان قرار می دهد. با به روز ماندن با جدیدترین ویژگی ها، می توانید برنامه های با کیفیت بالاتر را سریعتر و کارآمدتر بسازید. این 20 ویژگی لاراول که در بالا ذکر شد برای توسعه دهندگانی که در سال 2023 با لاراول کار می کنند ضروری خواهند بود.
این بهبودات نه تنها توسعهدهندگان حرفهای بلکه هر کسی که به دنبال تازهترین امکانات توسعه وب است، را تشویق میکند.