Learning Laravel
1.08K subscribers
37 photos
66 videos
69 files
100 links
Learning laravel for persian php developers

Admin: @hamo84

گروه پرسش و پاسخ و بحث و بررسی لاراول
https://t.me/laravel_frameworkk
Download Telegram
Forwarded from Ditty | دیتی
🔺 برای نوشتن کوئری‌های مرتب‌تر و قشنگ‌تر توی #لاراول، می‌تونیم از اسکوپ‌ها استفاده کنیم

- با اسکوپ‌ها حجم کدنویسی ما کمتر و نگهداری کد راحت‌تر میشه

- با اسکوپ‌های کوئری لاراول از این پست آشنا بشید:
https://ditty.ir/217

#laravel
Forwarded from Ditty | دیتی
🔺۴۰ نکته و توصیه برای برنامه‌نویس‌های تازه‌کار - قسمت دوم
ditty.ir/249

- شما هم اگه تجربه‌هایی دارید، توی قسمت نظرات به اشتراک بذارین تا توی قسمت‌های بعدی منتشر بشن 😉
@ditty_ir
Forwarded from Ditty | دیتی
🔺کدنویسی کمتر و تمیزتر با View Composer های #لاراول

- توی هر برنامه‌ای View هایی داریم که همه جا استفاده میشن. مثلاً هدر و فوتر که ما اونها رو توی هر صفحه‌ای داریم و معمولاً اطلاعاتی رو برای نمایش دادن به اونها پاس می‌دیم

- در حالت عادی اگه این ویوها نیاز به اطلاعات داشته باشن، باید توی هر return view که داریم این اطلاعات رو پاس بدیم که کدنویسی اضافی به حساب میاد

- اما با ویژگی View Composer ها می‌تونیم فقط یک بار این کدنویسی رو انجام بدیم و بگیم هر وقت که یک View خاص در حال رندر شدن هست، این اطلاعات رو پاس بده! 💯

- برای آشنایی بیشتر با این ویژگی پست زیر رو بخونید:
https://ditty.ir/283

#laravel
Forwarded from Ditty | دیتی
🔺ویژگی Enum به 8.1 PHP اضافه خواهد شد
#php
Forwarded from Ditty | دیتی
🔹یه ویژگی به #لاراول اضافه شد برای اینکه بشه تشخیص داد آیا یک کالکشن شامل فقط یک مقدار هست یا خیر! کاری که قبلاً به راحتی با متد count انجام میشد.

- نظر شما درباره این نوع ویژگی‌ها چیه؟

#laravel
Forwarded from Ditty | دیتی
🔺به ورژن ۸.۳۰ #لاراول یه ویژگی خوب اضافه شده که متد stopOnFirstFailure هست که توی اعتبارسنجی به کار میره

- این متد باعث میشه که اعتبارسنجی با مواجه‌شدن با اولین خطا متوقف بشه که در نتیجه ورودی‌های بعدی پردازش نمی‌شن

- قبلاً همه ورودی‌ها بدون توجه به اینکه ورودی‌های قبلی ناقص هستن، بررسی می‌شدن

- البته مشخص نیست چطوری میشه اون رو توی Form Request ها استفاده کرد

#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Factory Method به زبان #ساده

- این یکی از پرطرفدارترین الگوهاست و با اون می‌تونیم کدهای تمیزتر، خواناتر و با قابلیت توسعه بالاتری داشته باشیم 👌

- این پست زیر رو بخونید تا بهتر با این الگو آشنا بشید:
ditty.ir/302

#oop
Forwarded from Ditty | دیتی
🔺الگوی طراحی Abstract Factory به زبان #ساده

- اگه کدهایی دارین که پر از if/else و new هست، شاید این الگو برای شما باشه

- این الگو با مخفی کردن قسمت‌های ساختن اشیا از دید کاربر، کمک می‌کنه تا کدهای تمیزتر و قابل توسعه‌تری داشته باشیم 👌

- برای آشنایی با این الگو این پست رو بخونید:
ditty.ir/304

#oop
Forwarded from Ditty | دیتی
🔺الگوی طراحی Builder به زبان #ساده

- اگه آبجکت‌هایی داریم که مراحل ساخت پیچیده‌ای دارن، از این الگو استفاده می‌کنیم

- یکی از معروف‌ترین پیاده‌سازی‌های این الگو، Query Builder ها هست که توی بیشتر زبان‌ها و فریم‌ورک‌ها وجود داره و برای ساختن دستورات SQL استفاده میشه

- توی این پست با این الگو آشنا می‌شیم و یاد می‌گیریم که چطوری یک Query Builder ساده بسازیم:
ditty.ir/305

#oop
Forwarded from Ditty | دیتی
🔺توی #لاراول چطوری آدرس‌هایی با امنیت بالاتر داشته باشیم؟

- فرض کنیم برای لغو اشتراک ایمیل کاربر شماره ۹۰ آدرسی داریم به صورت زیر:
example.com/unsubscribe/90

- این لینک به صورت عمومی در دسترس هست و این کاربر می‌تونه با عوض کردن شناسه ۹۰ با ۸۹، اشتراک کاربر شما ۸۹ رو هم لغو کنه!

- با Signed URLs لاراول می‌تونیم بدون احتیاج به احراز هویت جلوی این کار رو بگیریم 👌

ـ Signed URLs لاراول به زبان ساده:
https://ditty.ir/306

#laravel 💯
Forwarded from Ditty | دیتی
🔺اعتبارسنجی تاریخ‌ها در #لاراول

- اگه توی برنامه تاریخ‌هایی داریم و می‌خوایم اونها رو اعتبارسنجی کنیم، لاراول امکانات #جالبی رو در اختیار ما گذاشته تا راحت‌تر از همیشه این کار رو انجام بدیم 👌

- توی این پست با چند تا از این قوانین آشنا می‌شیم:
ditty.ir/127

#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Prototype به زبان #ساده

- با این الگو می‌تونیم تمیزتر و بهینه‌تر، از آبجکت‌های موجود کپی داشته باشیم

- از این الگو زمانی استفاده می‌کنیم که:
— ساختن نمونه از کلاس هزینه زیادی داره
— آماده‌سازی و پیکربندی نمونه زمان‌بر هست
— کلاس واقعی برای ساختن نمونه ناشناخته هست

- از لینک زیر با این الگو که درک و پیاده‌سازی کاملاً راحتی داره آشنا بشین:
https://ditty.ir/p/X8dLX

#oop
Forwarded from Ditty | دیتی
🔺الگوی طراحی Singleton به زبان #ساده

- این الگو این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم

- این الگو یکی از پراستفاده‌ترین و همچنین #بحث‌برانگیز ترین الگوهاست

- از این الگو زمانی استفاده می‌کنیم که:
— ساختن نمونه هزینه زیادی داره و می‌خوایم مطمئن بشیم که فقط یک نمونه از کلاس در سراسر برنامه وجود داره

- از لینک زیر با این الگو آشنا بشین:
ditty.ir/320

#oop
Forwarded from Ditty | دیتی
🔺نمایش مرتب روت‌ها در #لاراول

- قبلاً دستور route:list توی خط فرمان، خروجی‌ای رو تولید می‌کرد که نقض حقوق بشر به حساب می‌اومد :))

- پکیج pretty-routes رو نصب کنین تا خیلی بهتر و خواناتر لیستی از همه روت‌های برنامه رو داشته باشین

- Installation:
composer require wulfheart/pretty_routes

- Usage:
php artisan route:pretty

اطلاعات بیشتر
#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Adapter به زبان #ساده

- با این الگو می‌تونیم توی برنامه از کلاس‌هایی که نوع و اینترفیس ناسازگار دارن استفاده کنیم، بدون اینکه کدی رو تغییر بدیم

- مثلاً می‌خوایم از کلاس‌های چند کتابخونه خارجی استفاده کنیم که همگی نحوه پیاده‌سازی و استفاده متفاوتی دارن. به جای اینکه کدهای برنامه و یا ساختار کلاس‌ها رو تغییر بدیم، کافیه از Adapter استفاده کنیم 👌

- از لینک زیر با این الگو آشنا بشین:
ditty.ir/322

#oop
Forwarded from Ditty | دیتی
🔺یک ویژگی جالب به #لاراول 8.51 اضافه شده به اسم Conditional Classes

- توی فایل‌های Blade با استفاده از یک Directive جدید به اسم class@ می‌تونیم نمایش کلاس‌های یک المنت رو کنترل کنیم

- این Directive یک ورودی به صورت آرایه‌ key/value می‌گیره که شامل کلاس‌های مد نظر هست. مقدار key اسم کلاس مد نظر و مقدار value یک عبارت بولین هست

- کلاس مد نظر فقط زمانی نشون داده میشه که مقدار value برابر با true باشه

- همچنین اگه عضو آرایه بدون key باشه، (مثل p-4) کلاس مد نظر برای ما نمایش داده میشه

- خط آخر عکس، خروجی چیزی که تولید میشه هست
#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Composite به زبان #ساده

- این الگو کمک می‌کنه تا بتونیم با گروهی از آبجکت‌ها که نوع‌های مختلفی دارن، اما باید به شکل یک ساختار درختی کنار هم قرار بگیرن، طوری کار کنیم که انگار همگی نوع‌های یکسانی دارن

- برای مثال یک ساختار درختی از اعضای یک سازمان داریم که شامل بخش‌ها و اعضای مختلفی مثل مدیران عامل، بخش فنی و نیروهای مربوط به هر بخش میشه

- قطعاً توی این ساختار درختی هر عضو و بخشی ممکنه نوع تفاوتی داشته باشه و اگه بخوایم روی این ساختار کارهایی رو انجام بدیم (مثلاً نمایش حقوق اعضا، اطلاعات هر عضو و بخش، درآمد و ...) نیاز داریم تا با اعضا و بخش‌ها طوری رفتار کنیم که انگار همگی نوع‌های یکسانی دارن

- توی پست زیر یاد می‌گیریم که چطوری این کار رو با الگوی Composite انجام بدیم:
ditty.ir/414

#oop 💯
Forwarded from Ali
یک ویژگی جالب به لاراول ۸.۵۷ اضافه شده برای اینکه بتونیم کوئری‌هایی که برای Relation ها می‌نوسیم رو کوتاه‌تر کنیم 👌
Forwarded from Ditty | دیتی
🔺الگوی طراحی Decorator به زبان #ساده

- از این الگو زمانی استفاده می‌کنیم که می‌خوایم به آبجکت‌ها ویژگی اضافه کنیم یا رفتار اونها رو تغییر بدیم

- در واقع با این الگو می‌تونیم به آبجکت‌های موجود، در زمان اجرای کد (Run-time) ویژگی اضافه کنیم. بدون اینکه مجبور باشیم کلاس‌های اونها رو دستکاری کنیم و یا زیرکلاس بسازیم

- این الگو کاربرد زیاد و پیاده‌سازی راحتی داره که توی این قسمت با اون آشنا می‌شیم:
https://ditty.ir/p/5dPv5

#oop 💯