کانال آموزشی لاراول
Photo
✨بهینهسازی عملکرد با استفاده از
سلام دوستان! 😊👋
امروز میخواهیم در مورد یکی از ویژگیهای جذاب و کاربردی Livewire صحبت کنیم که میتواند به شما در بهینهسازی عملکرد برنامههای وب کمک کند! نام این ویژگی
🤔 چرا
فرض کنید یک فانکشن دارید که دادههایی را از دیتابیس بازیابی میکند. این دادهها ممکن است پستهای یک وبلاگ، لیست محصولات یا هر چیز دیگری باشند. بدون
🛠 چگونه
وقتی شما
🧐کجا باید از
1️⃣ درخواستهای پیچیده: اگر فانکشنی دارید که کار پیچیدهای انجام میدهد یا به دادههایی دسترسی دارد که به ندرت تغییر میکنند.
2️⃣ صفحات پربازدید: در صفحاتی که تعداد زیادی کاربر به طور همزمان از آن استفاده میکنند و نیاز به عملکرد بالایی دارند.
⚙️ نحوه استفاده :
فقط کافی است
با این کار، Livewire فقط در صورت لزوم فانکشن را اجرا میکند و نتیجه را برای استفادههای بعدی ذخیره میکند. 🌱
⚜️خلاصه که
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
[()Computed]# در Livewireسلام دوستان! 😊👋
امروز میخواهیم در مورد یکی از ویژگیهای جذاب و کاربردی Livewire صحبت کنیم که میتواند به شما در بهینهسازی عملکرد برنامههای وب کمک کند! نام این ویژگی
[()Computed]# است. 🤔 چرا
[()Computed]# مهم است؟ فرض کنید یک فانکشن دارید که دادههایی را از دیتابیس بازیابی میکند. این دادهها ممکن است پستهای یک وبلاگ، لیست محصولات یا هر چیز دیگری باشند. بدون
[()Computed]#, هر بار که کاربر عملی را انجام میدهد، ممکن است این فانکشن دوباره و دوباره اجرا شود. این میتواند منجر به اتلاف منابع و کاهش سرعت برنامه شود. 🛠 چگونه
[()Computed]# کمک میکند؟وقتی شما
[()Computed]# را به فانکشنی اضافه میکنید، Livewire نتیجه فانکشن را "به یاد میآورد". اگر دفعه بعد ورودیهای فانکشن تغییر نکرده باشند، به جای اجرای دوباره فانکشن، Livewire از نتیجه ذخیرهشده قبلی استفاده میکند. این کار باعث میشود برنامه شما سریعتر و کارآمدتر کار کند. 🧐کجا باید از
[()Computed]# استفاده کنیم؟1️⃣ درخواستهای پیچیده: اگر فانکشنی دارید که کار پیچیدهای انجام میدهد یا به دادههایی دسترسی دارد که به ندرت تغییر میکنند.
2️⃣ صفحات پربازدید: در صفحاتی که تعداد زیادی کاربر به طور همزمان از آن استفاده میکنند و نیاز به عملکرد بالایی دارند.
⚙️ نحوه استفاده :
فقط کافی است
[()Computed]# را قبل از تعریف فانکشن خود قرار دهید، مثل این:#[Computed()]
public function posts() {
// کد برای بازیابی پستها
}
با این کار، Livewire فقط در صورت لزوم فانکشن را اجرا میکند و نتیجه را برای استفادههای بعدی ذخیره میکند. 🌱
⚜️خلاصه که
[()Computed]# یک ابزار عالی برای بهینهسازی عملکرد برنامههای وب شماست. با استفاده از این ویژگی، میتوانید اطمینان حاصل کنید که برنامه شما همیشه با بالاترین سرعت و کارآمدی کار میکند.✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍14❤3
کانال آموزشی لاراول
Photo
✨ ادغام Cloudflare Turnstile در Laravel و Livewire
مایلید Cloudflare Turnstile CAPTCHA را در اپلیکیشن Laravel یا Livewire خود ادغام کنید؟
این بسته ارائه شده توسط Ryan Chandler، ادغام را بسیار ساده میکند.
🤩 استفاده از Cloudflare Turnstile برای Laravel
اسکریپتهای Turnstile را با استفاده از دستورالعمل Blade
پس از آن، کامپوننت
برای تایید پاسخ CAPTCHA، از قانون اعتبارسنجی ارائه شده در سرور استفاده کنید.
🔸 Cloudflare Turnstile با Livewire
این بسته همچنین میتواند با Livewire ادغام شود. پس از اعتبارسنجی موفقیتآمیز، ویژگی مشخص شده درون
برای جزئیات بیشتر در مورد سفارشیسازی و ادغام آن در اپلیکیشن خود، بسته را در GitHub بررسی کنید.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
مایلید Cloudflare Turnstile CAPTCHA را در اپلیکیشن Laravel یا Livewire خود ادغام کنید؟
این بسته ارائه شده توسط Ryan Chandler، ادغام را بسیار ساده میکند.
🤩 استفاده از Cloudflare Turnstile برای Laravel
اسکریپتهای Turnstile را با استفاده از دستورالعمل Blade
@turnstileScripts در بخش <head> فایل چیدمان خود قرار دهید.<html>
<head>
@turnstileScripts()
</head>
<body>
{{ $slot }}
</body>
</html>
پس از آن، کامپوننت
<x-turnstile /> را درون یک <form> استفاده کنید:<form action="/" method="POST">
<x-turnstile />
<button>
Submit
</button>
</form>
برای تایید پاسخ CAPTCHA، از قانون اعتبارسنجی ارائه شده در سرور استفاده کنید.
use Illuminate\Validation\Rule;
public function submit(Request $request)
{
$request->validate([
'cf-turnstile-response' => ['required', Rule::turnstile()],
]);
}
🔸 Cloudflare Turnstile با Livewire
این بسته همچنین میتواند با Livewire ادغام شود. پس از اعتبارسنجی موفقیتآمیز، ویژگی مشخص شده درون
wire:model با توکن Turnstile بهروزرسانی خواهد شد.<x-turnstile wire:model="yourModel" />
برای جزئیات بیشتر در مورد سفارشیسازی و ادغام آن در اپلیکیشن خود، بسته را در GitHub بررسی کنید.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
GitHub
GitHub - ryangjchandler/laravel-cloudflare-turnstile: A simple package to help integrate Cloudflare Turnstile.
A simple package to help integrate Cloudflare Turnstile. - ryangjchandler/laravel-cloudflare-turnstile
👍10❤1
کانال آموزشی لاراول
Photo
🎉 Laravel 11 😍
بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد.
🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد زیر اشاره کرد:
1️⃣ ساختار دایرکتوری بهینهشده: کدنویسی ماژولار و استفاده مجدد از کد را آسانتر میکند، که نتیجهاش افزایش کارایی در فرآیند توسعه است.
2️⃣ مدیریت تنظیمات: با رویکردی جدید که تمامی تنظیمات از یک منبع بالادستی به ارث میبرند، تنظیمات را میتوان به صورت سادهتر و متمرکزتری مدیریت کرد.
3️⃣ قابلیت
4️⃣ بهروزرسانیهای مربوط به مدیریت مسیریابی: تعداد فایلهای مسیر پیشفرض از چهار به دو فایل کاهش یافته و برای افزودن مسیرهای API به صورت انتخابی عمل میکنید، که منجر به ساختار برنامهای تمیزتر و سفارشیتر میشود.
📚 سعی خواهیم کرد موضوعات مهم را در کانال به اشتراک بگذاریم و حتماً درباره آنها مطلب منتشر کنیم. با ما همراه باشید. 🫶😊
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد.
🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد زیر اشاره کرد:
1️⃣ ساختار دایرکتوری بهینهشده: کدنویسی ماژولار و استفاده مجدد از کد را آسانتر میکند، که نتیجهاش افزایش کارایی در فرآیند توسعه است.
2️⃣ مدیریت تنظیمات: با رویکردی جدید که تمامی تنظیمات از یک منبع بالادستی به ارث میبرند، تنظیمات را میتوان به صورت سادهتر و متمرکزتری مدیریت کرد.
3️⃣ قابلیت
Dumpable: تجربهی دیباگ کردن را با امکان استفاده از متدهای ()dd و ()dump درون کلاسها، بهبود میبخشد و دیباگ کردن را در سرتاسر فریمورک یکپارچه و مداوم میسازد.4️⃣ بهروزرسانیهای مربوط به مدیریت مسیریابی: تعداد فایلهای مسیر پیشفرض از چهار به دو فایل کاهش یافته و برای افزودن مسیرهای API به صورت انتخابی عمل میکنید، که منجر به ساختار برنامهای تمیزتر و سفارشیتر میشود.
📚 سعی خواهیم کرد موضوعات مهم را در کانال به اشتراک بگذاریم و حتماً درباره آنها مطلب منتشر کنیم. با ما همراه باشید. 🫶😊
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔥17👍3🤩1
کانال آموزشی لاراول pinned «🎉 Laravel 11 😍 بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد. 🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد…»
🔥 با ارائه نسخه 11 لاراول که SQLite را بهعنوان پایگاه داده پیشفرض برگزیده، آشنایی با این تکنولوژی اکنون از اهمیت بیشتری برخوردار است.
✨ ما در مطلبی که پیشتر در کانال اتاق برنامه نویسی </> به اشتراک گذاشته بودیم، SQLite را بررسی کردهایم.
🔗 👈🏻 لینک مطلب برای مطالعه بیشتر
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
✨ ما در مطلبی که پیشتر در کانال اتاق برنامه نویسی </> به اشتراک گذاشته بودیم، SQLite را بررسی کردهایم.
🔗 👈🏻 لینک مطلب برای مطالعه بیشتر
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🙏7👍5🔥1👏1
کانال آموزشی لاراول
Photo
🔧 راهنمای رفع مشکل اتصال به دیتابیس در لاراول 11
🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیشفرض DB_CONNECTION=sqlite، برخی از توسعهدهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند. یکی از رایجترین این خطاها مربوط به تنظیمات collation است.
برای مثال، خطای SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8mb4_0900_ai_ci' نشان میدهد که تنظیمات collation با نسخه فعلی سرور MySQL یا MariaDB شما سازگار نیست.
⛔️ علت خطا و راهحلها:
خطای Unknown collation: 'utf8mb4_0900_ai_ci به این دلیل رخ میدهد که سرور دیتابیس MySQL یا MariaDB شما از تنظیمات collation utf8mb4_0900_ai_ci پشتیبانی نمیکند. این collation برای نسخههای جدید MySQL معرفی شده است و به بهبود عملکرد و دقت مقایسه دادهها کمک میکند، اما در نسخههای قدیمیتر MySQL یا برخی نسخههای MariaDB پشتیبانی نمیشود.
🛠 راهحلها:
1️⃣ ارتقاء سرور MySQL/MariaDB:
اگر امکانپذیر است، سرور دیتابیس را به نسخهای ارتقاء دهید که از این
2️⃣ تغییر Collation در پروژه لاراول:
- به فایل
- در بخش اتصالات دیتابیس (
📝 فایل
⚙️ اجرای مایگریشنها
با استفاده از دستور php artisan migrate ، اطمینان حاصل کنید که جدولهای مورد نیاز در دیتابیس ایجاد شدهاند. این کار همچنین به حل مشکلات مربوط به عدم وجود جدولها کمک میکند.
⚜️برای اطمینان از اعمال تغییرات، دستورات php artisan config:cache و php artisan cache:clear را اجرا کنید تا تنظیمات کش شده پاک شود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیشفرض DB_CONNECTION=sqlite، برخی از توسعهدهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند. یکی از رایجترین این خطاها مربوط به تنظیمات collation است.
برای مثال، خطای SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8mb4_0900_ai_ci' نشان میدهد که تنظیمات collation با نسخه فعلی سرور MySQL یا MariaDB شما سازگار نیست.
⛔️ علت خطا و راهحلها:
خطای Unknown collation: 'utf8mb4_0900_ai_ci به این دلیل رخ میدهد که سرور دیتابیس MySQL یا MariaDB شما از تنظیمات collation utf8mb4_0900_ai_ci پشتیبانی نمیکند. این collation برای نسخههای جدید MySQL معرفی شده است و به بهبود عملکرد و دقت مقایسه دادهها کمک میکند، اما در نسخههای قدیمیتر MySQL یا برخی نسخههای MariaDB پشتیبانی نمیشود.
🛠 راهحلها:
1️⃣ ارتقاء سرور MySQL/MariaDB:
اگر امکانپذیر است، سرور دیتابیس را به نسخهای ارتقاء دهید که از این
collation پشتیبانی میکند.2️⃣ تغییر Collation در پروژه لاراول:
- به فایل
config/database.php در پروژه لاراول خود بروید.- در بخش اتصالات دیتابیس (
mysql در این مورد)، collation را به یک مقدار سازگار با نسخهی MySQL/MariaDB سرورتان تغییر دهید. برای نسخههای قدیمیتر، utf8mb4_unicode_ci توصیه میشود:'mysql' => [
...
'collation' => 'utf8mb4_unicode_ci',
...
],
📝 فایل
env. پروژه خود را بررسی و اطمینان حاصل کنید که اطلاعات دیتابیس به درستی تنظیم شدهاند:DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
⚙️ اجرای مایگریشنها
با استفاده از دستور php artisan migrate ، اطمینان حاصل کنید که جدولهای مورد نیاز در دیتابیس ایجاد شدهاند. این کار همچنین به حل مشکلات مربوط به عدم وجود جدولها کمک میکند.
⚜️برای اطمینان از اعمال تغییرات، دستورات php artisan config:cache و php artisan cache:clear را اجرا کنید تا تنظیمات کش شده پاک شود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍13❤2🔥1🙏1
کانال آموزشی لاراول
Photo
✨ آموزش اضافه کردن Middleware در لاراول 11
امروز میخواهم با شما درباره یکی از نوآوریهای جذاب در نسخه 11 لاراول، یعنی نحوه تعریف و استفاده از Middleware، به اشتراک بگذارم.
🤔 چرا Middleware ؟
در واقع Middlewareها بخش مهمی از هر اپلیکیشن وب هستند که به ما اجازه میدهند درخواستهای وارد شده به اپلیکیشن را پیش از رسیدن به هستهی اپلیکیشن (Core) یا بعد از ارسال پاسخ، فیلتر یا تغییر دهیم. این امکان از جمله کاربردهایی مانند احراز هویت، ثبت لاگ، و مدیریت دسترسی را فراهم میکند.
🔄 اما تغییرات در لاراول 11
در نسخههای پیشین لاراول،
🛠 گام به گام تا اضافه کردن Middleware
1️⃣ ایجاد Middleware: با دستور زیر Middleware مورد نظر خود را ایجاد کنید:
2️⃣ تعریف Middleware : Middleware ایجاد شده را در فایل
3️⃣ اعمال Middleware به روتها: حالا میتوانید این Middleware را به روت یا گروهی از روتها اعمال کنید:
🗝 نکات کلیدی
🔸به خاطر داشته باشید که این تغییرات به شما اجازه میدهند با ساختار سادهتر و انعطافپذیرتری در پروژههای لاراولی خود کار کنید.
🔸استفاده از این روش جدید، مدیریت Middlewareها در لاراول 11 را بسیار روانتر میکند.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
امروز میخواهم با شما درباره یکی از نوآوریهای جذاب در نسخه 11 لاراول، یعنی نحوه تعریف و استفاده از Middleware، به اشتراک بگذارم.
🤔 چرا Middleware ؟
در واقع Middlewareها بخش مهمی از هر اپلیکیشن وب هستند که به ما اجازه میدهند درخواستهای وارد شده به اپلیکیشن را پیش از رسیدن به هستهی اپلیکیشن (Core) یا بعد از ارسال پاسخ، فیلتر یا تغییر دهیم. این امکان از جمله کاربردهایی مانند احراز هویت، ثبت لاگ، و مدیریت دسترسی را فراهم میکند.
🔄 اما تغییرات در لاراول 11
در نسخههای پیشین لاراول،
Middleware`ها را در فایل `Kernel.php تعریف میکردیم. اما در نسخه 11، لاراول یک رویکرد جدید را معرفی کرده که تعریف Middleware`ها را در فایل `bootstrap/app.php انجام میدهیم. 🛠 گام به گام تا اضافه کردن Middleware
1️⃣ ایجاد Middleware: با دستور زیر Middleware مورد نظر خود را ایجاد کنید:
php artisan make:middleware OrgCustomerAuthenticate
2️⃣ تعریف Middleware : Middleware ایجاد شده را در فایل
bootstrap/app.php با استفاده از متد withMiddleware و alias تعریف کنید:
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth.org_customer' => \App\Http\Middleware\OrgCustomerAuthenticate::class,
]);
})
3️⃣ اعمال Middleware به روتها: حالا میتوانید این Middleware را به روت یا گروهی از روتها اعمال کنید:
Route::prefix('/panel')->middleware('auth.org_customer')->group(function() {
Route::get('/', [PanelController::class, 'index'])->name('panelSide');
});
🗝 نکات کلیدی
🔸به خاطر داشته باشید که این تغییرات به شما اجازه میدهند با ساختار سادهتر و انعطافپذیرتری در پروژههای لاراولی خود کار کنید.
🔸استفاده از این روش جدید، مدیریت Middlewareها در لاراول 11 را بسیار روانتر میکند.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍13❤2🔥1🙏1
کانال آموزشی لاراول
Photo
سلام رفقا
بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی🫶
⚡️ نگاهی به ویژگیهای جدید PHP 8.4
به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت.
📅 زمان انتشار PHP 8.4 چه تاریخی است؟
انتشار رسمی PHP 8.4 برای ۲۱ نوامبر ۲۰۲۴ برنامهریزی شده است. پیش از انتشار رسمی، این نسخه طی ۶ ماه مراحل پیشانتشار را از آلفا، بتا و کاندیداهای انتشار طی میکند.
💥 Property Hooks در PHP
از زبانهایی مثل Kotlin، C# و Swift الهام گرفته شده است. این ویژگی شامل دو نوع سینتکس متفاوت است که شبیه به closures کوتاه و چند خطی هستند:
🤓 در واقع Property hooks کمک میکنند تا از کدهای زائد مربوط به getter و setter های خاصیتها خلاص شویم و به یک خاصیت اجازه میدهد که دسترسی و بهروزرسانیها را با استفاده از hooks تعریف کند.
☄️ دسترسی به اعضای کلاس بدون پرانتز
از زمان معرفی دسترسی به اعضای کلاس هنگام نمونهسازی، شما باید ()new MyClass را در پرانتز قرار دهید، وگرنه با خطا مواجه میشوید. سینتکس پیشنهادی به شما این امکان را میدهد که به ثوابت، خصوصیات و متدها بدون نیاز به پرانتز اضافی دسترسی داشته باشید:
⌛ این بهروزرسانی مشکل کوچک دسترسی به اعضای کلاس را سادهتر میکند، بهطوری که نیازی به افزودن پرانتزهای اضافی یا استفاده از متد سازنده استاتیک نخواهد بود. این تغییر سینتکس PHP را بیشتر با زبانهای C مانند جاوا، #C و TypeScript همسو میکند که نیازی به پرانتزهای احاطهکننده ندارند.
🔗 برای مطالعه بیشتر PHP 8.4
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی
به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت.
📅 زمان انتشار PHP 8.4 چه تاریخی است؟
انتشار رسمی PHP 8.4 برای ۲۱ نوامبر ۲۰۲۴ برنامهریزی شده است. پیش از انتشار رسمی، این نسخه طی ۶ ماه مراحل پیشانتشار را از آلفا، بتا و کاندیداهای انتشار طی میکند.
از زبانهایی مثل Kotlin، C# و Swift الهام گرفته شده است. این ویژگی شامل دو نوع سینتکس متفاوت است که شبیه به closures کوتاه و چند خطی هستند:
class User implements Named
{
private bool $isModified = false;
public function __construct(
private string $first,
private string $last
) {}
public string $fullName {
// بازنویسی اکشن "خواندن" با منطق دلخواه
get => $this->first . " " . $this->last;
// بازنویسی اکشن "نوشتن" با منطق دلخواه
set {
[$this->first, $this->last] = explode(' ', $value, 2);
$this->isModified = true;
}
}
}
از زمان معرفی دسترسی به اعضای کلاس هنگام نمونهسازی، شما باید ()new MyClass را در پرانتز قرار دهید، وگرنه با خطا مواجه میشوید. سینتکس پیشنهادی به شما این امکان را میدهد که به ثوابت، خصوصیات و متدها بدون نیاز به پرانتز اضافی دسترسی داشته باشید:
// پرانتزهای اضافی برای دسترسی به اعضای کلاس مورد نیاز هستند
$request = (new Request())->withMethod('GET')->withUri('/hello-world');
// خطا PHP (<= PHP 8.3): syntax error, unexpected token "->"
$request = new Request()->withMethod('GET')->withUri('/hello-world');
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤7🔥7👏1
از جایی که هستید شروع کنید. از آنچه دارید استفاده کنید. آنچه میتوانید انجام دهید.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Forwarded from اتاق برنامه نویسی </> (PapiDon)
David Thomas and Andrew Hunt
این کتاب توصیههای عملی و حرفهای برای توسعهدهندگان ارائه میدهد. موضوعاتی مانند مسئولیتپذیری شخصی و توسعه حرفهای تا تکنیکهای معماری را پوشش میدهد. با وجود اینکه در سال ۱۹۹۹ نوشته شده است، هنوز در بسیاری از جنبهها معتبر است. ویژگی منحصر به فرد این کتاب این است که به صورت عملی با مجموعهای از نکات برای بهبود فرآیند توسعه به شما آموزش میدهد.
David Farley
این کتاب بر ساخت نرمافزار عالی تمرکز دارد و نویسنده یک چارچوب محکم برای اتصال بهترین شیوهها مانند Continuous Delivery (CD)، معماری شش ضلعی و Test-Driven Development به ایدههای اصلی در مهندسی نرمافزار ارائه میدهد. او همچنین در مورد تاریخچه توسعه نرمافزار و ایدههایی که صنعت را تغییر دادهاند، مینویسد.
Steve McConnell
یکی از کتابهایی که بیش از ۱۵ سال پیش نوشته شده و هنوز معتبر است. این کتاب به طراحی، کدنویسی، اشکالزدایی و تست میپردازد. در بیش از ۹۰۰ صفحه، نویسندگان نحوه نوشتن برنامهها برای مردم اول و سپس برای کامپیوترها، چگونگی تقسیم کد به دامنهها و چگونگی تسلط بر ویژگیهای انسانی بهترین برنامهنویسان (تواضع، کنجکاوی و مهمتر از همه، کنترل اگو) را توضیح میدهند.
Titus Winters, Tom Manshreck, and Hyrum Wright
این کتاب درباره برنامهنویسی نیست، بلکه در مورد شیوههای مهندسی در گوگل برای حفظ و سلامت کدپایه آنها است. در این کتاب، تفاوت بین مهندسی نرمافزار و برنامهنویسی، اهمیت قانون بیانسه، و چگونگی تست صحیح چیزها و انتشار کوچک و مکرر را خواهید آموخت.
Eric Freeman
این کتاب الگوهای طراحی اصلی نرمافزار را برای ایجاد طراحیهای انعطافپذیرتر، شیکتر و قابل استفاده مجدد بدون نیاز به کشف مجدد راهحلهای طراحی توصیف میکند. این کتاب به سبک کتابهای For Dummies نوشته شده است، به طوری که برای مبتدیان قابل فهم باشد.
Aditya Bhargava
این کتاب به زبانی ساده درباره کاربرد الگوریتمهای استاندارد در مسائل روزمره توسعهدهندگان توضیح میدهد. از مرتبسازی و جستجو شروع میکند و سپس به فشردهسازی دادهها و هوش مصنوعی با نمونه کدهایی در پایتون میپردازد. احتمالاً بهترین کتاب برای شروع یادگیری الگوریتمها است.
Martin Kleppman
این کتاب مفاهیم پیشرفته داده مانند پایگاههای داده و مدلهای داده و مفاهیم توزیعشده مانند تراکنشها، تکرار، سازگاری و غیره را توضیح میدهد. این کتاب یکی از تأثیرگذارترین کتابها در این دسته است.
Steve Freeman
نویسندگان رویههای خود، اهداف طراحی و برخی ابزارهایی که برای انجام کار استفاده میکنند را شرح میدهند. در یک مثال گسترده، خواهید فهمید که چگونه TDD در چند سطح عمل میکند، با استفاده از تستها برای هدایت ویژگیهای کد و ساختار شیءگرا و استفاده از اشیاء شبیهسازیشده برای یافتن و سپس تعریف پیوندها بین اشیاء.
John Ousterhout
این کتاب توضیح میدهد که چگونه سیستمهای نرمافزاری پیچیده را به قطعات قابل پیادهسازی مستقل تقسیم کنیم. سپس به مسائل فلسفی در مورد نحوه برخورد با فرآیند طراحی نرمافزار میپردازد و فهرستی از راهنماییهای طراحی برای دنبال کردن ارائه میدهد. این کتاب همچنین فهرستی از علائم هشدار برای طراحی بد ارائه میدهد. این کتاب یک همراه عالی برای Clean Code است زیرا دیدگاه متفاوتی ارائه میدهد.
📁 #Skills
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3👏2🔥1
کانال آموزشی لاراول
Photo
تغییرات مسیریابی در لاراول 11 و مدیریت پیشوند
سلام دوستان 👋
امروز میخواهیم در مورد یکی از تغییرات مهم در لاراول 11 صحبت کنیم؛ یعنی نحوه مدیریت مسیریابی و پیشوند
🛠 حذف
در نسخههای قبلی لاراول، فایل
🧐 پیشوند
به صورت پیشفرض، وقتی شما از فایل
🔍 مثال:
فرض کنید در فایل
در این صورت، برای دسترسی به این مسیر باید از
✏️ تغییر یا حذف پیشوند
اگر میخواهید پیشوند
🔧 تنظیمات در bootstrap/app.php
با تنظیم apiPrefix به مقدار خالی ('')، دیگر مسیرهای API شما بدون پیشوند api/ خواهند بود. به این معنی که برای دسترسی به مسیر test فقط کافیست از http://127.0.0.1:8000/test استفاده کنید.
چرا
اگر این مسیر بدون پیشوند
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
api/سلام دوستان 👋
امروز میخواهیم در مورد یکی از تغییرات مهم در لاراول 11 صحبت کنیم؛ یعنی نحوه مدیریت مسیریابی و پیشوند
api/. این موضوع مخصوصاً برای کسانی که با نسخههای قبلی لاراول کار کردهاند، بسیار مهم است چون تغییرات عمدهای در ساختار مسیریابی لاراول 11 ایجاد شده است.🛠 حذف
RouteServiceProvider.phpدر نسخههای قبلی لاراول، فایل
RouteServiceProvider.php برای مدیریت مسیریابی و تنظیم پیشوندهایی مانند api/ استفاده میشد. اما در لاراول 11، این فایل حذف شده و مسئولیت تنظیمات مسیریابی به فایل bootstrap/app.php منتقل شده است.🧐 پیشوند
api/ از کجا میآید؟به صورت پیشفرض، وقتی شما از فایل
routes/api.php برای تعریف مسیرهای API استفاده میکنید، لاراول به طور خودکار پیشوند api/ را به این مسیرها اضافه میکند. این پیشوند از طریق تنظیمات در فایل bootstrap/app.php اعمال میشود.🔍 مثال:
فرض کنید در فایل
routes/api.php یک مسیر به نام test تعریف کردهاید:Route::get('test', function() {
return "Hi";
});در این صورت، برای دسترسی به این مسیر باید از
http://127.0.0.1:8000/api/test استفاده کنید.✏️ تغییر یا حذف پیشوند
api/اگر میخواهید پیشوند
api/ را تغییر دهید یا حذف کنید، باید به سراغ فایل bootstrap/app.php بروید و تنظیمات را به دلخواه خود تغییر دهید.🔧 تنظیمات در bootstrap/app.php
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
apiPrefix: '', // با تنظیم این مقدار به خالی، پیشوند /api حذف میشود
)
->create();
با تنظیم apiPrefix به مقدار خالی ('')، دیگر مسیرهای API شما بدون پیشوند api/ خواهند بود. به این معنی که برای دسترسی به مسیر test فقط کافیست از http://127.0.0.1:8000/test استفاده کنید.
چرا
http://127.0.0.1:8000/test خطای 404 میدهد؟اگر این مسیر بدون پیشوند
api/ خطای 404 میدهد، به این دلیل است که پیشوند api/ به صورت پیشفرض به مسیرهای API شما اضافه شده است. برای رفع این مشکل، باید یا پیشوند را حذف کنید یا مسیر را به همراه پیشوند درست وارد کنید.✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
👍15❤2🔥1
کانال آموزشی لاراول
Photo
🎓 Laravel Sail
امروز میخواهیم درباره یکی از ابزارهای مفید و کاربردی لاراول به نام Laravel Sail صحبت کنیم. این ابزار مخصوصاً برای توسعهدهندگانی طراحی شده که میخواهند محیط توسعه لاراول خود را با استفاده از Docker به سرعت و بدون پیچیدگی راهاندازی کنند. بیایید ببینیم Sail دقیقاً چه کار میکند و چرا ممکن است برای پروژههای شما مفید باشد.
🧐 اصلا Laravel Sail چیست؟
یک رابط خط فرمان سبک برای تعامل با محیط توسعه پیشفرض لاراول در Docker است. Sail به شما اجازه میدهد تا بدون نیاز به داشتن دانش عمیق از Docker، به راحتی یک محیط توسعه کامل برای پروژههای لاراول خود راهاندازی کنید. این محیط شامل سرویسهایی مثل PHP، MySQL، Redis و بسیاری دیگر است که برای توسعهی برنامههای لاراولی مورد نیاز هستند.
🔧 چطور کار میکند؟
در واقع Sail از طریق یک فایل
🎯 کاربرد Laravel Sail
- راهاندازی سریع محیط توسعه: Sail به شما این امکان را میدهد که با چند دستور ساده، یک محیط توسعه کامل راهاندازی کنید.
- استفاده در سیستمهای مختلف: Sail روی macOS، Linux و Windows (با WSL2) پشتیبانی میشود، بنابراین بدون نگرانی از سیستمعامل خود میتوانید از آن استفاده کنید.
- اجرای دستورات در محیط ایزوله: شما میتوانید دستورات مختلف PHP، Composer، Artisan و حتی Node.js را در داخل کانتینر Docker اجرا کنید، که به معنای ایزوله بودن محیط توسعه از سیستم اصلی شماست.
- مدیریت پایگاه دادهها: Sail به شما اجازه میدهد به سادگی با پایگاه دادههایی مثل MySQL و Redis در Docker تعامل داشته باشید، بدون اینکه نیاز به نصب مستقیم آنها روی سیستمتان داشته باشید.
🔍 چه زمانی از Sail استفاده کنیم؟
اگر میخواهید به سرعت و بدون درگیری با تنظیمات پیچیده Docker، یک محیط توسعه کامل برای پروژه لاراولی خود ایجاد کنید، Laravel Sail انتخاب بسیار خوبی است. این ابزار به خصوص برای تیمهایی که میخواهند یک محیط توسعه یکپارچه و مشترک داشته باشند، مفید است.
امیدوارم این درسگفتار به شما کمک کرده باشد تا بهتر درک کنید Laravel Sail چیست و چه کاربردهایی دارد! 🙂🫶
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
امروز میخواهیم درباره یکی از ابزارهای مفید و کاربردی لاراول به نام Laravel Sail صحبت کنیم. این ابزار مخصوصاً برای توسعهدهندگانی طراحی شده که میخواهند محیط توسعه لاراول خود را با استفاده از Docker به سرعت و بدون پیچیدگی راهاندازی کنند. بیایید ببینیم Sail دقیقاً چه کار میکند و چرا ممکن است برای پروژههای شما مفید باشد.
🧐 اصلا Laravel Sail چیست؟
یک رابط خط فرمان سبک برای تعامل با محیط توسعه پیشفرض لاراول در Docker است. Sail به شما اجازه میدهد تا بدون نیاز به داشتن دانش عمیق از Docker، به راحتی یک محیط توسعه کامل برای پروژههای لاراول خود راهاندازی کنید. این محیط شامل سرویسهایی مثل PHP، MySQL، Redis و بسیاری دیگر است که برای توسعهی برنامههای لاراولی مورد نیاز هستند.
🔧 چطور کار میکند؟
در واقع Sail از طریق یک فایل
docker-compose.yml در ریشه پروژه شما کار میکند. این فایل، سرویسهای مختلف مورد نیاز برای اجرای پروژه را تعریف میکند. سپس با استفاده از دستوراتی که از طریق CLI Sail فراهم میشوند، میتوانید این سرویسها را به راحتی مدیریت کنید.🎯 کاربرد Laravel Sail
- راهاندازی سریع محیط توسعه: Sail به شما این امکان را میدهد که با چند دستور ساده، یک محیط توسعه کامل راهاندازی کنید.
- استفاده در سیستمهای مختلف: Sail روی macOS، Linux و Windows (با WSL2) پشتیبانی میشود، بنابراین بدون نگرانی از سیستمعامل خود میتوانید از آن استفاده کنید.
- اجرای دستورات در محیط ایزوله: شما میتوانید دستورات مختلف PHP، Composer، Artisan و حتی Node.js را در داخل کانتینر Docker اجرا کنید، که به معنای ایزوله بودن محیط توسعه از سیستم اصلی شماست.
- مدیریت پایگاه دادهها: Sail به شما اجازه میدهد به سادگی با پایگاه دادههایی مثل MySQL و Redis در Docker تعامل داشته باشید، بدون اینکه نیاز به نصب مستقیم آنها روی سیستمتان داشته باشید.
🔍 چه زمانی از Sail استفاده کنیم؟
اگر میخواهید به سرعت و بدون درگیری با تنظیمات پیچیده Docker، یک محیط توسعه کامل برای پروژه لاراولی خود ایجاد کنید، Laravel Sail انتخاب بسیار خوبی است. این ابزار به خصوص برای تیمهایی که میخواهند یک محیط توسعه یکپارچه و مشترک داشته باشند، مفید است.
امیدوارم این درسگفتار به شما کمک کرده باشد تا بهتر درک کنید Laravel Sail چیست و چه کاربردهایی دارد! 🙂🫶
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
👍10❤2