TGViewer
CleverDevs CleverDevs @cleverdevs · 10.9K subscribers
Post #2140 4.98K
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم

ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید

در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده

حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید

برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :

use Illuminate\Support\Collection;

public function boot()
{
Collection::macro('even', function () {
return $this->filter(function ($value) {
return $value % 2 === 0;
});
});
}


حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :

php 
$numbers = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

$evenNumbers = $numbers->even();

// $evenNumbers will now contain [2, 4, 6, 8, 10]


برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید

https://ditty.ir/posts/laravel-macro/J6dqn

#Laravel #php
@CleverDevs - @CleverDevsGp
  • 👍 17
  • 🔥 4
  • ❤ 3
  • ⚡ 3
More from @cleverdevs
  1. Oct 3, 2026خیلی وقتا که از ایجنت‌ها برای کدنویسی استفاده می‌کنید، برای یه تسک ساده یا کلی پکیج اضافه…
  2. Oct 2, 2026کلاینت ZedSecure رو روی AUR منتشر کردم. الان می‌تونید از اونجا نصبش کنید. https://aur.arch…
  3. Oct 1, 2026یکی از کامند‌های بدرد بخور لینوکس که برای دیباگ کردن میتونه کمکتون کنه strace (مخفف system…
  4. Sep 24, 2026شرکت کوالکام اعلام کرده قرار هست پشتیبانی رسمی لپتاپهای مجهز به چیپ Snapdragon X2 از لینوک…
  5. Sep 23, 2026توی کدای کرنل برای سیستم‌کال reboot شما باید دوتا magic value به تابع بدید تا کرنل برای ای…
  6. Sep 21, 2026یه نفر اومده و یه موزیک پلیر لینوکس به اسم sung با cpp و qt نوشته که طراحی زیبا و ویژگی ها…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →