PHP & MYSQL
1.34K subscribers
21 photos
1 video
36 files
23 links
Download Telegram
PHP & MYSQL pinned a photo
🔍 مهارت‌های اساسی غیرفنی (Soft Skills) برای برنامه‌نویسان 🔍

همگان می‌دانند که برنامه‌نویسان نیاز به مهارت‌های فنی خاص خودشان دارند. اما آیا می‌دانید که مهارت‌های غیرفنی نیز در موفقیت آن‌ها نقش پررنگی دارد؟

🔹 1. ارتباط موثر: با مشتریان، تیم و مدیران.
🔹 2. حل مسئله: شناسایی و رفع چالش‌ها.
🔹 3. یادگیری مداوم: با تغییرات فناوری هم‌گام باشید.
🔹 4. کار گروهی: همکاری با افراد با تخصص‌های متفاوت.
🔹 5. مدیریت زمان: اولویت‌بندی و انجام وظایف در زمان مقرر.
🔹 6. پذیرش نقد: استفاده از فیدبک برای بهبود.
🔹 7. مدیریت استرس: مقابله با فشارهای کاری.
🔹 8. رویکرد مشتری‌مدار: فهم و پاسخ به نیازهای مشتری.
🔹 9. تصمیم‌گیری: در مواقع حساس و ناخواسته.
🔹 10. مسئولیت‌پذیری: پذیرش خطاها و یادگیری از آن‌ها.

🚀 هرگز فراموش نکنید که موفقیت در دنیای برنامه‌نویسی نه تنها به دانش فنی بستگی دارد، بلکه به توانایی‌های انسانی و تعامل با دیگران نیز وابسته است.


#PapiDon
@PapiDon_state
2
PHP & MYSQL pinned a photo
🔍 آشنایی با سیستم LAMP

آیا تا به حال با این سوال روبرو شده‌اید که LAMP چیست؟

🌐 What is LAMP ?

مخففی است از مجموعه‌ای از نرم‌افزارهای متن‌باز که به صورت ترکیبی برای احداث و بهره‌برداری از وب‌سایت‌ها و وب‌اپلیکیشن‌ها استفاده می‌شوند.


🔢 مولفه‌های LAMP:

1. L: Linux – سیستم‌عامل مبتنی بر لینوکس.
2. A: Apache – وب‌سرور محبوب و متن‌باز.
3. M: MySQL – سیستم مدیریت پایگاه داده رابطه‌ای.
4. P: PHP – زبان برنامه‌نویسی (گاهی به Perl یا Python هم می‌پردازند).


📌 @PapiDon_state
1
PHP & MYSQL pinned a photo
🛠 Factory Pattern 🛠

همیشه در هنگام نوشتن کد با مواردی مواجه می‌شویم که نیاز به ایجاد نمونه‌های متعدد از یک کلاس داریم. الگوی Factory به ما کمک می‌کند تا این فرایند را ساده‌تر و منظم‌تر کنیم.

🧐 چرا از الگوی Factory ؟

1️⃣جداسازی فرآیند ایجاد نمونه از کد اصلی.

2️⃣انعطاف‌پذیری بیشتر: تغییر نحوه ایجاد نمونه بدون تغییر در کد اصلی.

3️⃣ مدیریت آسان‌تر و ساختار بهتر برای کد.

4️⃣کد خالص‌تر و منظم‌تر.

در Laravel، الگوی Factory همراه با Dependency Injection استفاده می‌شود، که ساخت نمونه‌های پیچیده‌تر را آسان‌تر می‌کند.

⚙️ با استفاده از Factory Pattern، می‌توانید نوشتار کد خود را منعطف‌تر و قابل مدیریت‌تر کنید.

📌@PapiDon_state
1
PHP & MYSQL pinned a photo
Forwarded from کانال آموزشی لاراول (PapiDon)
📲 PWA ( Progressive Web Apps )

اپلیکیشن‌های وبی هستند که تجربه مشابه اپلیکیشن‌های موبایل را فراهم می‌کنند. این تکنولوژی افزایش تعامل کاربر با وبسایت و بهینه‌سازی مصرف داده‌ها را می‌آورد.

⚙️ کاربردهای PWA

1️⃣ بهبود سرعت بارگذاری وبسایت

2️⃣ کارکرد بدون اتصال به اینترنت

3️⃣ ارسال پوش نوتیفیکیشن

4️⃣ امکان اضافه کردن به صفحه اصلی دستگاه‌ها مانند یک اپلیکیشن موبایل

5️⃣ بهینه‌سازی مصرف داده‌ها

6️⃣ افزایش تعامل کاربر با وبسایت

تکنولوژی PWA

🔸Service Workers:
اسکریپت‌هایی که در پس‌زمینه اجرا می‌شوند و امکان کارکرد بدون اتصال به اینترنت، پیش‌بارگیری منابع و پوش نوتیفیکیشن‌ها را فراهم می‌آورند.

🔹Manifest:
فایلی به فرمت JSON است که اطلاعات مرتبط با نمایش و اجرای اپلیکیشن را برای استفاده در دستگاه‌های مختلف در بر دارد.

🔸Caching:
با استفاده از Service Workers، منابع وبسایت در دستگاه کاربر ذخیره می‌شوند، اکه این امر امکان بارگیری سریع‌تر و کارکرد بدون اتصال به اینترنت را فراهم می‌آورد.

📌@PapiDon_state
1👍1
PHP & MYSQL pinned a photo
Forwarded from کانال آموزشی لاراول (PapiDon)
🧐 What is Pure Functions ?

توابع خالص یا Pure Functions مفهوم مهمی در برنامه‌نویسی هستند که دارای دو ویژگی اصلی می‌باشند:

1️⃣ خروجی ثابت: برای ورودی‌های مشابه، همیشه یک خروجی یکسان تولید می‌کنند.

2️⃣ عدم وجود اثرات جانبی (Side Effects): هیچ تغییری در وضعیت برنامه یا متغیرهای خارج از تابع ایجاد نمی‌کنند.

function add(a, b) {
return a + b;
}


این تابع با گرفتن دو عدد، جمع آن‌ها را بر می‌گرداند و هیچ Side Effect ندارد.

⚙️ مزایا :

🔹پیش‌بینی‌پذیری: به دلیل اینکه خروجی توابع خالص فقط به ورودی‌هایش بستگی دارد, برنامه‌نویس می‌تواند از رفتار آنها مطمئن باشد.

🔸تست‌پذیری: توابع خالص راحت‌تر می‌توانند تست شوند چون فقط باید ورودی داده شده و خروجی تولید شده را بررسی کرد.

🔹قابلیت ترکیب‌پذیری: توابع خالص می‌توانند راحت‌تر با یکدیگر ترکیب شوند تا وظایف پیچیده‌تری انجام دهند.

📌@PapiDon_state
1
Forwarded from کانال آموزشی لاراول (PapiDon)
🧐 What is Impure Functions ?

توابع ناخالص یا Impure Functions در مقابل توابع خالص قرار دارند و دو ویژگی اصلی دارند:

1️⃣ وابستگی به حالت خارجی: ممکن است به متغیرها یا حالت‌های خارجی وابسته باشند و خروجی‌شان تنها با توجه به ورودی‌ها قابل پیش‌بینی نباشد.

2️⃣ وجود Side Effect: مثل تغییر متغیرهای خارجی, انجام ورودی/خروجی و غیره.

let count = 0;

function increment() {
count++;
}


این تابع با گرفتن یک متغیر خارجی, مقدار آن را یک واحد افزایش می‌دهد.

⚠️ توابع ناخالص ممکن است پیچیدگی بیشتری به برنامه اضافه کنند و قابلیت تست و تحلیل برنامه را کاهش دهند. در برنامه‌نویسی تابعی, توصیه می‌شود که از توابع خالص بیشتری استفاده کنید تا برنامه‌ی ساده‌تر و قابل فهم‌تری داشته باشید.

توابع ناخالص در برخی موارد لازم و مفید هستند, اما استفاده زیاد از آن‌ها ممکن است به سختی‌های بیشتری منجر شود. 💡

📌@PapiDon_state
2
Forwarded from کانال آموزشی لاراول (PapiDon)
🔍 آشنایی با دستور distinct در لاراول

همگان با موقعیت‌هایی مواجه شده‌اند که نیاز به دریافت نتایج منحصر به فرد از دیتابیس دارند. در لاراول، این کار با استفاده از distinct بسیار ساده‌تر است.

📌 مثلا، برای دریافت نام‌های منحصر به فرد کاربران:


$uniqueNames = DB::table('users')->distinct()->pluck('name');


📌 یا برای منحصر بودن بر اساس چندین ستون:


$uniqueData = DB::table('users')->select('account_id', 'email')->distinct()->get();

distinct
نتایج تکراری را حذف می‌کند و فقط نتایج منحصر به فرد را به شما نشان می‌دهد.


🔗 برای آموزش‌های بیشتر با ما همراه باشید!
📌 @PapiDon_state
3👍1
PHP & MYSQL pinned a photo
Forwarded from کانال آموزشی لاراول (PapiDon)
What you do is what matters, not what you think or say or plan.

کاری که انجام می‌دهید مهم است، نه اینکه چه فکر یا چه حرف یا چه برنامه‌ای دارید. - " جیسون فراید"


📌 @PapiDon_state
3
Forwarded from کانال آموزشی لاراول (PapiDon)
🛠 کوئری زدن در لاراول

در لاراول، با بهره‌گیری از توابع گوناگون، می‌توانید انواع جستجوها و کوئری‌ها را برای دیتابیس خود تنظیم و اجرا کنید.

1️⃣ whereNull:
- جستجوی سطرهایی که مقدار خاصی در یک ستون خالی است.
- 📌 User::whereNull('email_verified_at')->get();

2️⃣ whereDate:
- جستجوی سطرهایی با مقدار تاریخی خاص در یک ستون.
- 📌 User::whereDate('created_at', '2023-10-10')->get();

3️⃣ whereMonth:
- جستجوی سطرهایی با مقدار ماهی خاص در یک ستون تاریخی.
- 📌 User::whereMonth('created_at', '10')->get();

4️⃣ whereDay:
- جستجوی سطرهایی با مقدار روزی خاص در یک ستون تاریخی.
- 📌 User::whereDay('created_at', '10')->get();

5️⃣ whereYear:
- جستجوی سطرهایی با مقدار سالی خاص در یک ستون تاریخی.
- 📌 User::whereYear('created_at', '2023')->get();

6️⃣ whereTime:
- جستجوی سطرهایی با مقدار زمانی خاص در یک ستون.
- 📌 User::whereTime('created_at', '=', '10:00:00')->get();

7️⃣ whereColumn:
- مقایسه مقادیر دو ستون با یکدیگر و یافتن سطرهای مطابق.
- 📌 User::whereColumn('updated_at', '>', 'created_at')->get();

8️⃣ whereExists:
- جستجو بر اساس شرط موجود.
- 📌

   User::whereExists(function ($query) {
$query->select(DB::raw(1))
->from('orders')
->whereColumn('users.id', 'orders.user_id');
})->get();


📌 @PapiDon_state
👍3
Forwarded from کانال آموزشی لاراول (PapiDon)
🔎 بررسی متد ()Array.prototype.flat

در برنامه‌نویسی با جاوااسکریپت، گاهی اوقات با آرایه‌های چند بعدی سر و کار داریم که نیاز داریم آن‌ها را به یک آرایه تک بعدی تبدیل کنیم. متد ()flat این کار را برای ما آسان می‌کند.

🔹 این متد تمام سطوح آرایه را به یک سطح تبدیل می‌کند. به طور پیش‌فرض، تنها یک سطح از آرایه را هموار می‌کند. اما با تعیین یک عدد به عنوان آرگومان، می‌توانید تعداد بیشتری از سطوح را هموار کنید.

📜 مثال کد:

const multiDimensionalArray = [1, [2, 3], [4, [5, 6]]];

const flattenedArray = multiDimensionalArray.flat();

console.log(flattenedArray); // Output: [1, 2, 3, 4, [5, 6]]
در این مثال، ما یک آرایه چند بعدی داریم و با استفاده از متد `()flat`، آن را به یک آرایه تک بعدی تبدیل می‌کنیم.

const deeperFlattenedArray = multiDimensionalArray.flat(2);
console.log(deeperFlattenedArray);

// Output: [1, 2, 3, 4, 5, 6]
در این مثال، با تعیین عمق 2، هر دو سطح از آرایه هموار شده‌اند.


برای آموزش‌های بیشتر با ما همراه باشید!

📌 @PapiDon_state
🔥3
Forwarded from کانال آموزشی لاراول (PapiDon)
🔹 معرفی متد mapWithKeys در لاراول 🔹

در فریمورک لاراول، متد mapWithKeys یکی از متدهای کاربردی کالکشن است که به ما این امکان را می‌دهد تا یک کالکشن یا آرایه را بگیریم و برای هر عنصر آن، یک کلید و مقدار جدید تعیین کنیم. این متد ویژه زمانی مفید است که می‌خواهیم داده‌ها را به نحوی خاص سازماندهی کنیم.

⚙️ نحوه کار با mapWithKeys

1️⃣ ابتدا یک کالکشن می‌سازیم:

use Illuminate\Support\Collection;

$collection = new Collection([
['name' => 'John', 'department' => 'Sales'],
['name' => 'Jane', 'department' => 'Finance']
]);


2️⃣ سپس متد mapWithKeys را فراخوانی کرده و یک تابع می‌دهیم که به ازای هر عنصر در کالکشن، یک آرایه از کلید/مقدار جدید برمی‌گرداند:

$grouped = $collection->mapWithKeys(function ($item, $key) {
return [$item['department'] => $item['name']];
});


3️⃣ در نهایت، ما یک آرایه جدید خواهیم داشت که در آن کلید‌ها نام بخش‌ها و مقادیر نام کارمندان است:

// $grouped will be:
// [
// 'Sales' => 'John',
// 'Finance' => 'Jane'
// ]


📌 @PapiDon_state
👍21
سلام دوستان عزیز
اگر لطفا ما رو حمایت کنید ممنون میشیم

اینطوری میتونیم ما هم استوری بگذاریم 😊🙏❤️

https://t.me/phpandmysql?boost
👍1
PHP & MYSQL pinned «سلام دوستان عزیز اگر لطفا ما رو حمایت کنید ممنون میشیم اینطوری میتونیم ما هم استوری بگذاریم 😊🙏❤️ https://t.me/phpandmysql?boost»
Forwarded from کانال آموزشی لاراول (PapiDon)
📘آشنایی با Notion: ابزاری جامع برای مدیریت اطلاعات و پروژه‌ها

🔹 آیا تا به حال با مشکل سازماندهی اطلاعات و پروژه‌های خود روبرو شده‌اید؟ Notion پاسخی کارآمد برای شما دارد!

🔸 یک پلتفرم یکپارچه است که به شما این امکان را می‌دهد تا:

📝 یادداشت‌هایتان را به راحتی بنویسید و مدیریت کنید.

🗂 وظایف و پروژه‌های خود را سازماندهی و پیگیری کنید.

📂 اسناد و فایل‌های مختلف را در یک مکان مرکزی ذخیره کنید.

🤝 با تیم‌تان به صورت آنلاین همکاری کنید و اطلاعات را به اشتراک بگذارید.

🔹 قابلیت‌های متنوع Notion شامل:
- ایجاد جداول و دیتابیس‌ها 📊
- طراحی برد‌ برای مدیریت وظایف 📋
- سفارشی‌سازی صفحات بر اساس نیازهای شما 🎨
- ادغام آسان با ابزارهای دیگر مانند Google Calendar, Slack و غیره 🔄

🔸 با Notion، همه چیز در یک مکان واحد و به خوبی سازماندهی شده است. پس از آن برای بهبود بهره‌وری خود و تیم‌تان استفاده کنید!

🔗 برای آغاز کار با Notion به
https://www.notion.so/
مراجعه کنید و اکانت رایگان خود را ایجاد کنید!


📌 @PapiDon_state
👍21