🧐چرا استفاده از
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
کانال آموزشی لاراول
Photo
🌐 EditorConfig در Laravel
یک ابزار standardizing برای تنظیم سبک کدنویسی در سطح پروژه است. این ابزار توسط توسعهدهندگانی که با ادیتورها و محیطهای توسعه مختلف کار میکنند، مورد استفاده قرار میگیرد. در فریمورک Laravel، استفاده از EditorConfig به حفظ یکپارچگی سبک کدنویسی در تیم کمک میکند.
🔧 تنظیمات EditorConfig: برای استفاده از EditorConfig در پروژههای Laravel، یک فایل تنظیمات به نام editorconfig. در ریشه پروژه ایجاد میشود. این فایل شامل تنظیماتی است که تعریف میکند چگونه ادیتورهای مختلف باید با فایلهای کد برخورد کنند. مواردی مانند فاصلههای تورفتگی، نوع پایان خط، و فضای خالی در انتهای خط تعریف میشوند.
👨💻 نمونه تنظیمات:
- در این نمونه، تنظیمات برای انواع فایلها اعمال میشود. به عنوان مثال، برای فایلهای Blade خاص در Laravel، میتوان تورفتگی را متفاوت تنظیم کرد.
📚 یادگیری و استفاده: برای استفاده از EditorConfig در Laravel، مهم است که با سینتکس و امکانات آن آشنا شوید. مستندات رسمی EditorConfig و منابع آموزشی Laravel میتوانند راهنمای خوبی در این زمینه باشند.
💡مزایا:
- سازگاری سبک کد: کمک به حفظ یکپارچگی و یکنواختی سبک کدنویسی در بین تمامی توسعهدهندگان تیم.
- پشتیبانی گسترده: بسیاری از ادیتورهای محبوب و محیطهای توسعه (IDE) از EditorConfig پشتیبانی میکنند.
- انعطافپذیری: امکان تعریف تنظیمات مختلف برای انواع فایلهای مختلف در پروژه.
🌟 نکته نهایی:
استفاده از EditorConfig در پروژههای Laravel به خصوص در تیمهای بزرگ که از ادیتورها و سبکهای کدنویسی متفاوت استفاده میکنند، بسیار مفید است. این ابزار به توسعهدهندگان کمک میکند تا بر روی منطق و ویژگیهای برنامه تمرکز کنند، نه تفاوتهای سبک کدنویسی.
📌 P.S:
✨ "ابزار Standardizing Tool" در برنامهنویسی:
در زمینه توسعه نرمافزار، ابزارهای standardizing tool به ابزارهایی گفته میشود که برای ایجاد و حفظ استانداردهای یکنواخت در کدنویسی به کار گرفته میشوند. این ابزارها به تیمهای توسعه کمک میکنند تا کدی نوشته شود که نه تنها در سطح فنی قابل فهم و خوانا باشد، بلکه از نظر سبک و فرمت نیز یکنواخت و مطابق با استانداردهای تعیینشده باشد.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
یک ابزار standardizing برای تنظیم سبک کدنویسی در سطح پروژه است. این ابزار توسط توسعهدهندگانی که با ادیتورها و محیطهای توسعه مختلف کار میکنند، مورد استفاده قرار میگیرد. در فریمورک Laravel، استفاده از EditorConfig به حفظ یکپارچگی سبک کدنویسی در تیم کمک میکند.
🔧 تنظیمات EditorConfig: برای استفاده از EditorConfig در پروژههای Laravel، یک فایل تنظیمات به نام editorconfig. در ریشه پروژه ایجاد میشود. این فایل شامل تنظیماتی است که تعریف میکند چگونه ادیتورهای مختلف باید با فایلهای کد برخورد کنند. مواردی مانند فاصلههای تورفتگی، نوع پایان خط، و فضای خالی در انتهای خط تعریف میشوند.
👨💻 نمونه تنظیمات:
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.blade.php]
indent_size = 2
- در این نمونه، تنظیمات برای انواع فایلها اعمال میشود. به عنوان مثال، برای فایلهای Blade خاص در Laravel، میتوان تورفتگی را متفاوت تنظیم کرد.
📚 یادگیری و استفاده: برای استفاده از EditorConfig در Laravel، مهم است که با سینتکس و امکانات آن آشنا شوید. مستندات رسمی EditorConfig و منابع آموزشی Laravel میتوانند راهنمای خوبی در این زمینه باشند.
💡مزایا:
- سازگاری سبک کد: کمک به حفظ یکپارچگی و یکنواختی سبک کدنویسی در بین تمامی توسعهدهندگان تیم.
- پشتیبانی گسترده: بسیاری از ادیتورهای محبوب و محیطهای توسعه (IDE) از EditorConfig پشتیبانی میکنند.
- انعطافپذیری: امکان تعریف تنظیمات مختلف برای انواع فایلهای مختلف در پروژه.
🌟 نکته نهایی:
استفاده از EditorConfig در پروژههای Laravel به خصوص در تیمهای بزرگ که از ادیتورها و سبکهای کدنویسی متفاوت استفاده میکنند، بسیار مفید است. این ابزار به توسعهدهندگان کمک میکند تا بر روی منطق و ویژگیهای برنامه تمرکز کنند، نه تفاوتهای سبک کدنویسی.
📌 P.S:
✨ "ابزار Standardizing Tool" در برنامهنویسی:
در زمینه توسعه نرمافزار، ابزارهای standardizing tool به ابزارهایی گفته میشود که برای ایجاد و حفظ استانداردهای یکنواخت در کدنویسی به کار گرفته میشوند. این ابزارها به تیمهای توسعه کمک میکنند تا کدی نوشته شود که نه تنها در سطح فنی قابل فهم و خوانا باشد، بلکه از نظر سبک و فرمت نیز یکنواخت و مطابق با استانداردهای تعیینشده باشد.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍7
🔥 معرفی Blackbox AI، دستیار هوش مصنوعی در دنیای کدنویسی!
✨ تصور کنید که یک همکار هوشمند در کنارتان باشد که به سوالات برنامهنویسی شما پاسخ دهد، کد را خودکار تکمیل کند و پیشنهادات بهموقع برای رفع اشکال ارائه دهد!
😎 حالا وقت آن رسیده که تجربه برنامهنویسی خود را با Blackbox AI ارتقا دهید!
🔗 برای کاوش عمیقتر و گرفتن اطلاعات جامعتر، سری به کانال دوم ما بزنید. 😊
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
✨ تصور کنید که یک همکار هوشمند در کنارتان باشد که به سوالات برنامهنویسی شما پاسخ دهد، کد را خودکار تکمیل کند و پیشنهادات بهموقع برای رفع اشکال ارائه دهد!
😎 حالا وقت آن رسیده که تجربه برنامهنویسی خود را با Blackbox AI ارتقا دهید!
🔗 برای کاوش عمیقتر و گرفتن اطلاعات جامعتر، سری به کانال دوم ما بزنید. 😊
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍3🔥2❤1
چالش داریم امروز از نوع لایووایر 😎
در Livewire، هنگامی که میخواهید دادههای مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای بهروزرسانی دادههای مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
در Livewire، هنگامی که میخواهید دادههای مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای بهروزرسانی دادههای مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
Anonymous Quiz
64%
استفاده از wire:model برای بایند کردن دادههای مدل به المنتهای HTML.
29%
استفاده از public $model در کامپوننت و بهروزرسانی آن با استفاده از mount یا hydrate متدها.
7%
اجرای کوئری مستقیم در دیتابیس با استفاده از Eloquent در هر بار رندر شدن کامپوننت.
👍11👎3🔥1
کانال آموزشی لاراول
چالش داریم امروز از نوع لایووایر 😎
در Livewire، هنگامی که میخواهید دادههای مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای بهروزرسانی دادههای مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
در Livewire، هنگامی که میخواهید دادههای مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای بهروزرسانی دادههای مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
🔍 بررسی روشهای بهروزرسانی دادههای مدل در Livewire
در Livewire، چندین روش برای مدیریت و بهروزرسانی دادههای مدل وجود دارد. بیایید به هر یک از گزینههای مطرح شده در سوال نگاهی بیاندازیم:
1️⃣ استفاده از
🔸این روش عمدتا برای بایند کردن دو طرفه دادههای ورودی به متغیرهای کامپوننت استفاده میشود. مناسب برای فرمها و ورودیهای کاربری، اما برای بارگذاری دادههای مدل به صورت داینامیک از پایگاه داده کاربردی نیست.
2️⃣ استفاده از
🔸این روش ایدهآل برای بارگذاری و بهروزرسانی دادههای مدل است. با استفاده از متغیرهای عمومی و بهروزرسانی آنها در متدهای
3️⃣ اجرای کوئری مستقیم در دیتابیس:
🔸این روش شامل اجرای کوئریهای Eloquent در هر بار رندر کامپوننت است. اگرچه ممکن است در مواردی مفید باشد، اما اغلب بهینه نیست و میتواند عملکرد برنامه را کاهش دهد، زیرا هر بار رندر صفحه، کوئری مجدداً اجرا میشود.
✅ نتیجهگیری:
گزینه دوم، یعنی استفاده از
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
در Livewire، چندین روش برای مدیریت و بهروزرسانی دادههای مدل وجود دارد. بیایید به هر یک از گزینههای مطرح شده در سوال نگاهی بیاندازیم:
1️⃣ استفاده از
wire:model برای بایند کردن دادههای مدل به المنتهای HTML:🔸این روش عمدتا برای بایند کردن دو طرفه دادههای ورودی به متغیرهای کامپوننت استفاده میشود. مناسب برای فرمها و ورودیهای کاربری، اما برای بارگذاری دادههای مدل به صورت داینامیک از پایگاه داده کاربردی نیست.
2️⃣ استفاده از
public $model و بهروزرسانی آن با mount یا hydrate:🔸این روش ایدهآل برای بارگذاری و بهروزرسانی دادههای مدل است. با استفاده از متغیرهای عمومی و بهروزرسانی آنها در متدهای
mount یا hydrate، دادههای مدل به صورت داینامیک و بدون نیاز به ریفرش کامل صفحه بهروز میشوند.3️⃣ اجرای کوئری مستقیم در دیتابیس:
🔸این روش شامل اجرای کوئریهای Eloquent در هر بار رندر کامپوننت است. اگرچه ممکن است در مواردی مفید باشد، اما اغلب بهینه نیست و میتواند عملکرد برنامه را کاهش دهد، زیرا هر بار رندر صفحه، کوئری مجدداً اجرا میشود.
✅ نتیجهگیری:
گزینه دوم، یعنی استفاده از
public $model و بهروزرسانی آن با mount یا hydrate، روشی کارآمد و مناسب برای مدیریت دادههای مدل در Livewire است. این روش انعطافپذیری و کارایی بالایی در مدیریت دادههای داینامیک فراهم میکند.✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍7❤1
کانال آموزشی لاراول
Photo
🚀 راهنمای کامل کار با دادههای JSON در لاراول با استفاده از Eloquent و ستونهای JSON
در برنامههای وب مدرن، دادهها اغلب به صورت JSON (JavaScript Object Notation) هستند و لاراول پشتیبانی فوقالعادهای برای کار با دادههای JSON فراهم میکند.
🔢 ستونهای JSON در لاراول
ستونهای JSON در پایگاه داده به شما امکان ذخیره دادههای ساختاریافته به فرمت JSON را میدهند. لاراول از ستونهای JSON در سیستمهای پایگاه داده مختلفی مانند MySQL، PostgreSQL، و SQLite پشتیبانی میکند. این ستونها بسیار انعطافپذیر هستند زیرا میتوانند انواع مختلفی از دادهها مانند رشتهها، اعداد، آرایهها و حتی اشیاء JSON تودرتو را ذخیره کنند.
✨ افزودن ستونهای JSON
برای افزودن یک ستون JSON به جدول پایگاه داده، میتوانید از سیستم migration لاراول استفاده کنید. در اینجا نمونهای از ایجاد یک ستون JSON با نام “metadata” در جدول “posts” آورده شده است:
🔍 ذخیرهسازی دادههای JSON
🔸درج دادههای JSON
پس از ایجاد یک ستون JSON، میتوانید دادههای JSON را در آن درج کنید. لاراول کار با دادههای JSON را با استفاده از مدلهای Eloquent آسان میکند. در اینجا نحوه درج دادههای JSON در ستون “metadata” آورده شده است:
🔹بهروزرسانی دادههای JSON
همچنین میتوانید دادههای JSON موجود در یک ستون JSON را بهروزرسانی کنید. برای مثال، اگر میخواهید “برچسبها” (tags) در ستون “metadata” را بهروز کنید:
📊 بازیابی دادههای JSON
برای مثال، اگر میخواهید تمام پستهایی که ستون JSON “metadata” آنها شامل برچسب “laravel” است را پیدا کنید، میتوانید از متد whereJsonContains استفاده کنید:
🔹دسترسی به ویژگیهای JSON
میتوانید به ویژگیهای JSON مانند ویژگیهای معمولی شی دسترسی پیدا کنید. برای مثال، برای بازیابی “نویسنده” (author) از ستون JSON “metadata”:
🔧 تغییر دادههای JSON
- بهروزرسانی ویژگیهای JSON
بهروزرسانی ویژگیهای JSON ساده است. فرض کنید میخواهید نام نویسنده را در ستون JSON “metadata” تغییر دهید:
🗑 حذف ویژگیهای JSON
همچنین میتوانید ویژگیهای JSON را با استفاده از متد forget حذف کنید. برای حذف ویژگی "برچسبها" (tags) از ستون JSON “metadata”:
⚙️ نتیجهگیری
کار با دادههای JSON در لاراول، چه ذخیرهسازی، بازیابی، بهروزرسانی یا حذف، به لطف پشتیبانی لاراول از ستونهای JSON و قدرت Eloquent، بسیار آسان شده است. ستونهای JSON انعطافپذیری و تنوع را فراهم میکنند، به شما امکان میدهند تا با دادههای ساختاریافته به شیوهای که با نیازهای برنامه شما مطابقت دارد کار کنید. با اینها، میتوانید به راحتی با دادههای JSON در پروژههای لاراولی خود کار کنید، که برنامههای وب شما را هرچه قویتر و پویاتر میکند.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
در برنامههای وب مدرن، دادهها اغلب به صورت JSON (JavaScript Object Notation) هستند و لاراول پشتیبانی فوقالعادهای برای کار با دادههای JSON فراهم میکند.
🔢 ستونهای JSON در لاراول
ستونهای JSON در پایگاه داده به شما امکان ذخیره دادههای ساختاریافته به فرمت JSON را میدهند. لاراول از ستونهای JSON در سیستمهای پایگاه داده مختلفی مانند MySQL، PostgreSQL، و SQLite پشتیبانی میکند. این ستونها بسیار انعطافپذیر هستند زیرا میتوانند انواع مختلفی از دادهها مانند رشتهها، اعداد، آرایهها و حتی اشیاء JSON تودرتو را ذخیره کنند.
✨ افزودن ستونهای JSON
برای افزودن یک ستون JSON به جدول پایگاه داده، میتوانید از سیستم migration لاراول استفاده کنید. در اینجا نمونهای از ایجاد یک ستون JSON با نام “metadata” در جدول “posts” آورده شده است:
public function up()
{
Schema::table('posts', function (Blueprint $table) {
$table->json('metadata')->nullable();
});
}
🔍 ذخیرهسازی دادههای JSON
🔸درج دادههای JSON
پس از ایجاد یک ستون JSON، میتوانید دادههای JSON را در آن درج کنید. لاراول کار با دادههای JSON را با استفاده از مدلهای Eloquent آسان میکند. در اینجا نحوه درج دادههای JSON در ستون “metadata” آورده شده است:
$post = new Post;
$post->title = 'Sample Post Title';
$post->metadata = ['author' => 'Prevail E.', 'tags' => ['laravel', 'json']];
$post->save();
🔹بهروزرسانی دادههای JSON
همچنین میتوانید دادههای JSON موجود در یک ستون JSON را بهروزرسانی کنید. برای مثال، اگر میخواهید “برچسبها” (tags) در ستون “metadata” را بهروز کنید:
$post = Post::find(1);
$metadata = $post->metadata;
$metadata['tags'][] = 'eloquent';
$post->metadata = $metadata;
$post->save();
📊 بازیابی دادههای JSON
برای مثال، اگر میخواهید تمام پستهایی که ستون JSON “metadata” آنها شامل برچسب “laravel” است را پیدا کنید، میتوانید از متد whereJsonContains استفاده کنید:
$laravelPosts = Post::whereJsonContains('metadata->tags', 'laravel')->get();🔹دسترسی به ویژگیهای JSON
میتوانید به ویژگیهای JSON مانند ویژگیهای معمولی شی دسترسی پیدا کنید. برای مثال، برای بازیابی “نویسنده” (author) از ستون JSON “metadata”:
$post = Post::find(1);
$author = $post->metadata['author'];
🔧 تغییر دادههای JSON
- بهروزرسانی ویژگیهای JSON
بهروزرسانی ویژگیهای JSON ساده است. فرض کنید میخواهید نام نویسنده را در ستون JSON “metadata” تغییر دهید:
$post = Post::find(1);
$post->metadata['author'] = 'Edited Prevail E.';
$post->save();
🗑 حذف ویژگیهای JSON
همچنین میتوانید ویژگیهای JSON را با استفاده از متد forget حذف کنید. برای حذف ویژگی "برچسبها" (tags) از ستون JSON “metadata”:
$post = Post::find(1);
$post->metadata->forget('tags');
$post->save();
⚙️ نتیجهگیری
کار با دادههای JSON در لاراول، چه ذخیرهسازی، بازیابی، بهروزرسانی یا حذف، به لطف پشتیبانی لاراول از ستونهای JSON و قدرت Eloquent، بسیار آسان شده است. ستونهای JSON انعطافپذیری و تنوع را فراهم میکنند، به شما امکان میدهند تا با دادههای ساختاریافته به شیوهای که با نیازهای برنامه شما مطابقت دارد کار کنید. با اینها، میتوانید به راحتی با دادههای JSON در پروژههای لاراولی خود کار کنید، که برنامههای وب شما را هرچه قویتر و پویاتر میکند.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍6❤4
کانال آموزشی لاراول
Photo
⏳ تعریف Memory Leak چیست؟
🔸(نشت حافظه) Memory Leak در دنیای برنامهنویسی به وضعیتی اطلاق میشود که در آن یک برنامه کامپیوتری به صورت ناکارآمد حافظه را اشغال میکند و آن را آزاد نمیکند، حتی زمانی که دیگر به آن نیاز نیست. این امر میتواند منجر به کاهش عملکرد سیستم و در نهایت از کار افتادن برنامه یا سیستم عامل شود. در واقع، Memory Leak هنگامی رخ میدهد که حافظهای که برای نگهداری دادهها یا اشیاء در نظر گرفته شده، به درستی پس از اتمام کاربردشان، رهاسازی نشود.
🧐چگونه Memory Leak در لاراول رخ میدهد؟
در محیط برنامهنویسی لاراول، Memory Leak میتواند به دلایل مختلفی رخ دهد. این موارد عبارتند از:
🔹نگهداری بیش از حد اشیاء در حافظه:
این اتفاق زمانی میافتد که اشیاء ایجاد شده در حافظه به درستی حذف یا آزاد نشوند.
🔹مدیریت ناکارآمد ارتباطات پایگاه داده:
ایجاد ارتباطات زیاد با پایگاه داده و عدم بستن این ارتباطات پس از استفاده.
🔹مشکلات در Middleware و Event Listener ها:
این مولفهها اگر به درستی مدیریت نشوند، میتوانند باعث اشغال حافظه شوند.
🔹استفاده نادرست از Dependency Injection و Service Container:
ایجاد اشیاء بزرگ و پیچیده بدون نیاز طولانی مدت.
🔹کشهای بیاندازه بزرگ: استفاده از کشهایی که به درستی مدیریت نمیشوند.
✨راههای شناسایی Memory Leak در لاراول
برای شناسایی و رفع Memory Leak در پروژههای لاراول، میتوانید از روشها و ابزارهای مختلفی استفاده کنید:
1️⃣ استفاده از ابزارهای تحلیل عملکرد:
ابزارهایی مانند Xdebug یا Blackfire.io برای تحلیل عملکرد کد مفید هستند.
2️⃣ مانیتورینگ و لاگگیری حافظه:
با استفاده از توابعی مانند ()memory_get_usage , میتوانید میزان حافظه مصرفی را در طول اجرای برنامه بررسی کنید.
3️⃣ استفاده از Unit Testing و Integration Testing:
این تستها به شما کمک میکنند تا مشکلات احتمالی مرتبط با حافظه را شناسایی کنید.
4️⃣ بررسی دقیق کد:
بررسی دستی کد برای یافتن الگوهایی که ممکن است باعث نشت حافظه شوند.
5️⃣ استفاده از ابزارهای مانیتورینگ سرور:
ابزارهایی مانند New Relic یا Laravel Pulse برای شناسایی الگوهای مصرف حافظه غیرعادی مفید هستند.
📣 توجه داشته باشید که شناسایی دقیق علت Memory Leak نیازمند بررسیهای دقیق و زمانبر است. ممکن است نیاز باشد که کد را قطعه به قطعه تجزیه و تحلیل کنید و بر اساس نتایج به دست آمده، اصلاحات لازم را اعمال نمایید.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔸(نشت حافظه) Memory Leak در دنیای برنامهنویسی به وضعیتی اطلاق میشود که در آن یک برنامه کامپیوتری به صورت ناکارآمد حافظه را اشغال میکند و آن را آزاد نمیکند، حتی زمانی که دیگر به آن نیاز نیست. این امر میتواند منجر به کاهش عملکرد سیستم و در نهایت از کار افتادن برنامه یا سیستم عامل شود. در واقع، Memory Leak هنگامی رخ میدهد که حافظهای که برای نگهداری دادهها یا اشیاء در نظر گرفته شده، به درستی پس از اتمام کاربردشان، رهاسازی نشود.
🧐چگونه Memory Leak در لاراول رخ میدهد؟
در محیط برنامهنویسی لاراول، Memory Leak میتواند به دلایل مختلفی رخ دهد. این موارد عبارتند از:
🔹نگهداری بیش از حد اشیاء در حافظه:
این اتفاق زمانی میافتد که اشیاء ایجاد شده در حافظه به درستی حذف یا آزاد نشوند.
🔹مدیریت ناکارآمد ارتباطات پایگاه داده:
ایجاد ارتباطات زیاد با پایگاه داده و عدم بستن این ارتباطات پس از استفاده.
🔹مشکلات در Middleware و Event Listener ها:
این مولفهها اگر به درستی مدیریت نشوند، میتوانند باعث اشغال حافظه شوند.
🔹استفاده نادرست از Dependency Injection و Service Container:
ایجاد اشیاء بزرگ و پیچیده بدون نیاز طولانی مدت.
🔹کشهای بیاندازه بزرگ: استفاده از کشهایی که به درستی مدیریت نمیشوند.
✨راههای شناسایی Memory Leak در لاراول
برای شناسایی و رفع Memory Leak در پروژههای لاراول، میتوانید از روشها و ابزارهای مختلفی استفاده کنید:
1️⃣ استفاده از ابزارهای تحلیل عملکرد:
ابزارهایی مانند Xdebug یا Blackfire.io برای تحلیل عملکرد کد مفید هستند.
2️⃣ مانیتورینگ و لاگگیری حافظه:
با استفاده از توابعی مانند ()memory_get_usage , میتوانید میزان حافظه مصرفی را در طول اجرای برنامه بررسی کنید.
3️⃣ استفاده از Unit Testing و Integration Testing:
این تستها به شما کمک میکنند تا مشکلات احتمالی مرتبط با حافظه را شناسایی کنید.
4️⃣ بررسی دقیق کد:
بررسی دستی کد برای یافتن الگوهایی که ممکن است باعث نشت حافظه شوند.
5️⃣ استفاده از ابزارهای مانیتورینگ سرور:
ابزارهایی مانند New Relic یا Laravel Pulse برای شناسایی الگوهای مصرف حافظه غیرعادی مفید هستند.
📣 توجه داشته باشید که شناسایی دقیق علت Memory Leak نیازمند بررسیهای دقیق و زمانبر است. ممکن است نیاز باشد که کد را قطعه به قطعه تجزیه و تحلیل کنید و بر اساس نتایج به دست آمده، اصلاحات لازم را اعمال نمایید.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍8🔥2🙏1
کانال آموزشی لاراول
Photo
✨ مفهوم Overlapping
در زمینه برنامه نویسی به موقعیتی اشاره دارد که دو یا چند فرآیند یا کار (Task) به صورت همزمان اجرا شوند و بر روی یک منبع یا داده خاص تداخل ایجاد کنند. این امر میتواند باعث بروز مشکلاتی مانند دادههای ناسازگار، خطاها و مشکلات عملکردی شود. در محیطهای وب و برنامههای تحت وب، جلوگیری از تداخل بسیار حائز اهمیت است تا اطمینان حاصل شود که هر درخواست به صورت مستقل و بدون ایجاد مشکل برای سایر درخواستها پردازش میشود.
🔹نگاهی به Laravel و جلوگیری از Overlapping
لاراول امکانات مختلفی را برای جلوگیری از تداخل فراهم میکند، به ویژه در زمینه Task Scheduling و Queue Handling.
1️⃣ مفهوم Task Scheduling:
اجازه میدهد تا وظایف (tasks) برنامهریزی شوند (مثلا اجرای یک کار خاص هر روز). برای جلوگیری از تداخل، Laravel امکان استفاده از متد
2️⃣ مفهوم Queue Handling: در مدیریت صف (Queue) نیز، Laravel راهحلهایی برای جلوگیری از تداخل ارائه میدهد. این شامل تکنیکهایی مانند تعیین اولویتهای صف، تعیین زمان انقضا برای وظایف و استفاده از سیستمهای پیشرفته صف مانند Redis است.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
در زمینه برنامه نویسی به موقعیتی اشاره دارد که دو یا چند فرآیند یا کار (Task) به صورت همزمان اجرا شوند و بر روی یک منبع یا داده خاص تداخل ایجاد کنند. این امر میتواند باعث بروز مشکلاتی مانند دادههای ناسازگار، خطاها و مشکلات عملکردی شود. در محیطهای وب و برنامههای تحت وب، جلوگیری از تداخل بسیار حائز اهمیت است تا اطمینان حاصل شود که هر درخواست به صورت مستقل و بدون ایجاد مشکل برای سایر درخواستها پردازش میشود.
🔹نگاهی به Laravel و جلوگیری از Overlapping
لاراول امکانات مختلفی را برای جلوگیری از تداخل فراهم میکند، به ویژه در زمینه Task Scheduling و Queue Handling.
1️⃣ مفهوم Task Scheduling:
اجازه میدهد تا وظایف (tasks) برنامهریزی شوند (مثلا اجرای یک کار خاص هر روز). برای جلوگیری از تداخل، Laravel امکان استفاده از متد
withoutOverlapping را در زمان برنامهریزی یک وظیفه فراهم میکند. این متد اطمینان حاصل میکند که اگر یک وظیفه هنوز در حال اجرا باشد، نسخه جدید آن وظیفه شروع به کار نکند.
$schedule->command('emails:send')->daily()->withoutOverlapping();
2️⃣ مفهوم Queue Handling: در مدیریت صف (Queue) نیز، Laravel راهحلهایی برای جلوگیری از تداخل ارائه میدهد. این شامل تکنیکهایی مانند تعیین اولویتهای صف، تعیین زمان انقضا برای وظایف و استفاده از سیستمهای پیشرفته صف مانند Redis است.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍5❤4
اگر هنوز نمیدونی Redis چیه و چه کاربردهایی داره، یه سر به کانال دوم ما "اتاق برنامه نویسی </>" حتما بزن، یه مطلب درباره این موضوع انتشار دادیم که به طور جامع به بررسی مفهوم و کاربردهای Redis پرداختهایم.
دمتون گرم از حماییتون و خیلی مخلصیم 🫶😊
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
دمتون گرم از حماییتون و خیلی مخلصیم 🫶😊
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍6❤3
کانال آموزشی لاراول
Photo
✨ How to handle Webhook in Laravel:
📌 اگر نمیدونی مفهوم وبهوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده.
💻 برای رسیدگی به وبهوکها در لاراول، مراحل خاصی را باید دنبال کنید. لاراول امکانات زیادی برای تسهیل کار با وبهوکها فراهم میکند. در ادامه، مراحل اصلی برای مدیریت وبهوکها در لاراول را بررسی میکنیم:
1️⃣ ایجاد روت (Route):
- ابتدا یک روت در برنامهتان تعریف کنید که به عنوان نقطه پایانی وبهوک عمل کند. این روت باید قادر به دریافت درخواستهای HTTP POST باشد.
2️⃣ تعریف کنترلر (Controller):
- کنترلری بسازید که وظیفه پردازش درخواستهای ورودی را بر عهده داشته باشد. در اینجا، منطق لازم برای پردازش دادههای دریافتی از وبهوک پیادهسازی میشود.
3️⃣ تضمین امنیت:
- اطمینان حاصل کنید که درخواستها از منبع معتبری آمدهاند. برای این منظور، ممکن است نیاز به استفاده از توکنهای امضا شده یا سایر روشهای احراز هویت باشد.
4️⃣ لاگ برداری و خطایابی:
- برای ردیابی آسانتر مشکلات احتمالی، درخواستها و پاسخهای وبهوک را ثبت کنید.
5️⃣ تست کردن:
- قبل از بهرهبرداری کامل، سیستم را با دادههای واقعی یا شبیهسازی شده تست کنید تا از کارکرد صحیح آن اطمینان حاصل شود.
🔍 نکات اضافی:
🔸مدیریت خطاها: مطمئن شوید که سیستم شما در صورت بروز خطا به درستی واکنش نشان میدهد.
🔸مقیاسپذیری: برنامهریزی کنید که چگونه سیستمتان با تعداد زیادی درخواست وبهوک کنار میآید.
🔸استفاده از بسته وبهوک Spatie به دلیل ویژگیهای قدرتمند و امکان استفاده برای وبهوکهای متعدد توصیه میشود.
مطالعه داکیومنتهای رسمی Spatie برای کسب اطلاعات بیشتر.
🔗 https://github.com/spatie/laravel-webhook-client
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
📌 اگر نمیدونی مفهوم وبهوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده.
💻 برای رسیدگی به وبهوکها در لاراول، مراحل خاصی را باید دنبال کنید. لاراول امکانات زیادی برای تسهیل کار با وبهوکها فراهم میکند. در ادامه، مراحل اصلی برای مدیریت وبهوکها در لاراول را بررسی میکنیم:
1️⃣ ایجاد روت (Route):
- ابتدا یک روت در برنامهتان تعریف کنید که به عنوان نقطه پایانی وبهوک عمل کند. این روت باید قادر به دریافت درخواستهای HTTP POST باشد.
Route::post('/webhook', 'WebhookController@handle');
2️⃣ تعریف کنترلر (Controller):
- کنترلری بسازید که وظیفه پردازش درخواستهای ورودی را بر عهده داشته باشد. در اینجا، منطق لازم برای پردازش دادههای دریافتی از وبهوک پیادهسازی میشود.
class WebhookController extends Controller
{
public function handle(Request $request)
{
// منطق پردازش وبهوک
}
}
3️⃣ تضمین امنیت:
- اطمینان حاصل کنید که درخواستها از منبع معتبری آمدهاند. برای این منظور، ممکن است نیاز به استفاده از توکنهای امضا شده یا سایر روشهای احراز هویت باشد.
4️⃣ لاگ برداری و خطایابی:
- برای ردیابی آسانتر مشکلات احتمالی، درخواستها و پاسخهای وبهوک را ثبت کنید.
5️⃣ تست کردن:
- قبل از بهرهبرداری کامل، سیستم را با دادههای واقعی یا شبیهسازی شده تست کنید تا از کارکرد صحیح آن اطمینان حاصل شود.
🔍 نکات اضافی:
🔸مدیریت خطاها: مطمئن شوید که سیستم شما در صورت بروز خطا به درستی واکنش نشان میدهد.
🔸مقیاسپذیری: برنامهریزی کنید که چگونه سیستمتان با تعداد زیادی درخواست وبهوک کنار میآید.
🔸استفاده از بسته وبهوک Spatie به دلیل ویژگیهای قدرتمند و امکان استفاده برای وبهوکهای متعدد توصیه میشود.
مطالعه داکیومنتهای رسمی Spatie برای کسب اطلاعات بیشتر.
🔗 https://github.com/spatie/laravel-webhook-client
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
Telegram
اتاق برنامه نویسی </>
⚙️ What is a Webhook ?
وبهوک (Webhook) یکی از مفاهیم کاربردی در برنامهنویسی و توسعه وب است. وبهوکها روشهایی هستند که اجازه میدهند یک برنامه یا سرویس به طور خودکار به رویدادهایی که در سرویس دیگری رخ میدهد، پاسخ دهد. به عبارت دیگر، وبهوکها امکان ارتباط…
وبهوک (Webhook) یکی از مفاهیم کاربردی در برنامهنویسی و توسعه وب است. وبهوکها روشهایی هستند که اجازه میدهند یک برنامه یا سرویس به طور خودکار به رویدادهایی که در سرویس دیگری رخ میدهد، پاسخ دهد. به عبارت دیگر، وبهوکها امکان ارتباط…
👍5❤1🔥1
کانال آموزشی لاراول
✨ How to handle Webhook in Laravel: 📌 اگر نمیدونی مفهوم وبهوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده. 💻 برای رسیدگی به وبهوکها در لاراول، مراحل خاصی را باید دنبال کنید. لاراول امکانات زیادی برای تسهیل کار با وبهوکها فراهم میکند. در…
🛠 منطق پردازش وبهوک در لاراول (Laravel):
- منطق پردازش وبهوک به کدی اشاره دارد که در داخل تابع
1️⃣ تأیید اعتبار درخواست:
- اولین قدم تأیید اعتبار درخواست است، که شامل بررسی منبع درخواست و احتمالاً توکنهای امنیتی یا امضاهای دیجیتال است.
2️⃣ پردازش دادههای دریافتی:
- پردازش دادههای دریافتی بسته به نوع وبهوک، که ممکن است شامل خواندن و تجزیه این دادهها باشد.
3️⃣ بروزرسانی پایگاه داده:
- بروزرسانی پایگاه داده بر اساس اطلاعات دریافتی، مثلاً بهروزرسانی وضعیت سفارش در پایگاه داده.
4️⃣ ارسال اطلاعیهها:
- ارسال اطلاعیههایی بر اساس وبهوک به کاربران یا سایر سیستمها.
5️⃣ لاگگیری و خطایابی:
- لاگگیری فرآیند پردازش وبهوک برای اهداف خطایابی یا حسابرسی.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
- منطق پردازش وبهوک به کدی اشاره دارد که در داخل تابع
handle در WebhookController نوشته میشود. این منطق بستگی به نوع وبهوک و کاربرد خاص آن در برنامه شما دارد.1️⃣ تأیید اعتبار درخواست:
- اولین قدم تأیید اعتبار درخواست است، که شامل بررسی منبع درخواست و احتمالاً توکنهای امنیتی یا امضاهای دیجیتال است.
if (! $this->isRequestValid($request)) {
return response('Invalid request', 403);
}
2️⃣ پردازش دادههای دریافتی:
- پردازش دادههای دریافتی بسته به نوع وبهوک، که ممکن است شامل خواندن و تجزیه این دادهها باشد.
$data = $request->input('data');
// انجام عملیات بر اساس دادههای دریافتی
3️⃣ بروزرسانی پایگاه داده:
- بروزرسانی پایگاه داده بر اساس اطلاعات دریافتی، مثلاً بهروزرسانی وضعیت سفارش در پایگاه داده.
Order::find($data['order_id'])->update(['status' => $data['status']]);
4️⃣ ارسال اطلاعیهها:
- ارسال اطلاعیههایی بر اساس وبهوک به کاربران یا سایر سیستمها.
Notification::send($user, new OrderStatusUpdated($order));
5️⃣ لاگگیری و خطایابی:
- لاگگیری فرآیند پردازش وبهوک برای اهداف خطایابی یا حسابرسی.
Log::info('Webhook processed', ['data' => $data]);
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍9❤2🔥1
📖 آرکیلوخوس، شاعر یونان باستان، میگوید:
"ما به سطح انتظاراتمان بالا نمیرویم، بلکه به سطح آموزشهایمان سقوط میکنیم."
🎯 این جمله پیامی عمیق دارد:
موفقیت ما در لحظات سرنوشتساز، نتیجهی رویاها و آرزوهایمان نیست، بلکه بازتابی از ساعات، روزها و سالهای تمرین و تلاش مستمر ماست. هرچه در آموزش و تمرین خود جدیتر باشیم، در شرایط دشوار بهتر عمل خواهیم کرد.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
"ما به سطح انتظاراتمان بالا نمیرویم، بلکه به سطح آموزشهایمان سقوط میکنیم."
🎯 این جمله پیامی عمیق دارد:
موفقیت ما در لحظات سرنوشتساز، نتیجهی رویاها و آرزوهایمان نیست، بلکه بازتابی از ساعات، روزها و سالهای تمرین و تلاش مستمر ماست. هرچه در آموزش و تمرین خود جدیتر باشیم، در شرایط دشوار بهتر عمل خواهیم کرد.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
❤10👍4💯1