کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
کانال آموزشی لاراول
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
👍5417
😎 یه چالش بریم ببینیم چه خبر 🧐

📌 در لاراول، هنگام استفاده از Eloquent ORM برای ایجاد یک رابطه پلیمورفیک چند به چند، کدام متد برای تعریف رابطه در مدلی که می خواهد به چندین نوع مختلف مدل دیگر متصل شود، استفاده میشود؟
Anonymous Quiz
57%
استفاده از متد ()morphToMany در مدل مرکزی.
14%
استفاده از متد ()morphedByMany در مدل های دیگر که می خواهند به مدل مرکزی متصل شوند.
28%
استفاده از متد ()belongsToMany در هر دو سمت رابطه.
👌7🔥21
کانال آموزشی لاراول
Photo
آموزش روابط پلیمورفیک در لاراول

🔹رابطه پلیمورفیک چیست؟

در دنیای برنامه‌نویسی و به خصوص در برنامه‌نویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه می‌دهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که می‌توانید یک ساختار داده‌ای واحد داشته باشید که با انواع مختلف داده‌ها کار کند. مثال کلاسیک آن، مدل 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❤‍🔥22👏2
کانال آموزشی لاراول
آموزش روابط پلیمورفیک در لاراول 🔹رابطه پلیمورفیک چیست؟ در دنیای برنامه‌نویسی و به خصوص در برنامه‌نویسی مرتبط با پایگاه داده، رابطه پلیمورفیک اجازه می‌دهد که یک مدل به چندین مدل دیگر متصل شود. این بدان معناست که می‌توانید یک ساختار داده‌ای واحد داشته باشید…
📌نمی‌دونم نظرتون درباره این جور موضوعات چیه که در قالب یه چالش روز قبل سوالی مطرح بشه و بعد اگر لازم بود توضیحاتی روز بعدش داده بشه.

به اکشن های شما در محتوایی که سعی کردم در حد قابل درک مفهوم پلیمورفیک باشه توجه خواهم کرد 😊🫶
👌38👍42❤‍🔥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
👍251👌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
👍95👌2🤩1
🌟 سلام رفقا و همراهان همیشگی 👋

امیدوارم حالتون خوب باشه حسابی ! 😊🙌

اول از همه، می‌خوام از ته دل بابت همراهی‌تون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال می‌کنید و با ما همراهید، واقعاً برامون باارزشه. 🫶

در پاسخ به نظرات و پیشنهادات شما که در نظرسنجی‌های گذشته ارائه دادید، تصمیم گرفتیم کانال فعلی‌مون رو به طور تخصصی به مباحث لاراول اختصاص بدیم.
قول می‌دیم که اینجا پر از مطالب جذاب و به‌روز در این زمینه باشه. 😎🥹

ولی در عین حال، دلمون نیومد که بقیه موضوعات مهم برنامه‌نویسی رو نادیده بگیریم. پس، با افتخار اعلام می‌کنیم که یک کانال جدید راه‌اندازی کرده‌ایم!
در این کانال جدید، ما به اخبار داغ برنامه‌نویسی، ترندها، و به زبانهای دیگه می‌پردازیم.

حضور شما در این کانال جدید، برای ما افتخاری بزرگه. 😍🤩

➡️ @PapiDon_coding
28👏2🙏1
کانال آموزشی لاراول pinned «🌟 سلام رفقا و همراهان همیشگی 👋 امیدوارم حالتون خوب باشه حسابی ! 😊🙌 اول از همه، می‌خوام از ته دل بابت همراهی‌تون در این مسیر، سپاسگزاری کنم. دیدن اینکه چطور محتواهای ما رو دنبال می‌کنید و با ما همراهید، واقعاً برامون باارزشه. 🫶 در پاسخ به نظرات و پیشنهادات…»
🧐چرا استفاده از ()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🔥41
کانال آموزشی لاراول
Photo
Dependency Injection & Controllers

در دنیای برنامه‌نویسی و توسعه‌ی نرم‌افزار، مفاهیم و تکنیک‌های گوناگونی وجود دارند که درک آن‌ها می‌تواند تأثیر چشمگیری بر کیفیت و ساختار کدهای ما داشته باشد. امروز قصد داریم دو مفهوم کلیدی در فریم‌ورک لاراول را بررسی کنیم: "وابستگی‌نسبتی (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👎21
🌟 کشف پکیج‌های جدید و مفید Laravel با "Laravel Package Ocean" 🌊

به جامعه توسعه‌دهندگان Laravel ملحق شوید و بهترین بسته‌ها را در یک مکان پیدا کنید! این وب‌سایت شما را با بیش از 300 بسته در دسته‌بندی‌های متنوعی چون مدیریت فایل، احراز هویت، پایگاه داده، ابزارهای توسعه، بومی‌سازی و بسیاری دیگر آشنا می‌کند.

😍 از امکانات بی‌نظیر این پلتفرم برای ارتقاء پروژه‌های Laravel خود بهره‌مند شوید. مرجعی کامل برای توسعه‌دهندگانی که به دنبال بهترین‌ها هستند!

🔗 https://laravel-package-ocean.com/



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🤩10👍2
کانال آموزشی لاراول
Photo
🌐 EditorConfig در Laravel

یک ابزار 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
👍3🔥21
چالش داریم امروز از نوع لایووایر 😎

در Livewire، هنگامی که می‌خواهید داده‌های مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای به‌روزرسانی داده‌های مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
Anonymous Quiz
64%
استفاده از wire:model برای بایند کردن داده‌های مدل به المنت‌های HTML.
29%
استفاده از public $model در کامپوننت و به‌روزرسانی آن با استفاده از mount یا hydrate متدها.
7%
اجرای کوئری مستقیم در دیتابیس با استفاده از Eloquent در هر بار رندر شدن کامپوننت.
👍11👎3🔥1
کانال آموزشی لاراول
چالش داریم امروز از نوع لایووایر 😎

در Livewire، هنگامی که می‌خواهید داده‌های مدل را به صورت داینامیک بارگذاری کنید، کدام روش برای به‌روزرسانی داده‌های مدل در کامپوننت، بدون نیاز به ریفرش کامل صفحه بهترین است ؟
🔍 بررسی روش‌های به‌روزرسانی داده‌های مدل در Livewire

در Livewire، چندین روش برای مدیریت و به‌روزرسانی داده‌های مدل وجود دارد. بیایید به هر یک از گزینه‌های مطرح شده در سوال نگاهی بیاندازیم:

1️⃣ استفاده از wire:model برای بایند کردن داده‌های مدل به المنت‌های HTML:

🔸این روش عمدتا برای بایند کردن دو طرفه داده‌های ورودی به متغیرهای کامپوننت استفاده می‌شود. مناسب برای فرم‌ها و ورودی‌های کاربری، اما برای بارگذاری داده‌های مدل به صورت داینامیک از پایگاه داده کاربردی نیست.

2️⃣ استفاده از public $model و به‌روزرسانی آن با mount یا hydrate:

🔸این روش ایده‌آل برای بارگذاری و به‌روزرسانی داده‌های مدل است. با استفاده از متغیرهای عمومی و به‌روزرسانی آنها در متدهای mount یا hydrate، داده‌های مدل به صورت داینامیک و بدون نیاز به ریفرش کامل صفحه به‌روز می‌شوند.

3️⃣ اجرای کوئری مستقیم در دیتابیس:

🔸این روش شامل اجرای کوئری‌های Eloquent در هر بار رندر کامپوننت است. اگرچه ممکن است در مواردی مفید باشد، اما اغلب بهینه نیست و می‌تواند عملکرد برنامه را کاهش دهد، زیرا هر بار رندر صفحه، کوئری مجدداً اجرا می‌شود.

نتیجه‌گیری:

گزینه دوم، یعنی استفاده از public $model و به‌روزرسانی آن با mount یا hydrate، روشی کارآمد و مناسب برای مدیریت داده‌های مدل در Livewire است. این روش انعطاف‌پذیری و کارایی بالایی در مدیریت داده‌های داینامیک فراهم می‌کند.




کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍71