Golden Code – Telegram
Golden Code
738 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
Forwarded from کداکسپلور | CodeExplore (Aqa Reza)
💱بزنین بریم تو کار ارزدیجیتال!

یه سایتی براتون اوردم که بهتون API میده ولی نه هر API معمولی ( مثلا اب و هوا و فروشگاه و... )
اینسری میتونین از سایت پایین API های ارز دیجیتال و واحد پول هارو به راحتی دریافت کنین
استفاده رایگان هم داره و فقط یکم محدودیت جلوتونه که زیادم اذیت نمیکنه
از طرف دیگه API که در اختیارتون میزاره خیلی خفنه و میتونین هزاران بلا سرش بیارین

🔥جون میده برای یه تیبل خفن برای قیمت ها

🌐https://app.currencyapi.com/

#api
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
SOLID چیه و چه کاربردی داره؟ 🦦

‏SOLID یک مجموعه اصول طراحی شیءگرا هست که به توسعه‌دهندگان کمک می‌کنه تا کدهای قابل فهم، قابل نگهداری و انعطاف‌پذیر بنویسن. این اصول توسط Robert C. Martin معرفی شده و شامل پنج اصل مهم هست:

1⃣‌‏Single Responsibility Principle‏ (SRP) هر کلاس یا ماژول باید تنها یک وظیفه مشخص داشته باشه. این اصل کمک می‌کنه تا کدها ساده‌تر و قابل درک‌تر بشن.

2⃣‌‏Open/Closed Principle (OCP) کلاس‌ها و ماژول‌ها باید برای توسعه باز و برای تغییر بسته باشن. این به این معنیه که باید بتونیم بدون تغییر در کد اصلی، ویژگی‌های جدید اضافه کنیم.

3⃣‏Liskov Substitution Principle (LSP) هر کلاسی که از کلاس دیگه‌ای ارث‌بری می‌کنه باید بتونه به جای کلاس پایه استفاده بشه، بدون اینکه رفتار برنامه خراب بشه.

4⃣‏Interface Segregation Principle‏ (ISP) به جای ایجاد اینترفیس‌های بزرگ و همه‌کاره، باید اینترفیس‌های کوچک و اختصاصی ایجاد کنیم که فقط متدهای مربوط به خودشون رو داشته باشن.

5⃣‏Dependency Inversion Principle‏ (DIP) ماژول‌های سطح بالا نباید به ماژول‌های سطح پایین وابسته باشن. هر دو باید به آبسترکشن‌ها وابسته باشن. این اصل کمک می‌کنه تا وابستگی‌ها بهتر مدیریت بشن و کدها قابل تست‌تر باشن.

برخی از مزایای اصول SOLID ⬇️

🔵کاهش پیچیدگی کد

🔵افزایش قابلیت نگهداری

🔵تسهیل در تست‌پذیری

🔵بهبود قابلیت توسعه

همچنین برای استفاده از اصول SOLID، می‌تونید از ابزارها و فریم‌ورک‌های مختلفی که این اصول رو تسهیل می‌کنن، استفاده کنید ⬇️

‏Spring: یک فریم‌ورک جامع برای توسعه برنامه‌های جاوا که بسیاری از اصول SOLID رو پیاده‌سازی می‌کنه.

‏Angular: یک فریم‌ورک برای ساخت اپلیکیشن‌های وب که به شما کمک می‌کنه تا اصول SOLID رو در برنامه‌های خود پیاده‌سازی کنید.

‏Django: یک فریم‌ورک برای توسعه وب با زبان پایتون که با پیاده‌سازی اصول SOLID به بهبود ساختار کد کمک می‌کنه.

همچنین شرکت‌های بزرگی مثل گوگل و فیسبوک، از اصول SOLID استفاده می‌کنن تا بتونن پروژه‌های بزرگ و پیچیده خودشون رو به صورت یکپارچه و کارآمد مدیریت کنن.

#vesal
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
در لاراول میتونیم با استفاده از متود destroy اقدام به حذف یک یا حتی چند رکورد بر اساس primary key کنیم.
این متود به شکل های مختلفی قابل فراخوانیه.(در تصویر بهش اشاره شده)
همچنین سادگیه استفاده ازش میتونه بر خوانایی کدتون تاثیر مثبت بزاره.✔️
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1809663607573230056?s=35
👍63🔥1
Forwarded from CleverDevs (Mammad)
-اصل Don't Be Cute در کلین کد


این اصل میگه موقع نامگذاری متغیر هات بامزه بازی در نیار
اگه اسم ها خیلی خفن باشن فقط کسایی که متوجهش میشن که حس شوخی نویسنده کد رو میدونن و همینا هم به سختی متوجه جوک میشن
ممکنه کسایی که کد رو میخونن بدونن HolyHandGrenade به چی اشاره میکنه. درسته اسم بامزه ایه ولی DeleteItems اسم بهتریه
همیشه واضح بودن رو به سرگرم کننده بودن ترجیح بدید
بامزگی توی کد اغلب کد رو به شکل عامیانه و محاوره ای نشون میده مثلا از whack به جای kill استفاده نکنید یا مثلا جوکی نزارید که تو وابسته به فرهنگی باشه مثلا از eatMyShorts به جای abort استفاده نکنید

Say What you mean , Mean what you say


#CleanCode
@CleverDevs - @CleverDevsGp
👍6🔥1
در لاراول با استفاده از متود ()isDirty میتونیم بررسی کنیم که یک یا حتی چند attribute از زمان آخرین بازیابی که انجام دادیم تغییر کردن یا نه،

حالا یعنی چی؟؟

فرض کنین میخواید بررسی کنین نام کاربری که درخواست ورود داده نسبت به دفعه ی قبلیش که وارد شده تغییر کرده یا نه، اینجا میشه ازین متود کمک گرفت.
در مثال زیر حالت های مختلفی که نتیجش true یا false میشه بررسی شده.
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1807859649770643832?s=35
👍21🔥1
در لاراول به راحتی میتونیم ویژگی های داینامیک رو به مدلمون اضافه کنیم .
در واقع این ویژگی هارو در دیتابیس تعریف نکردیم و نیاز به تغییر ساختار دیتابیس برای اضافه کردنشان نداریم.

درین حالت میتونیم براشون مقدار پیشفرض نیز مشخص کنیم.
در مثال زیر داخل مدل Media ، به راحتی فرایند دسترسی به url پیاده سازی شده.(بدونه درنظر گرفتن ستونی خاص در دیتابیس)
#Laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید 👇🏾)
https://x.com/laravelbackpack/status/1807738434305531922?s=35
3🔥2
Forwarded from CleverDevs (Mammad)
-اصل Use Searchable Names در کلین کد

اسامی تک کارکتری یا داری عدد یه مشکل خاص دارن اونم اینه که نمیشه بین کد ها سرچشون کرد و پیداشون کرد مثلا شما میتونید MAX_CLASSES_PER_STUDENT رو به راحتی بین کد ها پیدا کنید اما برای پیدا کردن عدد 7 مشکلات بیشتری دارید.
در این صورت ممکنه وقتی سرچ میکنید بره اون تیکه کلمه هارو بین اسم فایلا یا ... جستجو کنه مثلا اسم متغیر رو گذاشین A و کلی فایل دارین که A توش هست و وقتی سرچ میکنید دردسر دارید پس از اسمی استفاده کنید که بشه سرچش کرد.

البته اینم بگم که از متغیر های تک کلمه ای میشه تو اسکوپ های کوچیک استفاده کرد مثلا وقتی for loop میزنید منطقیه که از i یا j استفاده کنید.

#CleanCode
@CleverDevs
@CleverDevsGp
👍3🔥2😁1
Forwarded from Curious Geek ⚡️
❗️Your Code smells
❗️کد هات بو میده

یکی از اصطلاحات مهندسی نرم افزار که خیلی کاربردی هستش. وقتی شرایط زیر پیش میاد کد هاتون بو میده


1⃣ Long Method
متدی است که دارای خطوط زیادی کد بوده و چندین وظیفه را به عهده دارد. این که دقیقا چه متدی طولانی است قابل بحث است و تا حدودی به زبان برنامه نویسی بستگی دارد، اما عدم رعایت اصل single responsibility باعث بودار شدن کد میشه
2⃣ Long parameter list
تعداد پارامترهای زیاد یک متد یا تابع برای بلند مدت کد رو بودار میکنه. تا حدی عامل این موضوع همون مورد 1⃣ هستش ولی اگر نیاز به پارامتر های زیادی داشتیم میتونیم اون ها رو توی یک آبجکت بزاریم
3⃣ Don't repeat yourself
یکی از مشکلاتی که در دراز مدت ایجاد میشه تکرار کد ها در طول توسعه برنامه هست. باید این کد ها رو استخراج کنیم و منطق های تکراری رو تبدیل به متد یا تابع کنیم
4⃣ Dead code
کد هایی دیگه به هر دلیلی توی پروژه کاربردی ندارن رو جای کامنت کردن پاک کنیم. شاید بعداً به کارمون بیان ، خب ورژن کنترلر هایی مثل گیت برای همین ساخته شدن دیگه :)
5⃣ Select good variable names
موقعی که اسم متغیر ها رو انتخاب میکنیم ، سعی کنیم طوری باشه که بشه کاربرد اون متغیر رو از اسم اش متوجه شد

راستی اینا رو از یک ویدئو فارسی توی یوتیوب یاد گرفتم. از این لینک میتونید ویدئو اصلی رو ببینید
🌐 https://bit.ly/3LkXwc0
🆔 @Hiradsajde
5💯1
Forwarded from Pishro App
💡 اولین ورژن از نسخه php 8.4 منتشر شد و شما میتونید برای آزمایش از این نسخه استفاده کنید.
نسخه 8.4 php قراره 21 نوامبر ۲۰۲۴ بطور رسمی منتشر بشه


نسخه Alpha 1 از php 8.4 رو از اینجا میتونید ببینید و برای تست دانلود کنید


https://www.php.net/archive/2024.php#2024-07-05-1

#php

👾 @pishraopp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
در لاراول متود های chopStart و chopEnd بسیار مفیدن زیرا به ما این قابلیت رو میده تا بتونیم از ابتدا یا انتهای یک رشته اقدام به پاک کردن کارکتر مدنظر کنیم.

یعنی چی؟

به مثال یک (chopStart)نگاه کنین، اگر در ابتدای این رشته، کارکتر هایی که تعیین شدن وجود داشته باشن حذف خواهند شد.✔️
(این متود ها از نسخه ۱۱.۱۴ در دسترسن)
#Laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1812576667313066137?s=19
👍32
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 در لاراول، Boolean Query به شما این امکان را می‌دهند که با استفاده از شرایط منطقی مختلف، داده‌ها را از دیتابیس فیلتر کنید.

1. استفاده از شرط where

استفاده از شرط‌های where برای فیلتر کردن داده‌ها با شرایط مختلف:

$users = DB::table('users')->where('name', 'John')->get();


2. استفاده از orWhere

استفاده از orWhere برای اضافه کردن شرط‌های منطقی OR به کوئری:

$users = DB::table('users')->where('name', 'John')->orWhere('name', 'Jane')->get();


3. استفاده از whereBetween

استفاده از whereBetween برای فیلتر کردن داده‌ها با محدوده مقادیر:

$users = DB::table('users')->whereBetween('age', [20, 30])->get();


4. استفاده از whereIn

استفاده از whereIn برای فیلتر کردن داده‌ها بر اساس مجموعه‌ای از مقادیر:

$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();


5. استفاده از whereNull و whereNotNull

استفاده از whereNull و whereNotNull برای فیلتر کردن داده‌ها بر اساس مقادیر null:

$users = DB::table('users')->whereNull('email')->get();
$users = DB::table('users')->whereNotNull('email')->get();


6. استفاده از whereExists

استفاده از whereExists برای بررسی وجود رکوردهای مرتبط در یک ساب کوئری:

$users = DB::table('users')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('posts')
->whereRaw('posts.user_id = users.id');
})
->get();


7. استفاده از توابع when

استفاده از when برای اعمال شرایط به صورت داینامیک:

$role = 'admin';

$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role', $role);
})
->get();


8. ترکیب شرط‌های مختلف

ترکیب چندین شرط با استفاده از گروه‌بندی توابع:

$users = DB::table('users')
->where('status', 'active')
->where(function ($query) {
$query->where('name', 'John')
->orWhere('age', '>', 30);
})
->get();



#لاراول

@TheRaymondDev
👍74
در لاراول بعضی وقتا نیازه تا برخی از کلمات یا عبارت های موجود رو با عبارت های مدنظرمون جابجا کنیم تا تغییراتی که میخوایم اعمال شوند.

چجوری؟

📌 به مثال زیر توجه کنین، دو کلمه ازین جمله انتخاب شده(Tacos و Great) و عملیات جایگذاری رو با استفاده از متود ()swap اعمال کردیم, اکنون خروجی دارای تغییرات جدیدمون خواهد شد.( Burritos fantastic)
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثال دقت کنید👇🏾)
https://x.com/OussamaMater/status/1813313409443844221?t=M4HQZcZjhBALXUTQX83fxw&s=35
👍5
سه اصل KISS ،YAGNI ،DRY در برنامه نویسی

🔵اصل DRY

قانون DRY که مخفف dont repeat yourself هست، به معنای تکرار بیهوده نکردن کد می‌باشد. خلاصه و مفید بهتون بگم، یعنی کدوم بخش های برنامه مشابه هستن و سعی کنید با استفاده از کلاس ها و توابع، میزان استفاده از کدهای تکراری رو در پروژه به حداقل برسونید. هر چقدر از تکرار کد بیهوده بیشتر جلوگیری کنید، میزان زمان و هزینه‌های پشتیبانی خیلی کمتر میشه و مشکلات کمتری هم توی پروژه ایجاد میشه.

🔵اصل KISS

این اصل مخفف Keep It Simple, Stupid هست و در این قاعده، ساده گرایی و پرهیز از پیچیدگی حرف اول رو میزنه. هرچقدر که کارها به واحدهای کوچک با فرآیندهای ساده‌تری تبدیل بشه، بازدهی افراد بیشتر میشه، میزان خطا کمتر میشه و پروژه موفق تر جلو میره. برای مثال کامپوننت های کوچیک بنویسیم، هر کامپوننت فقط یه کار مشخص رو انجام بده و ...

🔵 اصل YAGNI

اصل YAGNI که مخفف You Aren’t Gonna Need It هست، یک تمرین در توسعه نرم افزار هست که میگه ویژگی ها، فقط باید در صورت نیاز اضافه بشن. بحث اینه که توسعه دهندگان زمان خودشون رو برای ایجاد عناصر اضافی که ممکنه ضروری نباشن و باعث کند کردن روند توسعه هستن، تلف نکنن.

بطور خلاصه KISS, YAGNI, DRY سه اصل مهم در برنامه نویسی هستن که رعایت کردن اونها در نگهداری، تغییر و خوانایی کدهای پروژه در طولانی مدت بسیار تاثیرگذار می‌باشد.

#shahin
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62💯2
در لاراول وقتی میخوایم یه مقدار رو از session بخونیم و بعدش اونو حذفش کنیم، میتونیم بجای استفاده از متود های()get و ()forget ، از متود ()pull استفاده کنیم.

استفاده ازش باعث میشه کد تمیزتر و کوتاه تر بشه.

📌 چجوری کار میکنه؟
طبق مثال زیر همزمان مقدار key رو از session میخونه و سپس حذفش میکنه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1814389905554022561?t=mOMUzlFBulYMC9lBlrbsvQ&s=19
5👍1👏1
۵ نکنه جهت بهبود عملکرد و سرعت وبسایت

عملکرد و سرعت بارگذاری وبسایت، یکی از مهم‌ترین فاکتورهایی هست که تجربه کاربری و رتبه‌بندی در موتورهای جستجو رو تحت تاثیر قرار میده. در این پست، چند تا از استراتژی‌های خفن و پرکاربرد برای بهینه‌سازی عملکرد در فرانت‌اند رو بررسی می‌کنیم.


1⃣ بهینه‌سازی تصاویر

تصاویر حجم زیادی از داده‌ها رو به خود اختصاص میدن. با فشرده‌سازی تصاویر و استفاده از فرمت‌های مدرن مثل WebP، می‌تونید حجم صفحات خودتون رو کاهش بدید. همچنین می‌تونید از تگ <picture> برای پشتیبانی بهتر مرورگرها استفاده کنید:

<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="PgTwEeT">
</picture>


2⃣استفاده از Lazy Loading

بارگذاری تنبل (Lazy Loading) به شما این امکان رو میده که تصاویر و ویدئوها تنها زمانی بارگذاری بشن، که کاربر به اون‌ها اسکرول کنه و این باعث کاهش زمان بارگذاری اولیه میشه. این ویژگی در HTML5 پشتیبانی میشه و نیازی به پلاگین‌های اضافی نیست:

<img src="image.jpg" loading="lazy" alt="PgTwEeT">


3⃣کاهش درخواست‌های HTTP

با ترکیب فایل‌های CSS و JavaScript و استفاده از ابزارهایی مثل Webpack، می‌تونید تعداد درخواست‌های HTTP رو کاهش بدید. همچنین می‌تونید از فشرده‌سازی فایل‌ها با gzip یا Brotli استفاده کنید تا حجم فایل‌ها کاهش پیدا کنه.


4⃣استفاده از Content Delivery Network (CDN)

‏CDN به شما کمک می‌کنه تا محتوا رو از نزدیک‌ترین سرور به کاربر ارائه بدید، که باعث کاهش زمان بارگذاری و افزایش مقیاس‌پذیری وبسایت میشه:


5⃣بهینه‌سازی فایل‌های CSS و JavaScript

با استفاده از ابزارهایی مثل UglifyJS و CSSNano، می‌تونید کدهای خودتون رو بهینه و حجم فایل‌ها رو کاهش بدید. همچنین می‌تونید از ابزارهای مدرنی مثل Terser برای جاوااسکریپت و PostCSS برای CSS استفاده کنید:

// Example using UglifyJS
const UglifyJS = require("uglify-js");
const result = UglifyJS.minify("function add(a, b) { return a + b; }");
console.log(result.code);


بهینه‌سازی عملکرد، یکی از مهم‌ترین جنبه‌های توسعه وبسایت‌های حرفه‌ای و مدرن هست. امیدوارم از این پست لذت برده باشید 😀

#vesal
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔒 نکته امنیتی سایت لاراولی

دسترسی به فایل .env عین آب خوردنه

با اضافه کردن کد زیر به فایل .htaccess از دسترسی افراد به فایل .env جلوگیری کنید❤️‍🔥

<Files .env>
Order allow,deny
Deny from all
</Files>

#لاراول
#مرداد
#laravel
🔥133👍3
در لاراول ، بسته به محیطی که برنامه داخلش اجرا میشه ممکنه نیاز بشه عملیات های مشخصی رو فعال یا غیر فعال کنیم .

مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).

📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
👍71
Forwarded from Anophel | آنوفل
در لاراول دیزاین پترن Repository برای جداسازی لایه دسترسی به داده‌ها از لایه منطقی استفاده می‌شود. این پترن به توسعه‌دهندگان اجازه می‌دهد تا با استفاده از یک واسط مشترک به داده‌های مختلف دسترسی پیدا کنند و تغییرات در لایه داده را بدون تأثیر بر لایه منطقی مدیریت کنند.


دیزاین پترن Repository در لاراول از سه بخش اصلی تشکیل شده است:

اینترفیس Repository: این اینترفیس متد هایی را تعریف می‌کند که برای تعامل با مکانیسم ذخیره‌سازی داده استفاده می‌شوند. این یک لایه آبسترک بین کد برنامه و دیتابیس فراهم می کند.

کلاس Repository: این کلاس اینترفیس Repository را پیاده‌سازی می‌کند و شامل اجرای واقعی متد های تعریف‌ شده در اینترفیس است. برای انجام عملیات CRUD (ایجاد، خواندن، به‌روزرسانی و حذف) با مکانیسم ذخیره‌سازی داده تعامل دارد.

کلاس سرویس: این کلاس از کلاس Repository برای انجام عملیات لاجیک استفاده می کند. به عنوان یک واسطه بین Controller و Repository عمل می کند و لایه ای از آبسترک را بین لایه ارائه و لایه ذخیره سازی داده ارائه می دهد.


مزایای استفاده از Repository
1. جداسازی نگرانی‌ها (Separation of Concerns): لایه منطقی از جزئیات دسترسی به داده‌ها جدا می‌شود.
2.قابلیت تست بهتر: با جدا کردن منطق تجاری از منطق دسترسی به داده‌ها، تست واحد آسان‌تر می‌شود.
3. مدیریت بهتر تغییرات: تغییرات در ساختار داده‌ها یا منبع داده به سادگی مدیریت می‌شود.

خلاصه کلام
استفاده از الگوی Repository در لاراول مزایای متعددی دارد از جمله جداسازی نگرانی‌ها، قابلیت تست بهتر، و مدیریت ساده‌تر تغییرات. این پترن شامل تعریف اینترفیس ها، پیاده‌سازی آن‌ها در کلاس‌های Repository و ثبت آن‌ها در سرویس‌ پراوایدر است.

Anophel آنوفل

#لاراول #دیزاین_پترن #laravel #design_pattern
5👍1👏1
در لاراول ، با استفاده از هوک passedValidation در form request میتونیم دیتای اعتبار سنجی شده رو پیش از ارسال به کنترلر تغییر بدیم.

به این ترتیب با این روش میتونیم دیتا رو طبق استانداردهایی که در نظر داریم اصلاح کنیم.

📌 در مثال زیر، تغییراتی که می‌خواستیم بر فیلد name اعمال شد تا در نهایت خروجیه استانداردی برای نمایش داشته باشیم.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815852488941080859?s=35
👍53🔥1
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 چالش لاراولی :

برای پکیچ Lame ورود موبایلی نوشتم اما هنگامی که با موبایل وارد می شوید و کد ورود را می زنید, با صفحه وریفای ایمیل مواجه می شویم و در حالی که این صفحه برای موبایل نیست و ورود به موبایل نیاز به وریفای صفحه نیست.

چه راهکاری هست که هنگام ورود با موبایل Verify اجرا نکند؟

این کد روت پکیچ لاراول است :

https://github.com/Rayiumir/Lame/blob/main/src/Routes/auth.php


#لاراول

@TheRaymondDev
👍61
با توجه به گزینه های زیر، با کدوم کد میتونیم در لاراول اقدام به ارسال یک ایمیل با استفاده از queue ‌کنیم؟
Anonymous Quiz
20%
Mail::to('test@gmail.com')->send(new MyMail());
31%
Mail::to('test@gmail.com')->queue(new MyMail());
32%
Mail::dispatch('test@gmail.com')->sendEmailJob(new MyMail());
17%
send(new SendEmailJob('test@gmail.com'));
4🔥1💯1