✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
📌 @PapiDon_state
❤7👍5
🌐 معرفی Laravel Pulse: ابزار نوین مانیتورینگ برای Laravel
لاراول پالس، ابزاری نوآورانه و کاربردی است که به تازگی برای بهبود و نظارت دقیق بر برنامههای Laravel طراحی شده است. با این ابزار، شما میتوانید عملکرد برنامه خود را تحت نظر گرفته و بهینهسازیهای لازم را انجام دهید.
🔍 Application Insights:
شناسایی کندترین Jobs و Endpoints.
💻 Server Monitoring:
نظارت بر CPU، Memory و Disk Usage.
🔃 Queue Monitoring:
مشاهده دادههای Real-Time صفها.
📊 Performance Analysis:
تحلیل عملکرد کلی برنامه.
🐞 Trending Exceptions:
رصد Exceptions و خطاها.
✨ Customization:
سفارشیسازی Dashboard.
🔸قرار است Laravel Pulse هفتهی آینده به صورت رسمی رونمایی شود.
🔗 کسب اطلاعات بیشتر:
https://pulse.laravel.com/
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
لاراول پالس، ابزاری نوآورانه و کاربردی است که به تازگی برای بهبود و نظارت دقیق بر برنامههای Laravel طراحی شده است. با این ابزار، شما میتوانید عملکرد برنامه خود را تحت نظر گرفته و بهینهسازیهای لازم را انجام دهید.
🔍 Application Insights:
شناسایی کندترین Jobs و Endpoints.
💻 Server Monitoring:
نظارت بر CPU، Memory و Disk Usage.
🔃 Queue Monitoring:
مشاهده دادههای Real-Time صفها.
📊 Performance Analysis:
تحلیل عملکرد کلی برنامه.
🐞 Trending Exceptions:
رصد Exceptions و خطاها.
✨ Customization:
سفارشیسازی Dashboard.
🔸قرار است Laravel Pulse هفتهی آینده به صورت رسمی رونمایی شود.
🔗 کسب اطلاعات بیشتر:
https://pulse.laravel.com/
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
🔥13👍8❤1
کانال آموزشی لاراول
Photo
🔥 نکته فنی امروز، استفاده از Enums در لاراول
👨💻 آیا تا به حال با
🌟 what is Enum ?
یک نوع داده است که به شما اجازه میدهد مجموعهای محدود از مقادیر معتبر را برای یک متغیر تعریف کنید. این بدان معنی است که متغیر شما فقط میتواند یکی از مقادیر تعریف شده در Enum را داشته باشد، که این به افزایش خوانایی و امنیت کد شما کمک میکند.
🔍 فرض کنید میخواهید نوع سوالات در یک برنامه آزمون را مدیریت کنید. میتوانید یک Enum به نام
✅ کاربرد در اعتبارسنجی:
حالا میتوانید از این Enum در اعتبارسنجی دادهها استفاده کنید. به این ترتیب، تضمین میشود که فقط مقادیر مجاز انتخاب شوند:
🔄 یک روش دیگر:
همچنین میتوانید از روش Rule::in برای تعیین مقادیر مجاز استفاده کنید:
🔹این روش به شما اجازه میدهد به طور مستقیم مقادیر معتبر را از Enum تعیین کنید، که برای مواقعی که میخواهید برخی از مقادیر Enum را حذف کنید یا مقادیر اضافی را وارد کنید، مفید است.
و همچنین امکان مدیریت دقیقتر مقادیر مجاز را فراهم میکند.
🔸با استفاده از کلاس Rule در لاراول و متد in برای ایجاد یک لیست محدود از مقادیر مجاز انجام میشود. در اینجا، شما مقادیر مجاز را از Enum QuestionTypeEnum استخراج کرده و به عنوان پارامترهای متد in قرار میدهید.
🛠 مزایا:
- ✨ تعریف واضح: Enumها تعریف واضحی از مقادیر مجاز ارائه میدهند.
- 🛡 امنیت بیشتر: کاهش خطای انسانی و جلوگیری از ارسال دادههای نامعتبر.
- 📖 خوانایی بهتر: کد شما خواناتر و قابل فهمتر میشود.
📌 نکته پایانی:
استفاده از Enums در لاراول یک روش عالی برای مدیریت مقادیر ثابت و تضمین اعتبار دادهها در برنامههای PHP است. حتماً در پروژههای بعدی خود از آنها استفاده کنید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
👨💻 آیا تا به حال با
Enum در لاراول کار کردهاید؟ Enumها (یا انومریشنها)، از قابلیتهای جدید و پرکاربرد در PHP 8.1 به بعد هستند که در لاراول نیز پشتیبانی میشوند. 🌟 what is Enum ?
یک نوع داده است که به شما اجازه میدهد مجموعهای محدود از مقادیر معتبر را برای یک متغیر تعریف کنید. این بدان معنی است که متغیر شما فقط میتواند یکی از مقادیر تعریف شده در Enum را داشته باشد، که این به افزایش خوانایی و امنیت کد شما کمک میکند.
🔍 فرض کنید میخواهید نوع سوالات در یک برنامه آزمون را مدیریت کنید. میتوانید یک Enum به نام
QuestionTypeEnum ایجاد کنید:namespace App\Enums;
enum QuestionTypeEnum: string
{
case Text = 'text';
case Textarea = 'textarea';
case Select = 'select';
case Radio = 'radio';
case Checkbox = 'checkbox';
}
✅ کاربرد در اعتبارسنجی:
حالا میتوانید از این Enum در اعتبارسنجی دادهها استفاده کنید. به این ترتیب، تضمین میشود که فقط مقادیر مجاز انتخاب شوند:
$validator = Validator::make($data, [
'type' => ['required', new Enum(QuestionTypeEnum::class)],
// سایر قوانین اعتبارسنجی...
]);
🔄 یک روش دیگر:
همچنین میتوانید از روش Rule::in برای تعیین مقادیر مجاز استفاده کنید:
$validator = Validator::make($data, [
'type' => [
'required', Rule::in([
QuestionTypeEnum::Text->value,
QuestionTypeEnum::Textarea->value,
QuestionTypeEnum::Select->value,
QuestionTypeEnum::Radio->value,
QuestionTypeEnum::Checkbox->value,
])
],
// سایر قوانین اعتبارسنجی...
]);
🔹این روش به شما اجازه میدهد به طور مستقیم مقادیر معتبر را از Enum تعیین کنید، که برای مواقعی که میخواهید برخی از مقادیر Enum را حذف کنید یا مقادیر اضافی را وارد کنید، مفید است.
و همچنین امکان مدیریت دقیقتر مقادیر مجاز را فراهم میکند.
🔸با استفاده از کلاس Rule در لاراول و متد in برای ایجاد یک لیست محدود از مقادیر مجاز انجام میشود. در اینجا، شما مقادیر مجاز را از Enum QuestionTypeEnum استخراج کرده و به عنوان پارامترهای متد in قرار میدهید.
🛠 مزایا:
- ✨ تعریف واضح: Enumها تعریف واضحی از مقادیر مجاز ارائه میدهند.
- 🛡 امنیت بیشتر: کاهش خطای انسانی و جلوگیری از ارسال دادههای نامعتبر.
- 📖 خوانایی بهتر: کد شما خواناتر و قابل فهمتر میشود.
📌 نکته پایانی:
استفاده از Enums در لاراول یک روش عالی برای مدیریت مقادیر ثابت و تضمین اعتبار دادهها در برنامههای PHP است. حتماً در پروژههای بعدی خود از آنها استفاده کنید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید!
📌 @PapiDon_state
👍10🔥9❤2
🎉 در رویداد Laracon AU، Jess Archer از معرفی Laravel Pulse پرده برداشت. این ابزار جدید، به عنوان یک راهحل کارآمد برای نظارت بر عملکرد و بهدست آوردن بینشهایی از برنامههای Laravel طراحی شده است.
🔸 چرا Laravel Pulse اهمیت دارد؟
قدرتی بینظیر در زمینه رفع اشکال و ثبت فعالیتهای برنامه Laravel دارد. از درخواستها و کوئریها گرفته تا کارها، رویدادها و صفها، همه چیز توسط Pulse ثبت میشود. این قابلیت مانیتورینگ به شما کمک میکند تا گلوگاههای عملکردی (Performance Bottlenecks) را شناسایی و بهینهسازی کنید.
🧐 ویژگیهای برجسته Laravel Pulse:
1️⃣ کنترل کامل دادهها: با ماهیت میزبانی شخصی (self-hosted nature) ، امنیت و انطباق با الزامات قانونی را تضمین میکند.
2️⃣ طراحی Responsive Design: داشبورد با طراحی واکنشگرا، مناسب برای انواع دستگاهها از جمله موبایل.
3️⃣ انعطافپذیری: ساخته شده با Livewire، به کاربران امکان سفارشیسازی کامل داشبورد را میدهد.
4️⃣ جمعآوری دادهها در زمان واقعی: با استفاده از رکوردرها، دادهها به صورت سیستماتیک جمعآوری و ذخیره میشوند.
🔹 ویژگیهای کلیدی عملکردی:
- کاربری برنامه : شناسایی رفتار کاربران و کشف نقاط کند.
- آمار سرور : نظارت بر سلامتی سرورها.
- نظارت بر صفها : ارائه آمار زمان واقعی و تاریخی.
- بررسی عملکرد : شناسایی و رفع مشکلات عملکردی.
🔗 مشاهده ویدیو معرفی در Laracon AU:
https://youtu.be/0byEYQzPUE4
💡در واقع Laravel Pulse یک ابزار متنباز برای جامعه توسعهدهندگان Laravel است که به آنها امکان میدهد تا به صورت مشترک بر روی بهبود و نوآوری در این ابزار کار کنند.
👉 برای کسب اطلاعات بیشتر، به وبسایت رسمی مراجعه کنید.
https://pulse.laravel.com
✅به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🔸 چرا Laravel Pulse اهمیت دارد؟
قدرتی بینظیر در زمینه رفع اشکال و ثبت فعالیتهای برنامه Laravel دارد. از درخواستها و کوئریها گرفته تا کارها، رویدادها و صفها، همه چیز توسط Pulse ثبت میشود. این قابلیت مانیتورینگ به شما کمک میکند تا گلوگاههای عملکردی (Performance Bottlenecks) را شناسایی و بهینهسازی کنید.
🧐 ویژگیهای برجسته Laravel Pulse:
1️⃣ کنترل کامل دادهها: با ماهیت میزبانی شخصی (self-hosted nature) ، امنیت و انطباق با الزامات قانونی را تضمین میکند.
2️⃣ طراحی Responsive Design: داشبورد با طراحی واکنشگرا، مناسب برای انواع دستگاهها از جمله موبایل.
3️⃣ انعطافپذیری: ساخته شده با Livewire، به کاربران امکان سفارشیسازی کامل داشبورد را میدهد.
4️⃣ جمعآوری دادهها در زمان واقعی: با استفاده از رکوردرها، دادهها به صورت سیستماتیک جمعآوری و ذخیره میشوند.
🔹 ویژگیهای کلیدی عملکردی:
- کاربری برنامه : شناسایی رفتار کاربران و کشف نقاط کند.
- آمار سرور : نظارت بر سلامتی سرورها.
- نظارت بر صفها : ارائه آمار زمان واقعی و تاریخی.
- بررسی عملکرد : شناسایی و رفع مشکلات عملکردی.
🔗 مشاهده ویدیو معرفی در Laracon AU:
https://youtu.be/0byEYQzPUE4
💡در واقع Laravel Pulse یک ابزار متنباز برای جامعه توسعهدهندگان Laravel است که به آنها امکان میدهد تا به صورت مشترک بر روی بهبود و نوآوری در این ابزار کار کنند.
👉 برای کسب اطلاعات بیشتر، به وبسایت رسمی مراجعه کنید.
https://pulse.laravel.com
✅به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
YouTube
Introducing Pulse - Laracon AU
Alright, you guys requested. Here you go: Introducing Pulse - by Jess Archer at Laracon AU 2023.
👍7❤2
کانال آموزشی لاراول
Photo
🤩 لاراول یازده در راه است !
🚀 با نزدیک شدن به انتشار رسمی Laravel 11، هیجان در جامعه توسعهدهندگان Laravel رو به افزایش است. بیایید نگاهی به ویژگیهای شگفتانگیز و تحولات قریبالوقوع در این نسخه بیندازیم: 🥹
🛠 تغییرات عمده در Laravel 11:
1️⃣ تغییر در ساختار دایرکتوری: در Laravel 11، دایرکتوری middleware دیگر وجود نخواهد داشت. تغییرات به شما امکان سفارشیسازی middleware را مستقیماً در App/ServiceProvider میدهد.
2️⃣ بهبود در سیستم پیکربندی: با رویکرد جدید پیکربندی پویا، Laravel 11 از تنظیمات پیکربندی سلسله مراتبی بهره میبرد. فایل env. نیز گسترش یافته و تمامی تنظیمات مورد نیاز را در بر میگیرد.
3️⃣ تغییرات مربوط به مسیریابی (Routing): پیشفرضهای جدید برای مسیریابی، شامل دو فایل route: console.php و web.php است. برای افزودن مسیرهای API، نیاز به اجرای دستور “php artisan install:api” است که فایل مسیرهای API و قابلیتهای Laravel Sanctum را فراهم میکند.
4️⃣حذف Console Kernel: در Laravel 11، دیگر نیازی به کرنل کنسول (Console Kernel) نیست و میتوان دستورات کنسول را مستقیماً در فایل routes/console.php تعریف کرد.
5️⃣نیازمندی به نسخه PHP :Laravel 11 نیازمند حداقل نسخه PHP 8.2 است.
🔥❗️ توجه داشته باشید که این ویژگیها هنوز در مرحله بتا قرار دارند و ممکن است تغییرات و بهبودهای بیشتری داشته باشند. ما در این کانال بهروزرسانیهای جدید را پیگیری میکنیم و به شما اطلاع میدهیم. 😉
یه لایک هم بزن که انرژی بگیریم 😌🫶
✅به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🚀 با نزدیک شدن به انتشار رسمی Laravel 11، هیجان در جامعه توسعهدهندگان Laravel رو به افزایش است. بیایید نگاهی به ویژگیهای شگفتانگیز و تحولات قریبالوقوع در این نسخه بیندازیم: 🥹
🛠 تغییرات عمده در Laravel 11:
1️⃣ تغییر در ساختار دایرکتوری: در Laravel 11، دایرکتوری middleware دیگر وجود نخواهد داشت. تغییرات به شما امکان سفارشیسازی middleware را مستقیماً در App/ServiceProvider میدهد.
2️⃣ بهبود در سیستم پیکربندی: با رویکرد جدید پیکربندی پویا، Laravel 11 از تنظیمات پیکربندی سلسله مراتبی بهره میبرد. فایل env. نیز گسترش یافته و تمامی تنظیمات مورد نیاز را در بر میگیرد.
3️⃣ تغییرات مربوط به مسیریابی (Routing): پیشفرضهای جدید برای مسیریابی، شامل دو فایل route: console.php و web.php است. برای افزودن مسیرهای API، نیاز به اجرای دستور “php artisan install:api” است که فایل مسیرهای API و قابلیتهای Laravel Sanctum را فراهم میکند.
4️⃣حذف Console Kernel: در Laravel 11، دیگر نیازی به کرنل کنسول (Console Kernel) نیست و میتوان دستورات کنسول را مستقیماً در فایل routes/console.php تعریف کرد.
5️⃣نیازمندی به نسخه PHP :Laravel 11 نیازمند حداقل نسخه PHP 8.2 است.
🔥❗️ توجه داشته باشید که این ویژگیها هنوز در مرحله بتا قرار دارند و ممکن است تغییرات و بهبودهای بیشتری داشته باشند. ما در این کانال بهروزرسانیهای جدید را پیگیری میکنیم و به شما اطلاع میدهیم. 😉
یه لایک هم بزن که انرژی بگیریم 😌🫶
✅به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
👍54❤17
😎 یه چالش بریم ببینیم چه خبر 🧐
📌 در لاراول، هنگام استفاده از Eloquent ORM برای ایجاد یک رابطه پلیمورفیک چند به چند، کدام متد برای تعریف رابطه در مدلی که می خواهد به چندین نوع مختلف مدل دیگر متصل شود، استفاده میشود؟
📌 در لاراول، هنگام استفاده از Eloquent ORM برای ایجاد یک رابطه پلیمورفیک چند به چند، کدام متد برای تعریف رابطه در مدلی که می خواهد به چندین نوع مختلف مدل دیگر متصل شود، استفاده میشود؟
Anonymous Quiz
57%
استفاده از متد ()morphToMany در مدل مرکزی.
14%
استفاده از متد ()morphedByMany در مدل های دیگر که می خواهند به مدل مرکزی متصل شوند.
28%
استفاده از متد ()belongsToMany در هر دو سمت رابطه.
👌7🔥2❤1
کانال آموزشی لاراول
Photo
✨ آموزش روابط پلیمورفیک در لاراول
🔹رابطه پلیمورفیک چیست؟
در دنیای برنامهنویسی و به خصوص در برنامهنویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه میدهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که میتوانید یک ساختار دادهای واحد داشته باشید که با انواع مختلف دادهها کار کند. مثال کلاسیک آن، مدل
🔸 چگونه در لاراول رابطه پلیمورفیک ایجاد کنیم؟
برای ایجاد یک رابطه پلیمورفیک در لاراول، از Eloquent ORM استفاده میشود. Eloquent امکان تعریف روابط مختلف بین مدلها را به شکلی ساده و خوانا فراهم میکند.
⬅️ تعریف رابطه پلیمورفیک چند به چند
برای مثال، فرض کنید میخواهید رابطهای بین مدل
- استفاده از
- استفاده از
❓رابطه به چالش کشیده شده:
در چالش اخیر، سوالی مطرح شد درباره نحوه تعریف رابطه پلیمورفیک چند به چند در لاراول:
✅ پاسخ صحیح: استفاده از متد
📝 توضیح پاسخ:
متد
❗️اشتباهات رایج:
- برخی ممکن است گزینه
- گزینه
⚙️ برای پیادهسازی یک رابطه پلیمورفیک چند به چند در لاراول، نیاز به ایجاد یک migration برای جدول واسط است که ارتباط بین مدلهای مختلف را مدیریت میکند. در اینجا، مثالی از نحوه ساختار migration برای ایجاد چنین جدولی ارائه میدهم:
فرض کنید که میخواهیم رابطهای بین مدلهای
-
-
-
ممکن است Migration به صورت زیر نوشته شود:
🔹 در این مثال،
این migration به شما امکان میدهد که یک ساختار پایگاه داده منعطف برای مدیریت روابط پلیمورفیک بین مدلهای مختلف ایجاد کنید.
📌 نتیجهگیری:
درک صحیح از نحوه کار روابط پلیمورفیک در لاراول به شما کمک میکند تا بتوانید ساختارهای دادهای پیچیدهتر و انعطافپذیرتری را مدیریت کنید. امیدوارم این توضیحات به شما کمک کرده باشد تا درک بهتری از روابط پلیمورفیک داشته باشید و اشتباهات متداول را تشخیص دهید.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🔹رابطه پلیمورفیک چیست؟
در دنیای برنامهنویسی و به خصوص در برنامهنویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه میدهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که میتوانید یک ساختار دادهای واحد داشته باشید که با انواع مختلف دادهها کار کند. مثال کلاسیک آن، مدل
Comment است که میتواند به Post ،Video ، یا Photo متصل شود.🔸 چگونه در لاراول رابطه پلیمورفیک ایجاد کنیم؟
برای ایجاد یک رابطه پلیمورفیک در لاراول، از Eloquent ORM استفاده میشود. Eloquent امکان تعریف روابط مختلف بین مدلها را به شکلی ساده و خوانا فراهم میکند.
⬅️ تعریف رابطه پلیمورفیک چند به چند
برای مثال، فرض کنید میخواهید رابطهای بین مدل
Tag و مدلهای Post و Video ایجاد کنید. در اینجا، Tag میتواند به هر دو مدل Post و Video متصل شود.- استفاده از
()morphToMany: در مدل Tag، متد ()morphToMany را تعریف میکنیم. این متد به لاراول میگوید که Tag میتواند به چندین نوع مختلف از مدلها متصل شود.public function posts() {
return $this->morphToMany(Post::class, 'taggable');
}
public function videos() {
return $this->morphToMany(Video::class, 'taggable');
}- استفاده از
()morphedByMany: در مدلهای Post و Video، متد ()morphedByMany را تعریف میکنیم. این متد به لاراول میگوید که این مدلها میتوانند به مدل Tag متصل شوند.// در مدل Post
public function tags() {
return $this->morphedByMany(Tag::class, 'taggable');
}
// در مدل Video
public function tags() {
return $this->morphedByMany(Tag::class, 'taggable');
}
❓رابطه به چالش کشیده شده:
در چالش اخیر، سوالی مطرح شد درباره نحوه تعریف رابطه پلیمورفیک چند به چند در لاراول:
✅ پاسخ صحیح: استفاده از متد
()morphToMany در مدل مرکزی.📝 توضیح پاسخ:
متد
()morphToMany در مدلی که میخواهد به چندین نوع مختلف از مدلهای دیگر متصل شود (مانند مدل Tag که به Post و Video متصل میشود) استفاده میشود. این متد رابطهای ایجاد میکند که به لاراول این اجازه را میدهد تا یک مدل با چندین مدل دیگر به صورت پلیمورفیک ارتباط برقرار کند.❗️اشتباهات رایج:
- برخی ممکن است گزینه
()morphedByMany را انتخاب کرده باشند. این متد در مدلهایی استفاده میشود که به مدل مرکزی متصل میشوند، نه در مدل مرکزی.- گزینه
()belongsToMany برای روابط پلیمورفیک مناسب نیست. این متد برای روابط استاندارد چند به چند بین دو مدل استفاده میشود.⚙️ برای پیادهسازی یک رابطه پلیمورفیک چند به چند در لاراول، نیاز به ایجاد یک migration برای جدول واسط است که ارتباط بین مدلهای مختلف را مدیریت میکند. در اینجا، مثالی از نحوه ساختار migration برای ایجاد چنین جدولی ارائه میدهم:
فرض کنید که میخواهیم رابطهای بین مدلهای
Tag و Post و Video ایجاد کنیم. برای این منظور، باید یک جدول واسط به نام taggables ایجاد کنیم که شامل ستونهای زیر باشد:-
tag_id: کلید خارجی به جدول tags-
taggable_id: شناسه (ID) مدل مرتبط (مثل Post یا Video)-
taggable_type: نوع مدل مرتبط (که نشاندهنده کلاس مدل مرتبط است)ممکن است Migration به صورت زیر نوشته شود:
Schema::create('taggables', function (Blueprint $table) {
$table->unsignedBigInteger('tag_id');
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
$table->unsignedBigInteger('taggable_id');
$table->string('taggable_type');
$table->unique(['tag_id', 'taggable_id', 'taggable_type']);
});🔹 در این مثال،
tag_id به جدول tags مرتبط میشود و taggable_id و taggable_type برای مشخص کردن ارتباط پلیمورفیک استفاده میشوند. همچنین، یک کلید منحصر به فرد برای جلوگیری از تکراری بودن رکوردها تعریف شده است.این migration به شما امکان میدهد که یک ساختار پایگاه داده منعطف برای مدیریت روابط پلیمورفیک بین مدلهای مختلف ایجاد کنید.
📌 نتیجهگیری:
درک صحیح از نحوه کار روابط پلیمورفیک در لاراول به شما کمک میکند تا بتوانید ساختارهای دادهای پیچیدهتر و انعطافپذیرتری را مدیریت کنید. امیدوارم این توضیحات به شما کمک کرده باشد تا درک بهتری از روابط پلیمورفیک داشته باشید و اشتباهات متداول را تشخیص دهید.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🔥20👍3❤🔥2❤2👏2
کانال آموزشی لاراول
✨ آموزش روابط پلیمورفیک در لاراول 🔹رابطه پلیمورفیک چیست؟ در دنیای برنامهنویسی و به خصوص در برنامهنویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه میدهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که میتوانید یک ساختار دادهای واحد داشته باشید…
📌نمیدونم نظرتون درباره این جور موضوعات چیه که در قالب یه چالش روز قبل سوالی مطرح بشه و بعد اگر لازم بود توضیحاتی روز بعدش داده بشه.
به اکشن های شما در محتوایی که سعی کردم در حد قابل درک مفهوم پلیمورفیک باشه توجه خواهم کرد 😊🫶
به اکشن های شما در محتوایی که سعی کردم در حد قابل درک مفهوم پلیمورفیک باشه توجه خواهم کرد 😊🫶
👌38👍4❤2❤🔥1
کانال آموزشی لاراول
Photo
🌟 تعریف ساده Job و Queue در لاراول
🧐 چیستی Job ؟
فرض کنید شما میخواهید یک کیک درست کنید. تهیه کیک شامل چندین مرحله است: مخلوط کردن مواد، گذاشتن آن در فر، و در نهایت تزئین کیک. در دنیای برنامهنویسی، هر یک از این مراحل میتواند یک "Job" باشد. در لاراول، یک Job یعنی یک وظیفه یا کار خاصی که شما میخواهید برنامهتان انجام دهد. مثلاً، ارسال ایمیل به کاربران یک Job است.
🧐 چیستی Queue یا صف ؟
حالا فرض کنید شما نه تنها یک کیک، بلکه ۱۰۰ کیک باید درست کنید! اگر همه این کارها را به طور همزمان انجام دهید، آشپزخانه شما به هم ریخته و کارها نیمهتمام میماند. برای حل این مشکل، شما کارها را در یک "صف" قرار میدهید. یعنی هر کیک را به ترتیب وارد فر میکنید و پس از پختن یک کیک، کیک بعدی را میپزید. در لاراول، Queue همان صف است که کارها یا Jobs را به ترتیب و به نوبت انجام میدهد. این کار باعث میشود تا برنامه شما کارآمدتر و سریعتر کار کند و منابع سرور بهتر مدیریت شوند.
🔍 چرا از Job و Queue استفاده میکنیم؟
تصور کنید کاربری در وبسایت شما ثبتنام میکند و شما میخواهید بلافاصله یک ایمیل خوشآمدگویی برای او ارسال کنید. اگر این کار را بدون استفاده از Job و Queue انجام دهید، کاربر باید منتظر بماند تا ایمیل ارسال شود و این ممکن است چند ثانیه یا حتی دقایق طول بکشد. اما اگر ارسال ایمیل را به عنوان یک Job در نظر بگیریم و آن را در یک Queue قرار دهیم، ایمیل در پسزمینه و بدون تأخیر به کاربر ارسال میشود.
🎯 کاربردهای دیگر Job و Queue
از Job و Queue در لاراول میتوان برای انواع فعالیتهای پسزمینه استفاده کرد: ارسال اعلانها، بهروزرسانی دیتابیس، پردازش فایلهای بزرگ، و خیلی کارهای دیگر که نیاز به زمان و منابع زیادی دارند.
💡 تفاوت بین Job و Queue چیست؟
در لاراول، Job یک وظیفه یا کار خاصی است که شما میخواهید انجام دهید، مثل ارسال ایمیل یا پردازش یک تصویر. Queue اما، مکانیزمی است که این Jobsها را مدیریت میکند. Queue به شما اجازه میدهد تا Jobsها را در یک صف قرار دهید و به ترتیب انجام دهید.
🛠 چه زمانی از Job استفاده کنیم؟
🔸وظایف مستقل: وقتی شما یک کار خاص دارید که میخواهید انجام دهید و به ترتیب خاصی وابسته نیست.
🔸کارهایی با منابع محدود: مثلا، اگر میخواهید یک تصویر را فوراً پردازش کنید و نیاز به انجام فوری دارید.
🔸کارهای سریع: اگر کاری سریع و بدون نیاز به انتظار است
⚙️ چه زمانی از Queue استفاده کنیم؟
🔹کارهایی با زمانبری بالا: وقتی کاری زمان زیادی میبرد و نمیخواهید کاربران منتظر بمانند، مثل ارسال ایمیلهای انبوه.
🔹وظایفی که نیاز به انجام به ترتیب دارند: مانند زمانی که میخواهید چندین کار را پشت سر هم انجام دهید.
🔹حفظ کارایی سیستم: برای جلوگیری از فشار بیش از حد به سرور در زمانهای پیک کاری
🔔 نکات مهم
- هماهنگی Job و Queue: اغلب، شما Jobs را درون Queue قرار میدهید تا به ترتیب انجام شوند. پس، Job وظیفه خاصی است که باید انجام شود، و Queue نحوه انجام آن وظیفه را مدیریت میکند.
- کارایی و تجربه کاربری: استفاده از Queue میتواند کارایی سیستم را بهبود بخشد و تجربه کاربری را با کاهش زمان انتظار افزایش دهد.
🚦 نتیجهگیری
در نهایت، تصمیمگیری برای استفاده از Job یا Queue بستگی به نیازهای خاص پروژه و شرایط کاری شما دارد. انتخاب درست بین این دو میتواند تأثیر زیادی بر روی بهرهوری و کارایی برنامه شما داشته باشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🧐 چیستی Job ؟
فرض کنید شما میخواهید یک کیک درست کنید. تهیه کیک شامل چندین مرحله است: مخلوط کردن مواد، گذاشتن آن در فر، و در نهایت تزئین کیک. در دنیای برنامهنویسی، هر یک از این مراحل میتواند یک "Job" باشد. در لاراول، یک Job یعنی یک وظیفه یا کار خاصی که شما میخواهید برنامهتان انجام دهد. مثلاً، ارسال ایمیل به کاربران یک Job است.
🧐 چیستی Queue یا صف ؟
حالا فرض کنید شما نه تنها یک کیک، بلکه ۱۰۰ کیک باید درست کنید! اگر همه این کارها را به طور همزمان انجام دهید، آشپزخانه شما به هم ریخته و کارها نیمهتمام میماند. برای حل این مشکل، شما کارها را در یک "صف" قرار میدهید. یعنی هر کیک را به ترتیب وارد فر میکنید و پس از پختن یک کیک، کیک بعدی را میپزید. در لاراول، Queue همان صف است که کارها یا Jobs را به ترتیب و به نوبت انجام میدهد. این کار باعث میشود تا برنامه شما کارآمدتر و سریعتر کار کند و منابع سرور بهتر مدیریت شوند.
🔍 چرا از Job و Queue استفاده میکنیم؟
تصور کنید کاربری در وبسایت شما ثبتنام میکند و شما میخواهید بلافاصله یک ایمیل خوشآمدگویی برای او ارسال کنید. اگر این کار را بدون استفاده از Job و Queue انجام دهید، کاربر باید منتظر بماند تا ایمیل ارسال شود و این ممکن است چند ثانیه یا حتی دقایق طول بکشد. اما اگر ارسال ایمیل را به عنوان یک Job در نظر بگیریم و آن را در یک Queue قرار دهیم، ایمیل در پسزمینه و بدون تأخیر به کاربر ارسال میشود.
🎯 کاربردهای دیگر Job و Queue
از Job و Queue در لاراول میتوان برای انواع فعالیتهای پسزمینه استفاده کرد: ارسال اعلانها، بهروزرسانی دیتابیس، پردازش فایلهای بزرگ، و خیلی کارهای دیگر که نیاز به زمان و منابع زیادی دارند.
💡 تفاوت بین Job و Queue چیست؟
در لاراول، Job یک وظیفه یا کار خاصی است که شما میخواهید انجام دهید، مثل ارسال ایمیل یا پردازش یک تصویر. Queue اما، مکانیزمی است که این Jobsها را مدیریت میکند. Queue به شما اجازه میدهد تا Jobsها را در یک صف قرار دهید و به ترتیب انجام دهید.
🛠 چه زمانی از Job استفاده کنیم؟
🔸وظایف مستقل: وقتی شما یک کار خاص دارید که میخواهید انجام دهید و به ترتیب خاصی وابسته نیست.
🔸کارهایی با منابع محدود: مثلا، اگر میخواهید یک تصویر را فوراً پردازش کنید و نیاز به انجام فوری دارید.
🔸کارهای سریع: اگر کاری سریع و بدون نیاز به انتظار است
⚙️ چه زمانی از Queue استفاده کنیم؟
🔹کارهایی با زمانبری بالا: وقتی کاری زمان زیادی میبرد و نمیخواهید کاربران منتظر بمانند، مثل ارسال ایمیلهای انبوه.
🔹وظایفی که نیاز به انجام به ترتیب دارند: مانند زمانی که میخواهید چندین کار را پشت سر هم انجام دهید.
🔹حفظ کارایی سیستم: برای جلوگیری از فشار بیش از حد به سرور در زمانهای پیک کاری
🔔 نکات مهم
- هماهنگی Job و Queue: اغلب، شما Jobs را درون Queue قرار میدهید تا به ترتیب انجام شوند. پس، Job وظیفه خاصی است که باید انجام شود، و Queue نحوه انجام آن وظیفه را مدیریت میکند.
- کارایی و تجربه کاربری: استفاده از Queue میتواند کارایی سیستم را بهبود بخشد و تجربه کاربری را با کاهش زمان انتظار افزایش دهد.
🚦 نتیجهگیری
در نهایت، تصمیمگیری برای استفاده از Job یا Queue بستگی به نیازهای خاص پروژه و شرایط کاری شما دارد. انتخاب درست بین این دو میتواند تأثیر زیادی بر روی بهرهوری و کارایی برنامه شما داشته باشد.
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
👍25❤1👌1
کانال آموزشی لاراول
Photo
✨PHP 8.3 is released
🔥 آخرین بهروزرسانی PHP 8.3:
ویژگیهای نوین و تحولات چشمگیر
🔹تیم PHP دیروز - 23 دسامبر - نسخه 8.3 را با امکانات جدیدی چون Typed Class Constants، تابع ()json_validate و موارد دیگر منتشر کرد.
1️⃣ موضوع Typed Class Constants: در نسخههای پیشین PHP، امکان تعریف نوع برای constants وجود نداشت، اما در PHP 8.3، شما میتوانید نوع دادهای که یک constant باید داشته باشد را مشخص کنید.
2️⃣ موضوع json_validate() function: این تابع جدید به شما امکان میدهد JSON را بدون نیاز به استفاده از flags یا توابع خطا بررسی کنید.
3️⃣ موضوع Dynamic class constant fetch: در PHP 8.3، شما میتوانید به constants یک کلاس به صورت پویا دسترسی داشته باشید.
4️⃣ موضوع mb_str_pad() function: تابع جدید برای کار با رشتهها در PHP.
5️⃣ موضوع Fallback value syntax for INI ENV variables: این قابلیت به شما اجازه میدهد برای متغیرهای محیطی INI، مقادیر پیشفرض تعیین کنید.
6️⃣ موضوع Support linting multiple files at once: بهبود در ابزارهای تحلیل و بررسی کدهای PHP.
7️⃣ موضوع More Appropriate Date/Time Exceptions: استثناهای بهتر و دقیقتر در مدیریت تاریخ و زمان.
8️⃣ موضوع Deep-cloning of readonly properties: این ویژگی به شما اجازه میدهد که از خواص readonly به صورت عمیق کپی بگیرید.
9️⃣ موضوع Randomizer Additions: توابع جدید برای تولید رشتهها و کدهای تصادفی.
📘 برای آشنایی بیشتر با این ویژگیهای جدید، صفحه اعلامیه نسخه 8.3.0 PHP را مشاهده کنید.
https://www.php.net/releases/8.3/en.php
🌐 منتظر اطلاعات بیشتر در مورد PHP 8.3 باشید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
🔥 آخرین بهروزرسانی PHP 8.3:
ویژگیهای نوین و تحولات چشمگیر
🔹تیم PHP دیروز - 23 دسامبر - نسخه 8.3 را با امکانات جدیدی چون Typed Class Constants، تابع ()json_validate و موارد دیگر منتشر کرد.
1️⃣ موضوع Typed Class Constants: در نسخههای پیشین PHP، امکان تعریف نوع برای constants وجود نداشت، اما در PHP 8.3، شما میتوانید نوع دادهای که یک constant باید داشته باشد را مشخص کنید.
2️⃣ موضوع json_validate() function: این تابع جدید به شما امکان میدهد JSON را بدون نیاز به استفاده از flags یا توابع خطا بررسی کنید.
3️⃣ موضوع Dynamic class constant fetch: در PHP 8.3، شما میتوانید به constants یک کلاس به صورت پویا دسترسی داشته باشید.
4️⃣ موضوع mb_str_pad() function: تابع جدید برای کار با رشتهها در PHP.
5️⃣ موضوع Fallback value syntax for INI ENV variables: این قابلیت به شما اجازه میدهد برای متغیرهای محیطی INI، مقادیر پیشفرض تعیین کنید.
6️⃣ موضوع Support linting multiple files at once: بهبود در ابزارهای تحلیل و بررسی کدهای PHP.
7️⃣ موضوع More Appropriate Date/Time Exceptions: استثناهای بهتر و دقیقتر در مدیریت تاریخ و زمان.
8️⃣ موضوع Deep-cloning of readonly properties: این ویژگی به شما اجازه میدهد که از خواص readonly به صورت عمیق کپی بگیرید.
9️⃣ موضوع Randomizer Additions: توابع جدید برای تولید رشتهها و کدهای تصادفی.
📘 برای آشنایی بیشتر با این ویژگیهای جدید، صفحه اعلامیه نسخه 8.3.0 PHP را مشاهده کنید.
https://www.php.net/releases/8.3/en.php
🌐 منتظر اطلاعات بیشتر در مورد PHP 8.3 باشید!
✅ به کانال ما بپیوندید تا بیشتر با لاراول و تکنیکهای پیشرفته برنامهنویسی آشنا شوید! ☕️
📌 @PapiDon_state
www.php.net
PHP 8.3 Released
PHP 8.3 is a major update of the PHP language. It contains many new features, such as explicit typing of class constants, deep-cloning of readonly properties and additions to the randomness functionality. As always it also includes performance improvements…
👍9❤5👌2🤩1
🌟 سلام رفقا و همراهان همیشگی 👋
امیدوارم حالتون خوب باشه حسابی ! 😊🙌
اول از همه، میخوام از ته دل بابت همراهیتون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال میکنید و با ما همراهید، واقعاً برامون باارزشه. 🫶
در پاسخ به نظرات و پیشنهادات شما که در نظرسنجیهای گذشته ارائه دادید، تصمیم گرفتیم کانال فعلیمون رو به طور تخصصی به مباحث لاراول اختصاص بدیم.
قول میدیم که اینجا پر از مطالب جذاب و بهروز در این زمینه باشه. 😎🥹
ولی در عین حال، دلمون نیومد که بقیه موضوعات مهم برنامهنویسی رو نادیده بگیریم. پس، با افتخار اعلام میکنیم که یک کانال جدید راهاندازی کردهایم!
در این کانال جدید، ما به اخبار داغ برنامهنویسی، ترندها، و به زبانهای دیگه میپردازیم.
حضور شما در این کانال جدید، برای ما افتخاری بزرگه. 😍🤩
➡️ @PapiDon_coding
امیدوارم حالتون خوب باشه حسابی ! 😊🙌
اول از همه، میخوام از ته دل بابت همراهیتون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال میکنید و با ما همراهید، واقعاً برامون باارزشه. 🫶
در پاسخ به نظرات و پیشنهادات شما که در نظرسنجیهای گذشته ارائه دادید، تصمیم گرفتیم کانال فعلیمون رو به طور تخصصی به مباحث لاراول اختصاص بدیم.
قول میدیم که اینجا پر از مطالب جذاب و بهروز در این زمینه باشه. 😎🥹
ولی در عین حال، دلمون نیومد که بقیه موضوعات مهم برنامهنویسی رو نادیده بگیریم. پس، با افتخار اعلام میکنیم که یک کانال جدید راهاندازی کردهایم!
در این کانال جدید، ما به اخبار داغ برنامهنویسی، ترندها، و به زبانهای دیگه میپردازیم.
حضور شما در این کانال جدید، برای ما افتخاری بزرگه. 😍🤩
➡️ @PapiDon_coding
❤28👏2🙏1
کانال آموزشی لاراول pinned «🌟 سلام رفقا و همراهان همیشگی 👋 امیدوارم حالتون خوب باشه حسابی ! 😊🙌 اول از همه، میخوام از ته دل بابت همراهیتون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال میکنید و با ما همراهید، واقعاً برامون باارزشه. 🫶 در پاسخ به نظرات و پیشنهادات…»
🧐چرا استفاده از
1️⃣ استخراج دادهها فارغ از روش درخواست:
با
2️⃣ یکپارچگی و خوانایی:
کد با
3️⃣ انعطافپذیری:
قابلیت دسترسی به دادهها از منابع متنوع را فراهم میکند، از جمله JSON. در مقابل،
4️⃣ مقادیر پیشفرض و جایگزین:
در صورت نبود
5️⃣ کار با دادههای تو در تو:
برای دسترسی به دادههای تو در تو.
✨ نتیجهگیری:
استفاده از
👨💻به کد خود انعطافپذیری و خوانایی بیشتری ببخشید با استفاده از
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
()input در Laravel بهتر از ()get است؟1️⃣ استخراج دادهها فارغ از روش درخواست:
$name = $request->input('name');با
()input, نیازی نیست نگران منبع دادهها باشید - خواه از کوئری استرینگ باشند یا بدنه درخواست.2️⃣ یکپارچگی و خوانایی:
کد با
()input یکدستتر و قابل پیشبینیتر است.3️⃣ انعطافپذیری:
قابلیت دسترسی به دادهها از منابع متنوع را فراهم میکند، از جمله JSON. در مقابل،
()get تنها برای کوئری استرینگ مناسب است.4️⃣ مقادیر پیشفرض و جایگزین:
$age = $request->input('age', 30);در صورت نبود
age, مقدار 30 را اختصاص میدهد.5️⃣ کار با دادههای تو در تو:
$input = $request->input('user.address.street');برای دسترسی به دادههای تو در تو.
✨ نتیجهگیری:
استفاده از
()input در Laravel به شما کد نویسی منظم، خوانایی بالا و سازگاری عالی با انواع درخواستها را میدهد. 👨💻به کد خود انعطافپذیری و خوانایی بیشتری ببخشید با استفاده از
()input! ✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍27🔥4❤1
کانال آموزشی لاراول
Photo
✨ Dependency Injection & Controllers
در دنیای برنامهنویسی و توسعهی نرمافزار، مفاهیم و تکنیکهای گوناگونی وجود دارند که درک آنها میتواند تأثیر چشمگیری بر کیفیت و ساختار کدهای ما داشته باشد. امروز قصد داریم دو مفهوم کلیدی در فریمورک لاراول را بررسی کنیم: "وابستگینسبتی (Dependency Injection)" و "کنترلکنندهها (Controllers)".
☕️ وابستگینسبتی (Dependency Injection)
تصور کنید در یک کافه هستید. برای تهیه قهوه، به جای خرید هر بار یک دستگاه اسپرسو جدید، از دستگاه موجود استفاده میکنیم. در برنامهنویسی، "Dependency Injection" همین فلسفه را دنبال میکند. به جای اینکه هر بار نیاز به یک کلاس یا سرویس داشته باشیم، یک نسخه از آن را میسازیم و هر بار که نیاز داشته باشیم از آن استفاده میکنیم.
🔹 اجرای Dependency Injection در لاراول
در لاراول، این تکنیک امکان استفاده از یک نمونه مشترک از کلاسها را فراهم میکند و باعث میشود کدها تمیزتر، قابل استفاده مجدد و قابل تست باشند.
👨💻 مثال بدون Dependency Injection:
👨💻 مثال با استفاده از Dependency Injection:
🍱 کنترلکنندهها (Controllers)
کنترلکنندهها در لاراول مانند منوی رستوران عمل میکنند. آنها درخواستها را از کاربر دریافت کرده، منطق مربوط به این درخواستها را اجرا کرده و پاسخ مناسبی به کاربر برمیگردانند.
⚙️ کنترلکنندهها در لاراول
کنترلکنندهها برای جدا کردن منطق درخواست و پاسخ از مسیریابی استفاده میشوند. به جای نوشتن منطق برنامه درون فایل مسیریابی، منطق در کنترلکننده قرار میگیرد.
🔹 ایجاد یک کنترلکننده:
🔹 تعریف متدها در کنترلکننده:
🔸 وابستگینسبتی در کنترلکنندهها:
لاراول از مکانیزم وابستگینسبتی برای فراهم کردن وابستگیهای مورد نیاز کنترلکنندهها استفاده میکند.
👨💻مثال با استفاده از Dependency Injection در متدهای کنترلکننده:
💻 در این رویکرد، کد شما تمیزتر، منظمتر و قابل فهمتر خواهد بود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
در دنیای برنامهنویسی و توسعهی نرمافزار، مفاهیم و تکنیکهای گوناگونی وجود دارند که درک آنها میتواند تأثیر چشمگیری بر کیفیت و ساختار کدهای ما داشته باشد. امروز قصد داریم دو مفهوم کلیدی در فریمورک لاراول را بررسی کنیم: "وابستگینسبتی (Dependency Injection)" و "کنترلکنندهها (Controllers)".
☕️ وابستگینسبتی (Dependency Injection)
تصور کنید در یک کافه هستید. برای تهیه قهوه، به جای خرید هر بار یک دستگاه اسپرسو جدید، از دستگاه موجود استفاده میکنیم. در برنامهنویسی، "Dependency Injection" همین فلسفه را دنبال میکند. به جای اینکه هر بار نیاز به یک کلاس یا سرویس داشته باشیم، یک نسخه از آن را میسازیم و هر بار که نیاز داشته باشیم از آن استفاده میکنیم.
🔹 اجرای Dependency Injection در لاراول
در لاراول، این تکنیک امکان استفاده از یک نمونه مشترک از کلاسها را فراهم میکند و باعث میشود کدها تمیزتر، قابل استفاده مجدد و قابل تست باشند.
👨💻 مثال بدون Dependency Injection:
class UserController extends Controller {
protected $db;
public function __construct() {
$this->db = new DatabaseService();
}
}👨💻 مثال با استفاده از Dependency Injection:
class UserController extends Controller {
protected $db;
public function __construct(DatabaseService $db) {
$this->db = $db;
}
}🍱 کنترلکنندهها (Controllers)
کنترلکنندهها در لاراول مانند منوی رستوران عمل میکنند. آنها درخواستها را از کاربر دریافت کرده، منطق مربوط به این درخواستها را اجرا کرده و پاسخ مناسبی به کاربر برمیگردانند.
⚙️ کنترلکنندهها در لاراول
کنترلکنندهها برای جدا کردن منطق درخواست و پاسخ از مسیریابی استفاده میشوند. به جای نوشتن منطق برنامه درون فایل مسیریابی، منطق در کنترلکننده قرار میگیرد.
🔹 ایجاد یک کنترلکننده:
php artisan make:controller UserController
🔹 تعریف متدها در کنترلکننده:
public function index() {
$users = User::all();
return view('users.index', ['users' => $users]);
}
public function show($id) {
$user = User::find($id);
return view('users.show', ['user' => $user]);
}🔸 وابستگینسبتی در کنترلکنندهها:
لاراول از مکانیزم وابستگینسبتی برای فراهم کردن وابستگیهای مورد نیاز کنترلکنندهها استفاده میکند.
👨💻مثال با استفاده از Dependency Injection در متدهای کنترلکننده:
public function show(UserService $userService, $id) {
$user = $userService->findUserById($id);
return view('users.show', ['user' => $user]);
}💻 در این رویکرد، کد شما تمیزتر، منظمتر و قابل فهمتر خواهد بود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍8👎2❤1
🌟 کشف پکیجهای جدید و مفید Laravel با "Laravel Package Ocean" 🌊
✨ به جامعه توسعهدهندگان Laravel ملحق شوید و بهترین بستهها را در یک مکان پیدا کنید! این وبسایت شما را با بیش از 300 بسته در دستهبندیهای متنوعی چون مدیریت فایل، احراز هویت، پایگاه داده، ابزارهای توسعه، بومیسازی و بسیاری دیگر آشنا میکند.
😍 از امکانات بینظیر این پلتفرم برای ارتقاء پروژههای Laravel خود بهرهمند شوید. مرجعی کامل برای توسعهدهندگانی که به دنبال بهترینها هستند!
🔗 https://laravel-package-ocean.com/
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
✨ به جامعه توسعهدهندگان Laravel ملحق شوید و بهترین بستهها را در یک مکان پیدا کنید! این وبسایت شما را با بیش از 300 بسته در دستهبندیهای متنوعی چون مدیریت فایل، احراز هویت، پایگاه داده، ابزارهای توسعه، بومیسازی و بسیاری دیگر آشنا میکند.
😍 از امکانات بینظیر این پلتفرم برای ارتقاء پروژههای Laravel خود بهرهمند شوید. مرجعی کامل برای توسعهدهندگانی که به دنبال بهترینها هستند!
🔗 https://laravel-package-ocean.com/
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
Laravel Package Ocean
Laravel Package Ocean - Discover new Laravel packages
A place where you can find any Laravel package that you may need for your next project.
🤩10👍2