کانال آموزشی لاراول
📌 کانال اتاق برنامه نویسی @PapiDon_coding
إظهار المزيد3 621
المشتركون
+324 ساعات
+37 أيام
-630 أيام
- المشتركون
- التغطية البريدية
- ER - نسبة المشاركة
جاري تحميل البيانات...
معدل نمو المشترك
جاري تحميل البيانات...
Repost from اتاق برنامه نویسی </>
🤓 کتابهایی که هر مهندس نرمافزاری باید در سال ۲۰۲۴ بخواند ...
🔖The Pragmatic Programmer The Pragmatic Programmer
David Thomas and Andrew Hunt
این کتاب توصیههای عملی و حرفهای برای توسعهدهندگان ارائه میدهد. موضوعاتی مانند مسئولیتپذیری شخصی و توسعه حرفهای تا تکنیکهای معماری را پوشش میدهد. با وجود اینکه در سال ۱۹۹۹ نوشته شده است، هنوز در بسیاری از جنبهها معتبر است. ویژگی منحصر به فرد این کتاب این است که به صورت عملی با مجموعهای از نکات برای بهبود فرآیند توسعه به شما آموزش میدهد.
🔖The Pragmatic Programmer Modern Software Engineering
David Farley
این کتاب بر ساخت نرمافزار عالی تمرکز دارد و نویسنده یک چارچوب محکم برای اتصال بهترین شیوهها مانند Continuous Delivery (CD)، معماری شش ضلعی و Test-Driven Development به ایدههای اصلی در مهندسی نرمافزار ارائه میدهد. او همچنین در مورد تاریخچه توسعه نرمافزار و ایدههایی که صنعت را تغییر دادهاند، مینویسد.
🔖The Pragmatic Programmer Code Complete: A Practical Handbook of Software Construction
Steve McConnell
یکی از کتابهایی که بیش از ۱۵ سال پیش نوشته شده و هنوز معتبر است. این کتاب به طراحی، کدنویسی، اشکالزدایی و تست میپردازد. در بیش از ۹۰۰ صفحه، نویسندگان نحوه نوشتن برنامهها برای مردم اول و سپس برای کامپیوترها، چگونگی تقسیم کد به دامنهها و چگونگی تسلط بر ویژگیهای انسانی بهترین برنامهنویسان (تواضع، کنجکاوی و مهمتر از همه، کنترل اگو) را توضیح میدهند.
🔖The Pragmatic Programmer Software Engineering at Google
Titus Winters, Tom Manshreck, and Hyrum Wright
این کتاب درباره برنامهنویسی نیست، بلکه در مورد شیوههای مهندسی در گوگل برای حفظ و سلامت کدپایه آنها است. در این کتاب، تفاوت بین مهندسی نرمافزار و برنامهنویسی، اهمیت قانون بیانسه، و چگونگی تست صحیح چیزها و انتشار کوچک و مکرر را خواهید آموخت.
🔖The Pragmatic Programmer Head First Design Patterns
Eric Freeman
این کتاب الگوهای طراحی اصلی نرمافزار را برای ایجاد طراحیهای انعطافپذیرتر، شیکتر و قابل استفاده مجدد بدون نیاز به کشف مجدد راهحلهای طراحی توصیف میکند. این کتاب به سبک کتابهای For Dummies نوشته شده است، به طوری که برای مبتدیان قابل فهم باشد.
🔖The Pragmatic Programmer Grokking Algorithms
Aditya Bhargava
این کتاب به زبانی ساده درباره کاربرد الگوریتمهای استاندارد در مسائل روزمره توسعهدهندگان توضیح میدهد. از مرتبسازی و جستجو شروع میکند و سپس به فشردهسازی دادهها و هوش مصنوعی با نمونه کدهایی در پایتون میپردازد. احتمالاً بهترین کتاب برای شروع یادگیری الگوریتمها است.
🔖The Pragmatic Programmer Designing Data-Intensive Applications
Martin Kleppman
این کتاب مفاهیم پیشرفته داده مانند پایگاههای داده و مدلهای داده و مفاهیم توزیعشده مانند تراکنشها، تکرار، سازگاری و غیره را توضیح میدهد. این کتاب یکی از تأثیرگذارترین کتابها در این دسته است.
🔖The Pragmatic Programmer Growing Object-Oriented Software by Tests
Steve Freeman
نویسندگان رویههای خود، اهداف طراحی و برخی ابزارهایی که برای انجام کار استفاده میکنند را شرح میدهند. در یک مثال گسترده، خواهید فهمید که چگونه TDD در چند سطح عمل میکند، با استفاده از تستها برای هدایت ویژگیهای کد و ساختار شیءگرا و استفاده از اشیاء شبیهسازیشده برای یافتن و سپس تعریف پیوندها بین اشیاء.
🔖The Pragmatic Programmer A Philosophy of Software Design
John Ousterhout
این کتاب توضیح میدهد که چگونه سیستمهای نرمافزاری پیچیده را به قطعات قابل پیادهسازی مستقل تقسیم کنیم. سپس به مسائل فلسفی در مورد نحوه برخورد با فرآیند طراحی نرمافزار میپردازد و فهرستی از راهنماییهای طراحی برای دنبال کردن ارائه میدهد. این کتاب همچنین فهرستی از علائم هشدار برای طراحی بد ارائه میدهد. این کتاب یک همراه عالی برای Clean Code است زیرا دیدگاه متفاوتی ارائه میدهد.
📁 #Skills
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
👍 5👏 2❤ 1🔥 1
Photo unavailableShow in Telegram
✨ Start where you are. Use what you have. Do what you can.
از جایی که هستید شروع کنید. از آنچه دارید استفاده کنید. آنچه میتوانید انجام دهید.
👍 6🔥 1
سلام رفقا
بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی 🫶
⚡️ نگاهی به ویژگیهای جدید PHP 8.4
به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت.
📅 زمان انتشار PHP 8.4 چه تاریخی است؟
انتشار رسمی PHP 8.4 برای ۲۱ نوامبر ۲۰۲۴ برنامهریزی شده است. پیش از انتشار رسمی، این نسخه طی ۶ ماه مراحل پیشانتشار را از آلفا، بتا و کاندیداهای انتشار طی میکند.
💥 Property Hooks در PHP
از زبانهایی مثل 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;
}
}
}
🤓 در واقع Property hooks کمک میکنند تا از کدهای زائد مربوط به getter و setter های خاصیتها خلاص شویم و به یک خاصیت اجازه میدهد که دسترسی و بهروزرسانیها را با استفاده از hooks تعریف کند.
☄️ دسترسی به اعضای کلاس بدون پرانتز
از زمان معرفی دسترسی به اعضای کلاس هنگام نمونهسازی، شما باید ()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');
⌛ این بهروزرسانی مشکل کوچک دسترسی به اعضای کلاس را سادهتر میکند، بهطوری که نیازی به افزودن پرانتزهای اضافی یا استفاده از متد سازنده استاتیک نخواهد بود. این تغییر سینتکس PHP را بیشتر با زبانهای C مانند جاوا، #C و TypeScript همسو میکند که نیازی به پرانتزهای احاطهکننده ندارند.
🔗 برای مطالعه بیشتر PHP 8.4
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding👍 13🔥 7❤ 6👏 1
✨ آموزش اضافه کردن Middleware در لاراول 11
امروز میخواهم با شما درباره یکی از نوآوریهای جذاب در نسخه 11 لاراول، یعنی نحوه تعریف و استفاده از `Middleware`، به اشتراک بگذارم.
🤔 چرا Middleware ؟
در واقع Middlewareها بخش مهمی از هر اپلیکیشن وب هستند که به ما اجازه میدهند درخواستهای وارد شده به اپلیکیشن را پیش از رسیدن به هستهی اپلیکیشن (Core) یا بعد از ارسال پاسخ، فیلتر یا تغییر دهیم. این امکان از جمله کاربردهایی مانند احراز هویت، ثبت لاگ، و مدیریت دسترسی را فراهم میکند.
🔄 اما تغییرات در لاراول 11
در نسخههای پیشین لاراول،
Middleware`ها را در فایل `Kernel.php
تعریف میکردیم. اما در نسخه 11، لاراول یک رویکرد جدید را معرفی کرده که تعریف Middleware`ها را در فایل `bootstrap/app.php
انجام میدهیم.
🛠 گام به گام تا اضافه کردن Middleware
1️⃣ ایجاد Middleware: با دستور زیر Middleware مورد نظر خود را ایجاد کنید:
php artisan make:middleware OrgCustomerAuthenticate2️⃣ تعریف 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👍 11🙏 1
Photo unavailableShow in Telegram
🪻 سال نو مبارک 🪻
تیم پاپیدون سالی پر از برکت، روزی و آرامش و حال خوب رو براتون آرزو میکنه
و در هر مسیری از زندگیتون که براش در تلاش هستید به بهترین نحو ممکن به خواسته هاتون برسید و موفقیت رو به بهترین شکل تجربه کنید
❤️🌻🍃🥰
❤ 11👍 1
Repost from اتاق برنامه نویسی </>
Photo unavailableShow in Telegram
🪻 سال نو مبارک 🪻
تیم پاپیدون سالی پر از برکت، روزی و آرامش و حال خوب رو براتون آرزو میکنه
و در هر مسیری از زندگیتون که براش در تلاش هستید به بهترین نحو ممکن به خواسته هاتون برسید و موفقیت رو به بهترین شکل تجربه کنید
❤️🌻🍃🥰
🔧 راهنمای رفع مشکل اتصال به دیتابیس در لاراول 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:
اگر امکانپذیر است، سرور دیتابیس را به نسخهای ارتقاء دهید که از این
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👍 11❤ 2🔥 1🙏 1
اختر خطة مختلفة
تسمح خطتك الحالية بتحليلات لما لا يزيد عن 5 قنوات. للحصول على المزيد، يُرجى اختيار خطة مختلفة.