Golden Code – Telegram
Golden Code
737 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
در لاراول با استفاده از متود ()isDirty میتونیم بررسی کنیم که یک یا حتی چند attribute از زمان آخرین بازیابی که انجام دادیم تغییر کردن یا نه،

حالا یعنی چی؟؟

فرض کنین میخواید بررسی کنین نام کاربری که درخواست ورود داده نسبت به دفعه ی قبلیش که وارد شده تغییر کرده یا نه، اینجا میشه ازین متود کمک گرفت.
در مثال زیر حالت های مختلفی که نتیجش true یا false میشه بررسی شده.
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1807859649770643832?s=35
👍21🔥1
در لاراول به راحتی میتونیم ویژگی های داینامیک رو به مدلمون اضافه کنیم .
در واقع این ویژگی هارو در دیتابیس تعریف نکردیم و نیاز به تغییر ساختار دیتابیس برای اضافه کردنشان نداریم.

درین حالت میتونیم براشون مقدار پیشفرض نیز مشخص کنیم.
در مثال زیر داخل مدل Media ، به راحتی فرایند دسترسی به url پیاده سازی شده.(بدونه درنظر گرفتن ستونی خاص در دیتابیس)
#Laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید 👇🏾)
https://x.com/laravelbackpack/status/1807738434305531922?s=35
3🔥2
Forwarded from CleverDevs (Mammad)
-اصل Use Searchable Names در کلین کد

اسامی تک کارکتری یا داری عدد یه مشکل خاص دارن اونم اینه که نمیشه بین کد ها سرچشون کرد و پیداشون کرد مثلا شما میتونید MAX_CLASSES_PER_STUDENT رو به راحتی بین کد ها پیدا کنید اما برای پیدا کردن عدد 7 مشکلات بیشتری دارید.
در این صورت ممکنه وقتی سرچ میکنید بره اون تیکه کلمه هارو بین اسم فایلا یا ... جستجو کنه مثلا اسم متغیر رو گذاشین A و کلی فایل دارین که A توش هست و وقتی سرچ میکنید دردسر دارید پس از اسمی استفاده کنید که بشه سرچش کرد.

البته اینم بگم که از متغیر های تک کلمه ای میشه تو اسکوپ های کوچیک استفاده کرد مثلا وقتی for loop میزنید منطقیه که از i یا j استفاده کنید.

#CleanCode
@CleverDevs
@CleverDevsGp
👍3🔥2😁1
Forwarded from Curious Geek ⚡️
❗️Your Code smells
❗️کد هات بو میده

یکی از اصطلاحات مهندسی نرم افزار که خیلی کاربردی هستش. وقتی شرایط زیر پیش میاد کد هاتون بو میده


1⃣ Long Method
متدی است که دارای خطوط زیادی کد بوده و چندین وظیفه را به عهده دارد. این که دقیقا چه متدی طولانی است قابل بحث است و تا حدودی به زبان برنامه نویسی بستگی دارد، اما عدم رعایت اصل single responsibility باعث بودار شدن کد میشه
2⃣ Long parameter list
تعداد پارامترهای زیاد یک متد یا تابع برای بلند مدت کد رو بودار میکنه. تا حدی عامل این موضوع همون مورد 1⃣ هستش ولی اگر نیاز به پارامتر های زیادی داشتیم میتونیم اون ها رو توی یک آبجکت بزاریم
3⃣ Don't repeat yourself
یکی از مشکلاتی که در دراز مدت ایجاد میشه تکرار کد ها در طول توسعه برنامه هست. باید این کد ها رو استخراج کنیم و منطق های تکراری رو تبدیل به متد یا تابع کنیم
4⃣ Dead code
کد هایی دیگه به هر دلیلی توی پروژه کاربردی ندارن رو جای کامنت کردن پاک کنیم. شاید بعداً به کارمون بیان ، خب ورژن کنترلر هایی مثل گیت برای همین ساخته شدن دیگه :)
5⃣ Select good variable names
موقعی که اسم متغیر ها رو انتخاب میکنیم ، سعی کنیم طوری باشه که بشه کاربرد اون متغیر رو از اسم اش متوجه شد

راستی اینا رو از یک ویدئو فارسی توی یوتیوب یاد گرفتم. از این لینک میتونید ویدئو اصلی رو ببینید
🌐 https://bit.ly/3LkXwc0
🆔 @Hiradsajde
5💯1
Forwarded from Pishro App
💡 اولین ورژن از نسخه php 8.4 منتشر شد و شما میتونید برای آزمایش از این نسخه استفاده کنید.
نسخه 8.4 php قراره 21 نوامبر ۲۰۲۴ بطور رسمی منتشر بشه


نسخه Alpha 1 از php 8.4 رو از اینجا میتونید ببینید و برای تست دانلود کنید


https://www.php.net/archive/2024.php#2024-07-05-1

#php

👾 @pishraopp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
در لاراول متود های chopStart و chopEnd بسیار مفیدن زیرا به ما این قابلیت رو میده تا بتونیم از ابتدا یا انتهای یک رشته اقدام به پاک کردن کارکتر مدنظر کنیم.

یعنی چی؟

به مثال یک (chopStart)نگاه کنین، اگر در ابتدای این رشته، کارکتر هایی که تعیین شدن وجود داشته باشن حذف خواهند شد.✔️
(این متود ها از نسخه ۱۱.۱۴ در دسترسن)
#Laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1812576667313066137?s=19
👍32
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 در لاراول، Boolean Query به شما این امکان را می‌دهند که با استفاده از شرایط منطقی مختلف، داده‌ها را از دیتابیس فیلتر کنید.

1. استفاده از شرط where

استفاده از شرط‌های where برای فیلتر کردن داده‌ها با شرایط مختلف:

$users = DB::table('users')->where('name', 'John')->get();


2. استفاده از orWhere

استفاده از orWhere برای اضافه کردن شرط‌های منطقی OR به کوئری:

$users = DB::table('users')->where('name', 'John')->orWhere('name', 'Jane')->get();


3. استفاده از whereBetween

استفاده از whereBetween برای فیلتر کردن داده‌ها با محدوده مقادیر:

$users = DB::table('users')->whereBetween('age', [20, 30])->get();


4. استفاده از whereIn

استفاده از whereIn برای فیلتر کردن داده‌ها بر اساس مجموعه‌ای از مقادیر:

$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();


5. استفاده از whereNull و whereNotNull

استفاده از whereNull و whereNotNull برای فیلتر کردن داده‌ها بر اساس مقادیر null:

$users = DB::table('users')->whereNull('email')->get();
$users = DB::table('users')->whereNotNull('email')->get();


6. استفاده از whereExists

استفاده از whereExists برای بررسی وجود رکوردهای مرتبط در یک ساب کوئری:

$users = DB::table('users')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('posts')
->whereRaw('posts.user_id = users.id');
})
->get();


7. استفاده از توابع when

استفاده از when برای اعمال شرایط به صورت داینامیک:

$role = 'admin';

$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role', $role);
})
->get();


8. ترکیب شرط‌های مختلف

ترکیب چندین شرط با استفاده از گروه‌بندی توابع:

$users = DB::table('users')
->where('status', 'active')
->where(function ($query) {
$query->where('name', 'John')
->orWhere('age', '>', 30);
})
->get();



#لاراول

@TheRaymondDev
👍74
در لاراول بعضی وقتا نیازه تا برخی از کلمات یا عبارت های موجود رو با عبارت های مدنظرمون جابجا کنیم تا تغییراتی که میخوایم اعمال شوند.

چجوری؟

📌 به مثال زیر توجه کنین، دو کلمه ازین جمله انتخاب شده(Tacos و Great) و عملیات جایگذاری رو با استفاده از متود ()swap اعمال کردیم, اکنون خروجی دارای تغییرات جدیدمون خواهد شد.( Burritos fantastic)
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثال دقت کنید👇🏾)
https://x.com/OussamaMater/status/1813313409443844221?t=M4HQZcZjhBALXUTQX83fxw&s=35
👍5
سه اصل KISS ،YAGNI ،DRY در برنامه نویسی

🔵اصل DRY

قانون DRY که مخفف dont repeat yourself هست، به معنای تکرار بیهوده نکردن کد می‌باشد. خلاصه و مفید بهتون بگم، یعنی کدوم بخش های برنامه مشابه هستن و سعی کنید با استفاده از کلاس ها و توابع، میزان استفاده از کدهای تکراری رو در پروژه به حداقل برسونید. هر چقدر از تکرار کد بیهوده بیشتر جلوگیری کنید، میزان زمان و هزینه‌های پشتیبانی خیلی کمتر میشه و مشکلات کمتری هم توی پروژه ایجاد میشه.

🔵اصل KISS

این اصل مخفف Keep It Simple, Stupid هست و در این قاعده، ساده گرایی و پرهیز از پیچیدگی حرف اول رو میزنه. هرچقدر که کارها به واحدهای کوچک با فرآیندهای ساده‌تری تبدیل بشه، بازدهی افراد بیشتر میشه، میزان خطا کمتر میشه و پروژه موفق تر جلو میره. برای مثال کامپوننت های کوچیک بنویسیم، هر کامپوننت فقط یه کار مشخص رو انجام بده و ...

🔵 اصل YAGNI

اصل YAGNI که مخفف You Aren’t Gonna Need It هست، یک تمرین در توسعه نرم افزار هست که میگه ویژگی ها، فقط باید در صورت نیاز اضافه بشن. بحث اینه که توسعه دهندگان زمان خودشون رو برای ایجاد عناصر اضافی که ممکنه ضروری نباشن و باعث کند کردن روند توسعه هستن، تلف نکنن.

بطور خلاصه KISS, YAGNI, DRY سه اصل مهم در برنامه نویسی هستن که رعایت کردن اونها در نگهداری، تغییر و خوانایی کدهای پروژه در طولانی مدت بسیار تاثیرگذار می‌باشد.

#shahin
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62💯2
در لاراول وقتی میخوایم یه مقدار رو از session بخونیم و بعدش اونو حذفش کنیم، میتونیم بجای استفاده از متود های()get و ()forget ، از متود ()pull استفاده کنیم.

استفاده ازش باعث میشه کد تمیزتر و کوتاه تر بشه.

📌 چجوری کار میکنه؟
طبق مثال زیر همزمان مقدار key رو از session میخونه و سپس حذفش میکنه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1814389905554022561?t=mOMUzlFBulYMC9lBlrbsvQ&s=19
5👍1👏1
۵ نکنه جهت بهبود عملکرد و سرعت وبسایت

عملکرد و سرعت بارگذاری وبسایت، یکی از مهم‌ترین فاکتورهایی هست که تجربه کاربری و رتبه‌بندی در موتورهای جستجو رو تحت تاثیر قرار میده. در این پست، چند تا از استراتژی‌های خفن و پرکاربرد برای بهینه‌سازی عملکرد در فرانت‌اند رو بررسی می‌کنیم.


1⃣ بهینه‌سازی تصاویر

تصاویر حجم زیادی از داده‌ها رو به خود اختصاص میدن. با فشرده‌سازی تصاویر و استفاده از فرمت‌های مدرن مثل WebP، می‌تونید حجم صفحات خودتون رو کاهش بدید. همچنین می‌تونید از تگ <picture> برای پشتیبانی بهتر مرورگرها استفاده کنید:

<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="PgTwEeT">
</picture>


2⃣استفاده از Lazy Loading

بارگذاری تنبل (Lazy Loading) به شما این امکان رو میده که تصاویر و ویدئوها تنها زمانی بارگذاری بشن، که کاربر به اون‌ها اسکرول کنه و این باعث کاهش زمان بارگذاری اولیه میشه. این ویژگی در HTML5 پشتیبانی میشه و نیازی به پلاگین‌های اضافی نیست:

<img src="image.jpg" loading="lazy" alt="PgTwEeT">


3⃣کاهش درخواست‌های HTTP

با ترکیب فایل‌های CSS و JavaScript و استفاده از ابزارهایی مثل Webpack، می‌تونید تعداد درخواست‌های HTTP رو کاهش بدید. همچنین می‌تونید از فشرده‌سازی فایل‌ها با gzip یا Brotli استفاده کنید تا حجم فایل‌ها کاهش پیدا کنه.


4⃣استفاده از Content Delivery Network (CDN)

‏CDN به شما کمک می‌کنه تا محتوا رو از نزدیک‌ترین سرور به کاربر ارائه بدید، که باعث کاهش زمان بارگذاری و افزایش مقیاس‌پذیری وبسایت میشه:


5⃣بهینه‌سازی فایل‌های CSS و JavaScript

با استفاده از ابزارهایی مثل UglifyJS و CSSNano، می‌تونید کدهای خودتون رو بهینه و حجم فایل‌ها رو کاهش بدید. همچنین می‌تونید از ابزارهای مدرنی مثل Terser برای جاوااسکریپت و PostCSS برای CSS استفاده کنید:

// Example using UglifyJS
const UglifyJS = require("uglify-js");
const result = UglifyJS.minify("function add(a, b) { return a + b; }");
console.log(result.code);


بهینه‌سازی عملکرد، یکی از مهم‌ترین جنبه‌های توسعه وبسایت‌های حرفه‌ای و مدرن هست. امیدوارم از این پست لذت برده باشید 😀

#vesal
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔒 نکته امنیتی سایت لاراولی

دسترسی به فایل .env عین آب خوردنه

با اضافه کردن کد زیر به فایل .htaccess از دسترسی افراد به فایل .env جلوگیری کنید❤️‍🔥

<Files .env>
Order allow,deny
Deny from all
</Files>

#لاراول
#مرداد
#laravel
🔥133👍3
در لاراول ، بسته به محیطی که برنامه داخلش اجرا میشه ممکنه نیاز بشه عملیات های مشخصی رو فعال یا غیر فعال کنیم .

مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).

📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
👍71
Forwarded from Anophel | آنوفل
در لاراول دیزاین پترن Repository برای جداسازی لایه دسترسی به داده‌ها از لایه منطقی استفاده می‌شود. این پترن به توسعه‌دهندگان اجازه می‌دهد تا با استفاده از یک واسط مشترک به داده‌های مختلف دسترسی پیدا کنند و تغییرات در لایه داده را بدون تأثیر بر لایه منطقی مدیریت کنند.


دیزاین پترن Repository در لاراول از سه بخش اصلی تشکیل شده است:

اینترفیس Repository: این اینترفیس متد هایی را تعریف می‌کند که برای تعامل با مکانیسم ذخیره‌سازی داده استفاده می‌شوند. این یک لایه آبسترک بین کد برنامه و دیتابیس فراهم می کند.

کلاس Repository: این کلاس اینترفیس Repository را پیاده‌سازی می‌کند و شامل اجرای واقعی متد های تعریف‌ شده در اینترفیس است. برای انجام عملیات CRUD (ایجاد، خواندن، به‌روزرسانی و حذف) با مکانیسم ذخیره‌سازی داده تعامل دارد.

کلاس سرویس: این کلاس از کلاس Repository برای انجام عملیات لاجیک استفاده می کند. به عنوان یک واسطه بین Controller و Repository عمل می کند و لایه ای از آبسترک را بین لایه ارائه و لایه ذخیره سازی داده ارائه می دهد.


مزایای استفاده از Repository
1. جداسازی نگرانی‌ها (Separation of Concerns): لایه منطقی از جزئیات دسترسی به داده‌ها جدا می‌شود.
2.قابلیت تست بهتر: با جدا کردن منطق تجاری از منطق دسترسی به داده‌ها، تست واحد آسان‌تر می‌شود.
3. مدیریت بهتر تغییرات: تغییرات در ساختار داده‌ها یا منبع داده به سادگی مدیریت می‌شود.

خلاصه کلام
استفاده از الگوی Repository در لاراول مزایای متعددی دارد از جمله جداسازی نگرانی‌ها، قابلیت تست بهتر، و مدیریت ساده‌تر تغییرات. این پترن شامل تعریف اینترفیس ها، پیاده‌سازی آن‌ها در کلاس‌های Repository و ثبت آن‌ها در سرویس‌ پراوایدر است.

Anophel آنوفل

#لاراول #دیزاین_پترن #laravel #design_pattern
5👍1👏1
در لاراول ، با استفاده از هوک passedValidation در form request میتونیم دیتای اعتبار سنجی شده رو پیش از ارسال به کنترلر تغییر بدیم.

به این ترتیب با این روش میتونیم دیتا رو طبق استانداردهایی که در نظر داریم اصلاح کنیم.

📌 در مثال زیر، تغییراتی که می‌خواستیم بر فیلد name اعمال شد تا در نهایت خروجیه استانداردی برای نمایش داشته باشیم.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815852488941080859?s=35
👍53🔥1
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 چالش لاراولی :

برای پکیچ Lame ورود موبایلی نوشتم اما هنگامی که با موبایل وارد می شوید و کد ورود را می زنید, با صفحه وریفای ایمیل مواجه می شویم و در حالی که این صفحه برای موبایل نیست و ورود به موبایل نیاز به وریفای صفحه نیست.

چه راهکاری هست که هنگام ورود با موبایل Verify اجرا نکند؟

این کد روت پکیچ لاراول است :

https://github.com/Rayiumir/Lame/blob/main/src/Routes/auth.php


#لاراول

@TheRaymondDev
👍61
با توجه به گزینه های زیر، با کدوم کد میتونیم در لاراول اقدام به ارسال یک ایمیل با استفاده از queue ‌کنیم؟
Anonymous Quiz
20%
Mail::to('test@gmail.com')->send(new MyMail());
31%
Mail::to('test@gmail.com')->queue(new MyMail());
32%
Mail::dispatch('test@gmail.com')->sendEmailJob(new MyMail());
17%
send(new SendEmailJob('test@gmail.com'));
4🔥1💯1
Forwarded from CleverDevs (Mahdi)
بجای اینکه از else if استفاده کنید (در بعضی شرایط) بهتره که از guard clauses استفاده کنید چون در این حالت کد خیلی خوانا تر و کوتاه تره.

#CleanCode Source
@CleverDevs
@CleverDevsGp
👍16🔥21👎1
توی سطوح بالاتر، افرادی که با شما مصاحبه میکنند مایلند بدونند که شما چقدر به جعبه ابزارتون مسلطید. اگر توی رزومه‌تون نوشتید که با ابزار X کار کردید، اونها از شما سوالاتی می‌پرسند که متوجه عمق درک و تجربه شما از اون ابزار بشوند درنتیجه خیلی مهمه که اولا واقعا با اون ابزار توی یک یا دو پروژه واقعی کار کرده باشید و چالش‌هاش رو تجربه کرده باشید و دوم اینکه وقتی دارید داکیومنت میخونید باید به صورت مداوم دنبال چرایی باشید! چرا این متد اینطور کار میکنه؟ چرا این API اینجوری دیزاین شده؟ چرا باید این مقادیر رو ست کنم؟ چرا باید این دیتا رو برای فلان متد فراهم کنم؟

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

۵- زودتر وارد دنیای open-source بشید!
تصور کنید وارد یک مغازه‌ طلافروشی میشید و میخواید طلا بخرید. روی دیوار پر از مدارک و جوایزه و آقا/خانم فروشنده به شما میگه که تا الان به این لیست از افراد خدمات دادیم و همگی راضی بودند. شما به ویترین نگاه میکنید و میبینید حتی یک جنس هم وجود نداره! پیش خودتون چی فکر میکنید؟ آیا به حرف فروشنده و چندتا تابلو اعتماد میکنید یا کمی مردد میشید؟

Talk is cheap. Show me the code.
- Linus Torvalds
واقعیت اینه که دنیای open-source درحال حاضر نقش زیادی رو برای اعتبار سنجی تجربیات شما بازی میکنه و یجورایی همون ویترین شماست. شاید به عنوان یک برنامه‌نویس عادی که یک نتورک قوی و مارکتینگ شرکت‌های بزرگ پشتش نیست نتونید پروژه‌ای با 10K استار توی گیت‌هاب داشته باشید اما میتونید در قدم اول به بقیه نشون بدید که چطور کدهاتون رو می‌نویسید و در قدم بعد تلاش بیشتری کنید تا استار بیشتری هم برای پروژه‌تون به دست بیارید. فعالیت توی گیت‌هاب، این رو به همکارهای آینده شما نشون میده که شما درحال یادگیری هستید و وقتی رو برای پروژه‌های جانبی میذارید که این ارزشمنده. همینطور ممکنه شما تمام تجربه کاریتون در زمینه JS بوده باشه ولی زبان Kotlin رو هم بلدید و دوست دارید تجربه بعدی کاریتون توی اون حوزه باشه. خیلی راحت میتونید پروژه‌ای که با Kotlin نوشتید رو در گیت‌هابتون منتشر کنید تا گواهی بر این باشه که شما Kotlin رو بلدید.

۶- زودتر به طور جدی زبان انگلیسی رو دنبال کنید
آخرین نکته‌ای که دوست دارم حتما بگم زبان انگلیسیه! تمام موارد قبلی به کنار، این مورد به کنار. واقعیتش اگر شما زبان انگلیسیتون رو تقویت نکنید، نمیتونید داکیومنت بخونید، کنفرانس ببینید، پادکست گوش بدید، توی دنیای open source فعالیت کنید و بعد از این‌ها اگر قصد مهاجرت داشته باشید، تقریبا براتون غیر ممکنه!

توی دنیای امروز شرکت‌های نرم‌افزاری بخصوص استارت‌آپ‌ها که نیاز به رشد و حرکت سریع دارند، مهم‌تر از کدی که می‌نویسید و ابزاری که باهاش کار میکنید اینه که بتونید با تیمتون تعامل مستمر و سودمند داشته باشید. بتونید مسائل و مشکلات پیچیده برنامه‌نویسی رو از طرف مقابلتون دریافت کنید و در مقابل بتونید به کسی دیگه به صورت واضح منتقل کنید. شاید یکی از مهم‌ترین دلایلی که برنامه‌نویس های هندی بیشتر از برنامه‌نویس‌های ایرانی از آسیا درحال کار توی شرکت‌های اروپایی و آمریکایی هستند همین باشه. شاید لهجه خیلی خوبی نداشته باشند(گاهی هم چیزی از نیتیو اسپیکر کم ندارند) اما بدون هیچ مشکلی مطلب رو درک میکنند و مطلبشون رو ارائه میدهند و برای هیچ کس(جز ما ایرانی‌ها😁) لهجه مهم نیست و تعامل مهمه. در نتیجه این مورد شاید بشه گفت مهم‌ترین چیزیه که باید روش بیشتر کار میکردم.

همین! این‌ها چیزهایی بود که فکر کردم از بقیه موارد مهم‌تر هستند و دونستنشون میتونه کمک کننده باشه. از اینکه این نوشته نسبتا طولانی رو خوندید ممنونم و امیدوارم کمکی کرده باشه بهتون.

📄#مقاله

Hamid Hadi

🕊 توییتر برنامه نویسان 🕊
👍101
در لاراول با کمک FakerPHP میتونید اقدام به ساخت شماره کارتهای fake کنید.
این شماره‌ کارتهای fake در محیط تستی واقعا مفیدن و بهتون کمک میکنن تا پروژه‌ هاتونو به خوبی آزمایش کنید.👌🏾

حتی میتونیم مشخص کنیم که چه نوعی از شماره کارت رو برامون تولید کنه؟ مثلا Visa یا MasterCard؟ (در تصویر زیر فرایندش گفته شده)
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1819092565561651269?t=H3Q4oXdHDOpKAIKBeFD2Yw&s=35
👍6
Forwarded from CleverDevs (Mammad)
‏Object Relational Mapping یا به اختصار ORM چیه؟ و به چه دردی میخوره؟

اگه بکند کار باشید احتمال زیاد با یه ORM کار کردید یا حداقل اسمشو شنیدید توی این پست یکم دقیق تر بررسی میکنیم که ORM چه کاربردی داره . در واقع ORM ها ابزار هایی هستن که کمک میکنن برنامه نویس های شی گرا راحت تر با دیتابیس ارتباط برقرار کنن

مثلا اگه شما بخواید یه سری اطلاعات رو از جدول users بگیرید باید یه همچین کوئری sql ای بنویسید :
"SELECT id, name, email, country, phone_number FROM users WHERE id = 20"

اما کمک ORM ها میتونید با یه همچین چیزی کارو در بیارید
users.GetById(20)


ORM یک لایه بین برنامه نویس و دیتابیس ایجاد میکنه و در نهایت متد های مورد استفاده شمارو به SQL ترجمه میکنه و کوئری میزنه به دیتابیس ORM های مختلفی هم برای زبون ها و فریمورک های مختلف وجود داره مثل Eloquent برای لاراول یا ORM فریمورک جنگو و...

‏ORM های مختلف میتونن متد های مختلفی هم داشته باشن ولی در نهایت هدفشون یکیه و یه کاری انجام میدن

استفاده از ORM ها یه سری مزایاا و یه سری معایب داره

مزایایی مثل
سرعت توسعه بالاتر
افزایش امنیت در اکثر اوقات
کمتر سرو کله زدن با SQL و ...

همینطور معایبی مثل
سرعت کمتر ORM نسبت به SQL
کارایی پایین ORM در کوئری های پیچیده و...


پ.ن درسته کار با ORM نیاز به دانش چندانی از SQL نویسی نداره اما به این معنی نیست که SQL بلد نباشید و فقط از ORM استفاده کنید

#ORM
@CleverDevs - @CleverDevsGp
👍54🔥1