🛠 Factory Pattern 🛠
همیشه در هنگام نوشتن کد با مواردی مواجه میشویم که نیاز به ایجاد نمونههای متعدد از یک کلاس داریم. الگوی Factory به ما کمک میکند تا این فرایند را سادهتر و منظمتر کنیم.
🧐 چرا از الگوی Factory ؟
1️⃣جداسازی فرآیند ایجاد نمونه از کد اصلی.
2️⃣انعطافپذیری بیشتر: تغییر نحوه ایجاد نمونه بدون تغییر در کد اصلی.
3️⃣ مدیریت آسانتر و ساختار بهتر برای کد.
4️⃣کد خالصتر و منظمتر.
✨در Laravel، الگوی Factory همراه با Dependency Injection استفاده میشود، که ساخت نمونههای پیچیدهتر را آسانتر میکند.
⚙️ با استفاده از Factory Pattern، میتوانید نوشتار کد خود را منعطفتر و قابل مدیریتتر کنید.
📌@PapiDon_state
همیشه در هنگام نوشتن کد با مواردی مواجه میشویم که نیاز به ایجاد نمونههای متعدد از یک کلاس داریم. الگوی Factory به ما کمک میکند تا این فرایند را سادهتر و منظمتر کنیم.
🧐 چرا از الگوی Factory ؟
1️⃣جداسازی فرآیند ایجاد نمونه از کد اصلی.
2️⃣انعطافپذیری بیشتر: تغییر نحوه ایجاد نمونه بدون تغییر در کد اصلی.
3️⃣ مدیریت آسانتر و ساختار بهتر برای کد.
4️⃣کد خالصتر و منظمتر.
✨در Laravel، الگوی Factory همراه با Dependency Injection استفاده میشود، که ساخت نمونههای پیچیدهتر را آسانتر میکند.
⚙️ با استفاده از Factory Pattern، میتوانید نوشتار کد خود را منعطفتر و قابل مدیریتتر کنید.
📌@PapiDon_state
👍12❤1
✨Factory Pattern
ما یک وبسایت فروش ماشین داریم. در این وبسایت، کاربر میتواند از میان انواع مختلف ماشینها مثل Sedan یا SUV انتخاب کند. برای سادگی، ما میخواهیم هنگام ساخت یک ماشین جدید، تنها نوع ماشین مورد نظر کاربر را مشخص کنیم و سایر جزئیات مربوط به آن نوع ماشین بطور خودکار تعیین شود.
⚙️ بدون استفاده از الگوی Factory:
1️⃣ایجاد مدلها
2️⃣استفاده از مدلها در Controller
✅ با استفاده از الگوی Factory
1️⃣ ایجاد یک Factory
2️⃣ استفاده از Factory در Controller
🛠 همانطور که میبینید، با استفاده از الگوی Factory، کد Controller سادهتر و منظمتر شده و امکان افزودن نوعهای جدیدی از ماشینها به راحتی وجود دارد، بدون آنکه نیازی به تغییر Controller باشد.
📌@PapiDon_state
ما یک وبسایت فروش ماشین داریم. در این وبسایت، کاربر میتواند از میان انواع مختلف ماشینها مثل Sedan یا SUV انتخاب کند. برای سادگی، ما میخواهیم هنگام ساخت یک ماشین جدید، تنها نوع ماشین مورد نظر کاربر را مشخص کنیم و سایر جزئیات مربوط به آن نوع ماشین بطور خودکار تعیین شود.
⚙️ بدون استفاده از الگوی Factory:
1️⃣ایجاد مدلها
// app/Models/Sedan.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Sedan extends Model {
public function description() {
return "I'm a Sedan!";
}
}
// app/Models/SUV.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SUV extends Model {
public function description() {
return "I'm an SUV!";
}
}
2️⃣استفاده از مدلها در Controller
use App\Models\Sedan;
use App\Models\SUV;
public function createCar($type) {
if ($type === 'sedan') {
$car = new Sedan();
} elseif ($type === 'suv') {
$car = new SUV();
} else {
throw new Exception("Car type not recognized.");
}
return $car->description();
}
✅ با استفاده از الگوی Factory
1️⃣ ایجاد یک Factory
// app/Factories/CarFactory.php
namespace App\Factories;
use App\Models\Sedan;
use App\Models\SUV;
class CarFactory {
public static function create($type) {
switch($type) {
case 'sedan':
return new Sedan();
case 'suv':
return new SUV();
default:
throw new Exception("Car type not recognized.");
}
}
}
2️⃣ استفاده از Factory در Controller
use App\Factories\CarFactory;
public function createCarUsingFactory($type) {
$car = CarFactory::create($type);
return $car->description();
}
🛠 همانطور که میبینید، با استفاده از الگوی Factory، کد Controller سادهتر و منظمتر شده و امکان افزودن نوعهای جدیدی از ماشینها به راحتی وجود دارد، بدون آنکه نیازی به تغییر Controller باشد.
📌@PapiDon_state
🔥7👍3👏3❤1👌1
⚜️آشنایی با متد
🧐 چطور کار میکند؟
1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود.
2️⃣ اگر رکورد با آن معیارها وجود داشت، دادهها به روز میشوند.
3️⃣ اگر وجود نداشت، یک رکورد جدید با آن مشخصات ایجاد میشود.
📌 مثال ساده:
✨ با `updateOrCreate`، همیشه اطمینان داشته باشید که دادههایتان به روز و بدون تکرار است!
📌@PapiDon_state
updateOrCreate
آیا تاکنون خواستهاید در لاراول یک رکورد را به روز کنید و اگر وجود نداشت، آن را ایجاد کنید؟ 🤔 updateOrCreate همان گزینهی مورد نظر شماست!🧐 چطور کار میکند؟
1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود.
2️⃣ اگر رکورد با آن معیارها وجود داشت، دادهها به روز میشوند.
3️⃣ اگر وجود نداشت، یک رکورد جدید با آن مشخصات ایجاد میشود.
📌 مثال ساده:
$user = User::updateOrCreate(در این مثال، اگر کاربری با ایمیل
['email' => 'sample@example.com'],
['name' => 'Ali']
);
sample@example.com وجود داشت، نامش به Ali تغییر میکند. اگر نبود، کاربر جدیدی با این ایمیل و نام ایجاد میشود.✨ با `updateOrCreate`، همیشه اطمینان داشته باشید که دادههایتان به روز و بدون تکرار است!
📌@PapiDon_state
👍12❤1
کانال آموزشی لاراول
⚜️آشنایی با متد updateOrCreate آیا تاکنون خواستهاید در لاراول یک رکورد را به روز کنید و اگر وجود نداشت، آن را ایجاد کنید؟ 🤔 updateOrCreate همان گزینهی مورد نظر شماست! 🧐 چطور کار میکند؟ 1️⃣ اول، بر اساس معیارهایی که مشخص کردهاید، جستجو میشود. 2️⃣ اگر…
⚜️گسترش آشنایی با
آیا میدانستید که میتوانید چندین معیار را برای جستجو و به روزرسانی یا ایجاد رکورد جدید استفاده کنید؟ 📚✨
🔍 مثال:
فرض کنید میخواهید چاپهای مختلف یک کتاب را مدیریت کنید. با استفاده از متد
📌@PapiDon_state
updateOrCreate در لاراول با معیارهای چندگانهآیا میدانستید که میتوانید چندین معیار را برای جستجو و به روزرسانی یا ایجاد رکورد جدید استفاده کنید؟ 📚✨
🔍 مثال:
فرض کنید میخواهید چاپهای مختلف یک کتاب را مدیریت کنید. با استفاده از متد
updateOrCreate ، میتوانید بر اساس عنوان، ناشر، سال چاپ و نوع جلد چک کنید که آیا چاپ مورد نظر وجود دارد یا خیر.Book::updateOrCreate(
['title' => '1984',
'publisher' => 'Penguin',
'year' => 2020,
'cover_type' => 'Hardcover'
],
['edition_number' => 5]
);
🌟 با استفاده از updateOrCreate و معیارهای چندگانه، همیشه اطمینان داشته باشید که اطلاعاتتان به روز و یکتا هستند!📌@PapiDon_state
👍8🙏2❤1
🔥 آشنایی با متد
⚙️ چگونه عمل میکند؟
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکوردی با این معیارها یافت شد، آن رکورد برگردانده میشود.
3️⃣ - در غیر این صورت، یک رکورد جدید با آن معیارها ایجاد و برگردانده میشود.
📌 مثال:
✨ با
📌@PapiDon_state
firstOrCreate
🧐 به دنبال یک روش سریع و ساده برای جستجو یا ایجاد یک رکورد در دیتابیس هستید؟ firstOrCreate پاسخ شماست!⚙️ چگونه عمل میکند؟
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکوردی با این معیارها یافت شد، آن رکورد برگردانده میشود.
3️⃣ - در غیر این صورت، یک رکورد جدید با آن معیارها ایجاد و برگردانده میشود.
📌 مثال:
$user = User::firstOrCreate(در این مثال، اگر کاربری با ایمیل
['email' => 'sample@example.com'],
['name' => 'Ali']
);
sample@example.com وجود داشته باشد، آن را برمیگرداند. اگر نباشد، یک کاربر جدید با نام Ali و این ایمیل ایجاد میکند.✨ با
firstOrCreate ، همیشه اطمینان داشته باشید که با سرعت به جستجو و ایجاد رکوردها پرداخته میشود!📌@PapiDon_state
👍6❤2🔥2
⚠️🛠 تفاوتهای
✨هر دو این متدها برای کمک به شما در جستجو، به روزرسانی یا ایجاد رکوردها در دیتابیس هستند، اما با تفاوتهایی:
🔹 firstOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، آن را برمیگرداند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🔸updateOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، مقادیر مورد نظر را به روزرسانی میکند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🧐 بنابراین، تفاوت اصلی بین این دو در این است که
💡 آیا قبلا از این متدها استفاده کردهاید؟
📌@PapiDon_state
firstOrCreate و updateOrCreate ✨هر دو این متدها برای کمک به شما در جستجو، به روزرسانی یا ایجاد رکوردها در دیتابیس هستند، اما با تفاوتهایی:
🔹 firstOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، آن را برمیگرداند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🔸updateOrCreate:
1️⃣ - ابتدا برای یافتن رکورد با معیارهای مشخص شده جستجو میکند.
2️⃣ - اگر رکورد یافت شد، مقادیر مورد نظر را به روزرسانی میکند.
3️⃣ - اگر رکوردی نیافت، یک رکورد جدید با معیارهای مشخص شده ایجاد میکند.
🧐 بنابراین، تفاوت اصلی بین این دو در این است که
updateOrCreate میتواند یک رکورد موجود را به روز کند، در حالی که firstOrCreate فقط یافتن یا ایجاد رکورد جدید را انجام میدهد.💡 آیا قبلا از این متدها استفاده کردهاید؟
📌@PapiDon_state
👍16❤2
✨Singleton Pattern
🔹 یکی از الگوهای طراحی است که تنها یک نمونه از یک کلاس خاص را در کل برنامه ایجاد میکند.
✨ چه فوایدی دارد؟
- مدیریت منابع مشترک از یک مرکز
- جلوگیری از ایجاد نمونههای غیرضروری
- بهینهسازی حافظه و منابع
- انتقال یکپارچه دادهها
🔸با استفاده از Singleton، شما میتوانید دسترسی به این منابع مشترک را از یک مرکز مدیریت کنید. این کار باعث میشود که ایجاد نمونههای غیر ضروری از کلاسها جلوگیری شود و بهینهسازی حافظه و منابع را انجام دهید. همچنین، با استفاده از این الگو، انتقال دادهها بین قسمتهای مختلف برنامه به صورت یکپارچه و مؤثر انجام میشود.
🔹به طور کلی، در لاراول، استفاده از الگوی Singleton میتواند به تنظیم و مدیریت منابع مشترک کمک کند و اطمینان حاصل کند که دادهها در سراسر برنامه یکپارچه و یکنواخت است.
📌 @PapiDon_state
🔹 یکی از الگوهای طراحی است که تنها یک نمونه از یک کلاس خاص را در کل برنامه ایجاد میکند.
✨ چه فوایدی دارد؟
- مدیریت منابع مشترک از یک مرکز
- جلوگیری از ایجاد نمونههای غیرضروری
- بهینهسازی حافظه و منابع
- انتقال یکپارچه دادهها
🔸با استفاده از Singleton، شما میتوانید دسترسی به این منابع مشترک را از یک مرکز مدیریت کنید. این کار باعث میشود که ایجاد نمونههای غیر ضروری از کلاسها جلوگیری شود و بهینهسازی حافظه و منابع را انجام دهید. همچنین، با استفاده از این الگو، انتقال دادهها بین قسمتهای مختلف برنامه به صورت یکپارچه و مؤثر انجام میشود.
🔹به طور کلی، در لاراول، استفاده از الگوی Singleton میتواند به تنظیم و مدیریت منابع مشترک کمک کند و اطمینان حاصل کند که دادهها در سراسر برنامه یکپارچه و یکنواخت است.
📌 @PapiDon_state
👍6❤1
📌 بیایید یک مثال ساده از استفاده از الگوی Singleton در لاراول بزنیم.
فرض کنید ما یک کلاس
ابتدا یک کلاس
⚙️ این فقط یک مثال ساده بود. در برنامههای واقعی، الگوی Singleton میتواند در موارد پیچیدهتری مورد استفاده قرار گیرد، مانند ارتباط با پایگاه داده، مدیریت منابع و غیره.
📌 @PapiDon_state
فرض کنید ما یک کلاس
Logger داریم که میخواهیم اطمینان حاصل کنیم تنها یک نمونه از آن در کل برنامه ساخته شود.ابتدا یک کلاس
Logger میسازیم:class Logger {
private $logs = [];
public function addLog($message) {
$this->logs[] = $message;
}
public function getLogs() {
return $this->logs;
}
}
حالا در ServiceProvider مورد نظر (مثلا AppServiceProvider), میتوانیم از متد singleton استفاده کنیم تا اطمینان حاصل کنیم که تنها یک نمونه از Logger وجود دارد:use Illuminate\Support\ServiceProvider;حالا وقتی میخواهید از Logger استفاده کنید:
class AppServiceProvider extends ServiceProvider {
public function register() {
$this->app->singleton(Logger::class, function ($app) {
return new Logger();
});
}
}
public function someMethod(Logger $logger) {
$logger->addLog("This is a message.");
// ...
}
✅ با هر بار فراخوانی Logger در هر قسمتی از برنامه، شما همان نمونه واحد را دریافت میکنید و تمامی پیامهای ثبتشده را میتوانید مشاهده کنید.⚙️ این فقط یک مثال ساده بود. در برنامههای واقعی، الگوی Singleton میتواند در موارد پیچیدهتری مورد استفاده قرار گیرد، مانند ارتباط با پایگاه داده، مدیریت منابع و غیره.
📌 @PapiDon_state
👍4❤3🔥2🙏1
✨Success is not the result of one day of visible actions, but the result of consecutive days of small actions.
✨موفقیت نتیجهی یک روزه انجامشدن اعمال قابل مشاهده نیست، بلکه نتیجهی روزهای متوالی انجامشدن اعمال کوچک است
📌 @PapiDon_state
✨موفقیت نتیجهی یک روزه انجامشدن اعمال قابل مشاهده نیست، بلکه نتیجهی روزهای متوالی انجامشدن اعمال کوچک است
📌 @PapiDon_state
👍7🔥2👏2❤1
📲 PWA ( Progressive Web Apps )
اپلیکیشنهای وبی هستند که تجربه مشابه اپلیکیشنهای موبایل را فراهم میکنند. این تکنولوژی افزایش تعامل کاربر با وبسایت و بهینهسازی مصرف دادهها را میآورد.
⚙️ کاربردهای PWA
1️⃣ بهبود سرعت بارگذاری وبسایت
2️⃣ کارکرد بدون اتصال به اینترنت
3️⃣ ارسال پوش نوتیفیکیشن
4️⃣ امکان اضافه کردن به صفحه اصلی دستگاهها مانند یک اپلیکیشن موبایل
5️⃣ بهینهسازی مصرف دادهها
6️⃣ افزایش تعامل کاربر با وبسایت
✨ تکنولوژی PWA
🔸Service Workers:
اسکریپتهایی که در پسزمینه اجرا میشوند و امکان کارکرد بدون اتصال به اینترنت، پیشبارگیری منابع و پوش نوتیفیکیشنها را فراهم میآورند.
🔹Manifest:
فایلی به فرمت JSON است که اطلاعات مرتبط با نمایش و اجرای اپلیکیشن را برای استفاده در دستگاههای مختلف در بر دارد.
🔸Caching:
با استفاده از Service Workers، منابع وبسایت در دستگاه کاربر ذخیره میشوند، اکه این امر امکان بارگیری سریعتر و کارکرد بدون اتصال به اینترنت را فراهم میآورد.
📌@PapiDon_state
اپلیکیشنهای وبی هستند که تجربه مشابه اپلیکیشنهای موبایل را فراهم میکنند. این تکنولوژی افزایش تعامل کاربر با وبسایت و بهینهسازی مصرف دادهها را میآورد.
⚙️ کاربردهای PWA
1️⃣ بهبود سرعت بارگذاری وبسایت
2️⃣ کارکرد بدون اتصال به اینترنت
3️⃣ ارسال پوش نوتیفیکیشن
4️⃣ امکان اضافه کردن به صفحه اصلی دستگاهها مانند یک اپلیکیشن موبایل
5️⃣ بهینهسازی مصرف دادهها
6️⃣ افزایش تعامل کاربر با وبسایت
✨ تکنولوژی PWA
🔸Service Workers:
اسکریپتهایی که در پسزمینه اجرا میشوند و امکان کارکرد بدون اتصال به اینترنت، پیشبارگیری منابع و پوش نوتیفیکیشنها را فراهم میآورند.
🔹Manifest:
فایلی به فرمت JSON است که اطلاعات مرتبط با نمایش و اجرای اپلیکیشن را برای استفاده در دستگاههای مختلف در بر دارد.
🔸Caching:
با استفاده از Service Workers، منابع وبسایت در دستگاه کاربر ذخیره میشوند، اکه این امر امکان بارگیری سریعتر و کارکرد بدون اتصال به اینترنت را فراهم میآورد.
📌@PapiDon_state
👍7❤1
🔎 متد
متد
onError در Laravel چیست؟متد
()onError به HTTP client افزوده شده که به شما این امکان را میدهد تا در صورت بروز خطایی هنگام ارسال یک درخواست HTTP، عملی خاص انجام دهید، مثل ثبت یک پیام خطا.return $client->withHeaders($headers)📌@PapiDon_state
->post($url, $payload)
->onError(fn ($response) =>
Log::error('Twitter API failed posting Tweet', [
'url' => $url,
'payload' => $payload,
'headers' => $headers,
'response' => $response->body(),
])
)->json();
👍9❤1👏1
🧐 What is Pure Functions ?
✨توابع خالص یا Pure Functions مفهوم مهمی در برنامهنویسی هستند که دارای دو ویژگی اصلی میباشند:
1️⃣ خروجی ثابت: برای ورودیهای مشابه، همیشه یک خروجی یکسان تولید میکنند.
2️⃣ عدم وجود اثرات جانبی (Side Effects): هیچ تغییری در وضعیت برنامه یا متغیرهای خارج از تابع ایجاد نمیکنند.
این تابع با گرفتن دو عدد، جمع آنها را بر میگرداند و هیچ Side Effect ندارد.
⚙️ مزایا :
🔹پیشبینیپذیری: به دلیل اینکه خروجی توابع خالص فقط به ورودیهایش بستگی دارد, برنامهنویس میتواند از رفتار آنها مطمئن باشد.
🔸تستپذیری: توابع خالص راحتتر میتوانند تست شوند چون فقط باید ورودی داده شده و خروجی تولید شده را بررسی کرد.
🔹قابلیت ترکیبپذیری: توابع خالص میتوانند راحتتر با یکدیگر ترکیب شوند تا وظایف پیچیدهتری انجام دهند.
📌@PapiDon_state
✨توابع خالص یا Pure Functions مفهوم مهمی در برنامهنویسی هستند که دارای دو ویژگی اصلی میباشند:
1️⃣ خروجی ثابت: برای ورودیهای مشابه، همیشه یک خروجی یکسان تولید میکنند.
2️⃣ عدم وجود اثرات جانبی (Side Effects): هیچ تغییری در وضعیت برنامه یا متغیرهای خارج از تابع ایجاد نمیکنند.
function add(a, b) {
return a + b;
}این تابع با گرفتن دو عدد، جمع آنها را بر میگرداند و هیچ Side Effect ندارد.
⚙️ مزایا :
🔹پیشبینیپذیری: به دلیل اینکه خروجی توابع خالص فقط به ورودیهایش بستگی دارد, برنامهنویس میتواند از رفتار آنها مطمئن باشد.
🔸تستپذیری: توابع خالص راحتتر میتوانند تست شوند چون فقط باید ورودی داده شده و خروجی تولید شده را بررسی کرد.
🔹قابلیت ترکیبپذیری: توابع خالص میتوانند راحتتر با یکدیگر ترکیب شوند تا وظایف پیچیدهتری انجام دهند.
📌@PapiDon_state
👍2❤1🔥1
🧐 What is Impure Functions ?
✨ توابع ناخالص یا Impure Functions در مقابل توابع خالص قرار دارند و دو ویژگی اصلی دارند:
1️⃣ وابستگی به حالت خارجی: ممکن است به متغیرها یا حالتهای خارجی وابسته باشند و خروجیشان تنها با توجه به ورودیها قابل پیشبینی نباشد.
2️⃣ وجود Side Effect: مثل تغییر متغیرهای خارجی, انجام ورودی/خروجی و غیره.
این تابع با گرفتن یک متغیر خارجی, مقدار آن را یک واحد افزایش میدهد.
⚠️ توابع ناخالص ممکن است پیچیدگی بیشتری به برنامه اضافه کنند و قابلیت تست و تحلیل برنامه را کاهش دهند. در برنامهنویسی تابعی, توصیه میشود که از توابع خالص بیشتری استفاده کنید تا برنامهی سادهتر و قابل فهمتری داشته باشید.
توابع ناخالص در برخی موارد لازم و مفید هستند, اما استفاده زیاد از آنها ممکن است به سختیهای بیشتری منجر شود. 💡
📌@PapiDon_state
✨ توابع ناخالص یا Impure Functions در مقابل توابع خالص قرار دارند و دو ویژگی اصلی دارند:
1️⃣ وابستگی به حالت خارجی: ممکن است به متغیرها یا حالتهای خارجی وابسته باشند و خروجیشان تنها با توجه به ورودیها قابل پیشبینی نباشد.
2️⃣ وجود Side Effect: مثل تغییر متغیرهای خارجی, انجام ورودی/خروجی و غیره.
let count = 0;
function increment() {
count++;
}
این تابع با گرفتن یک متغیر خارجی, مقدار آن را یک واحد افزایش میدهد.
⚠️ توابع ناخالص ممکن است پیچیدگی بیشتری به برنامه اضافه کنند و قابلیت تست و تحلیل برنامه را کاهش دهند. در برنامهنویسی تابعی, توصیه میشود که از توابع خالص بیشتری استفاده کنید تا برنامهی سادهتر و قابل فهمتری داشته باشید.
توابع ناخالص در برخی موارد لازم و مفید هستند, اما استفاده زیاد از آنها ممکن است به سختیهای بیشتری منجر شود. 💡
📌@PapiDon_state
👍5❤1🔥1
🔍 آشنایی با دستور
همگان با موقعیتهایی مواجه شدهاند که نیاز به دریافت نتایج منحصر به فرد از دیتابیس دارند. در لاراول، این کار با استفاده از
📌 مثلا، برای دریافت نامهای منحصر به فرد کاربران:
📌 یا برای منحصر بودن بر اساس چندین ستون:
✨distinct
نتایج تکراری را حذف میکند و فقط نتایج منحصر به فرد را به شما نشان میدهد.
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
distinct در لاراولهمگان با موقعیتهایی مواجه شدهاند که نیاز به دریافت نتایج منحصر به فرد از دیتابیس دارند. در لاراول، این کار با استفاده از
distinct بسیار سادهتر است.📌 مثلا، برای دریافت نامهای منحصر به فرد کاربران:
$uniqueNames = DB::table('users')->distinct()->pluck('name');
📌 یا برای منحصر بودن بر اساس چندین ستون:
$uniqueData = DB::table('users')->select('account_id', 'email')->distinct()->get();
✨distinct
نتایج تکراری را حذف میکند و فقط نتایج منحصر به فرد را به شما نشان میدهد.
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
👍15❤6
🛠 Laravel Tinker
دستور
💻 چگونه از
برای دسترسی به این ابزار، در دایرکتوری ریشه پروژه Laravel خود، دستور زیر را وارد کنید:
* REPL (Read-Eval-Print Loop)
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
دستور
tinker یک ابزار بینظیر در لاراول است که به توسعهدهندگان این امکان را میدهد تا به صورت تعاملی در محیط کنسول با برنامه خود کار کنند. با استفاده از tinker میتوانید دستورات PHP را اجرا کرده و با دادهها و اشیاء Laravel کار کنید، و همه اینها را بدون نیاز به ساخت یک مسیر HTTP انجام دهید.💻 چگونه از
tinker استفاده کنیم؟برای دسترسی به این ابزار، در دایرکتوری ریشه پروژه Laravel خود، دستور زیر را وارد کنید:
php artisan tinkerپس از اجرای این دستور، به یک محیط REPL * منتقل میشوید که به شما اجازه میدهد تا دستورات PHP را به صورت تعاملی اجرا کنید. این امکان برای تست و اجرای دستورات سریع، ایجاد و بررسی مدلها، و یا حتی اجرای پردازشهای پایگاه داده بدون نیاز به ساخت یک واسط کاربری وب، بسیار مفید است.
* REPL (Read-Eval-Print Loop)
🔗 برای آموزشهای بیشتر با ما همراه باشید!
📌 @PapiDon_state
👍12❤2
🧐 تفاوت بین Factory و Seeder در Laravel:
🔹Factory:
- ایجاد داده تست بر اساس مدلها
- استفاده از کتابخانههایی مانند
- تولید دادههای مرتبط با روابط (relationships)
🔸Seeder:
- ریختن دادهها در پایگاه داده
- کلاسهای Seeder در
- کنترل ترتیب اجرای Seederها از طریق
📌 @PapiDon_state
🔹Factory:
- ایجاد داده تست بر اساس مدلها
- استفاده از کتابخانههایی مانند
fzaninotto/faker برای تولید داده جعلی- تولید دادههای مرتبط با روابط (relationships)
🔸Seeder:
- ریختن دادهها در پایگاه داده
- کلاسهای Seeder در
database/seeders ذخیره میشوند- کنترل ترتیب اجرای Seederها از طریق
DatabaseSeeder
برای آموزشهای بیشتر با ما همراه باشید!📌 @PapiDon_state
👍6🙏5❤1
✨What you do is what matters, not what you think or say or plan.
✨کاری که انجام میدهید مهم است، نه اینکه چه فکر یا چه حرف یا چه برنامهای دارید. - " جیسون فراید"
📌 @PapiDon_state
✨کاری که انجام میدهید مهم است، نه اینکه چه فکر یا چه حرف یا چه برنامهای دارید. - " جیسون فراید"
📌 @PapiDon_state
👍7❤1
کانال آموزشی لاراول
Photo
🛠 کوئری زدن در لاراول
در لاراول، با بهرهگیری از توابع گوناگون، میتوانید انواع جستجوها و کوئریها را برای دیتابیس خود تنظیم و اجرا کنید.
1️⃣ whereNull:
- جستجوی سطرهایی که مقدار خاصی در یک ستون خالی است.
- 📌
- جستجوی سطرهایی با مقدار تاریخی خاص در یک ستون.
- 📌
- جستجوی سطرهایی با مقدار ماهی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار روزی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار سالی خاص در یک ستون تاریخی.
- 📌
- جستجوی سطرهایی با مقدار زمانی خاص در یک ستون.
- 📌
- مقایسه مقادیر دو ستون با یکدیگر و یافتن سطرهای مطابق.
- 📌
- جستجو بر اساس شرط موجود.
- 📌
در لاراول، با بهرهگیری از توابع گوناگون، میتوانید انواع جستجوها و کوئریها را برای دیتابیس خود تنظیم و اجرا کنید.
1️⃣ whereNull:
- جستجوی سطرهایی که مقدار خاصی در یک ستون خالی است.
- 📌
User::whereNull('email_verified_at')->get();
2️⃣ whereDate:- جستجوی سطرهایی با مقدار تاریخی خاص در یک ستون.
- 📌
User::whereDate('created_at', '2023-10-10')->get();
3️⃣ whereMonth:- جستجوی سطرهایی با مقدار ماهی خاص در یک ستون تاریخی.
- 📌
User::whereMonth('created_at', '10')->get();
4️⃣ whereDay:- جستجوی سطرهایی با مقدار روزی خاص در یک ستون تاریخی.
- 📌
User::whereDay('created_at', '10')->get();
5️⃣ whereYear:- جستجوی سطرهایی با مقدار سالی خاص در یک ستون تاریخی.
- 📌
User::whereYear('created_at', '2023')->get();
6️⃣ whereTime:- جستجوی سطرهایی با مقدار زمانی خاص در یک ستون.
- 📌
User::whereTime('created_at', '=', '10:00:00')->get();
7️⃣ whereColumn:- مقایسه مقادیر دو ستون با یکدیگر و یافتن سطرهای مطابق.
- 📌
User::whereColumn('updated_at', '>', 'created_at')->get();
8️⃣ whereExists:- جستجو بر اساس شرط موجود.
- 📌
User::whereExists(function ($query) {
$query->select(DB::raw(1))
->from('orders')
->whereColumn('users.id', 'orders.user_id');
})->get();
📌 @PapiDon_state👍7❤2💯1