آموزش PHP مدرن: راهنمای کامل - از مبتدی تا پیشرفته

Modern PHP: The Complete Guide - from Beginner to Advanced

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: به زبان برنامه نویسی که وب را قدرتمند می کند تسلط داشته باشید: PHP را بیاموزید و یک حرفه توسعه دهنده وب پردرآمد را شروع کنید حرفه خود را در زمینه فناوری شروع کنید: PHP را بیاموزید، زبانی که بیش از 75 درصد وب سایت ها را قدرت می دهد، برای اولین شغل خود، تبدیل شدن به یک فریلنسر با درآمد خوب یا ارتقا پیدا کنید PHP مدرن را بیاموزید: PHP تغییرات زیادی کرده است. به روش مدرن نوشتن PHP تسلط داشته باشید و برای استفاده واقعی از آن در محل کار کنونی آماده شوید. پایه های برنامه نویسی محکمی را ایجاد کنید: هنگامی که PHP را می شناسید، یادگیری زبان های دیگر بسیار آسان تر می شود تمرکز بر ساخت: با هم، وب سایت های ساده، گالری تصاویر ایجاد خواهیم کرد. سیستم های ورود و حتی یک سیستم مدیریت محتوای کامل (CMS) "چرا" را در پشت PHP درک کنید: فقط برنامه نویسان وب که به دنبال آن هستند این را می دانند با تمرین های سرگرم کننده و تعاملی بیاموزید: هرگز مفاهیم و برنامه های کاربردی PHP را فراموش نکنید در MVC مسلط شوید. چارچوب: چارچوب MVC خود را توسعه دهید، که به شما امکان می‌دهد برنامه‌های تحت وب در مقیاس بزرگ بنویسید و قیمت‌های بالاتری را برای پروژه‌های خود دریافت کنید. تبدیل به یک دیباگر استاد شوید: یاد بگیرید چگونه حتی پیچیده‌ترین خطاهای PHP را اشکال زدایی کنید و برنامه خود را 100% ایمن کنید. لپ تاپ با سیستم عامل در حال اجرا (ویندوز/مک/لینوکس) بدون نیاز به دانش قبلی PHP دانش پایه HTML و CSS سودمند است، اما هنوز هم یک تجدید کننده اولیه برای یادگیری PHP وجود دارد :)

*** روش مدرن نوشتن PHP *** را با 30 تمرین تعاملی بیاموزید ***

آیا به دنبال یک برنامه تعاملی و گام به گام برای تسلط بر PHP مدرن و شروع کار خود به عنوان یک توسعه دهنده وب در سال 2024 هستید؟ سپس ادامه دهید.

بسیاری می گویند که PHP مرده است. اما حقیقت این است که PHP هنوز هم 75 درصد از برنامه های کاربردی وب آنلاین را امروز تامین می کند. این بدان معنی است که اگر به دنبال شغلی به عنوان یک توسعه دهنده وب هستید، یا یک شغل مستقل پردرآمد را شروع می کنید، با PHP مواجه خواهید شد.

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

هدف این برنامه تغییر آن است.

این دوره را برای کمک به شما در تسلط بر PHP طراحی کردم، گام به گام از مبتدی تا حرفه ای، اما به روشی که امروزه نوشته شده است. ما بر تسلط بر مفاهیمی تمرکز خواهیم کرد که می‌توانند شما را از 0 به ساختن یک سیستم مدیریت محتوای ساده (CMS) با چارچوب خاص خود برسانند.

ما با کد PHP ساده شروع می کنیم، اما قدم به قدم، مفاهیم دیگری را معرفی می کنیم که PHP را به یک زبان مدرن و قدرتمند تبدیل می کند: برنامه نویسی شی گرا، فضاهای نام، بارگذاری خودکار، PSR-4، وراثت، PDO، MVC چارچوب - فقط برای نام بردن چند.

همچنین، با بهترین روش هایی آشنا می شوید که به شما در جلوگیری از حملات امنیتی کمک می کند. شما یاد خواهید گرفت که چگونه از حملات Cross-site-scripting (XSS)، تزریق SQL، حملات افزایش امتیازات و حتی موارد دیگر جلوگیری کنید. اگر می‌خواهید به یک فریلنسر پرطرفدار یا یک توسعه‌دهنده ارشد مورد تقاضا تبدیل شوید که شرکت‌ها بتوانند به آن تکیه کنند، آگاهی و توانایی کاهش این خطرات ضروری است.

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

آخرین اما نه کم اهمیت، شما همچنین "چرا" پشت PHP را یاد خواهید گرفت - به طوری که از رفتن به آنجا و استفاده از این دانش در پروژه های واقعی مطمئن شوید.

بنابراین، پس از این دوره، شما همچنین می توانید به سبک های مختلف توسعه تسلط پیدا کنید. این دوره همه چیز را پوشش می دهد:

  • از اسکریپت های ساده PHP برای پروژه های کوچکتر

  • روی اسکریپت های شی گرا برای پروژه های متوسط

  • تا MVC-Frameworks برای پروژه های در مقیاس بزرگ

این به شما امکان می دهد به صورت حرفه ای توسعه پیدا کنید و بدانید چه زمانی باید از کدام سبک استفاده کنید.

برخی از چیزهایی که یاد خواهید گرفت:

  • اصول PHP

  • نحوه اجرای آپلود فایل

  • نحوه عملکرد یک وب سرور

  • نحوه دسترسی به پایگاه داده و نوشتن کتاب مهمان

  • نحوه جاسازی PHP در HTML

  • توابع، آرایه ها، رشته ها، اگر شرایط،...

  • یک پایگاه داده (MySQL/phpmyadmin) را کنترل کنید

  • نحوه ایجاد وب سایت های ساده با اسکریپت های PHP

  • نحوه ایجاد یک گالری تصویر با قابلیت آپلود

  • نحوه نوشتن یک CMS با الگوهای MVC شی گرا

  • جلسات کوکی ها: یک سیستم ورود به سیستم (و یک اطلاعیه کوکی) ایجاد کنید

  • با نحوه پیگیری پروژه‌های پیچیده با ویژگی‌های پیشرفته PHP (فضاهای نام، بارگیری خودکار، PSR-4، الگوهای MVC، الگوهای کانتینر، ارث بری، ...) آشنا شوید

نسخه آلمانی این دوره در حال حاضر محبوب ترین دوره PHP در بازار آلمان در Udemy است. با این نسخه انگلیسی پیشرفته، این دانش را به بازار بین المللی باز می کنم.

هم اکنون ثبت نام کنید و قدم خود را در دنیای هیجان انگیز توسعه وب بیاورید!


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • نصب XAMPP (ویندوز) Install XAMPP (Windows)

  • کد ویژوال استودیو (ویندوز) را نصب کنید Install Visual Studio Code (Windows)

  • نصب XAMPP (macOS) Install XAMPP (macOS)

  • راه حل مهم: XAMPP (macOS) Important fix: XAMPP (macOS)

  • کد ویژوال استودیو (macOS) را نصب کنید Install Visual Studio Code (macOS)

  • دانلود مطالب دوره Download of the course materials

گام های اول با PHP - یک وب سایت رستوران پویا بسازید First Steps with PHP - Build a dynamic Restaurant Website

  • بررسی اجمالی Overview

  • اولین فایل PHP و دستور 'echo': نمایش متن در یک وب سایت A first PHP file and the `echo` command: Display text on a website

  • اصول اولیه تولید متن با PHP: رنگ های پس زمینه پویا ایجاد کنید The Basics of Text Generation with PHP: Create dynamic background colors

  • دستور 'include': چندین فایل PHP را ترکیب کنید The `include` command: Combine multiple PHP files

  • متغیرها در PHP: ذخیره و دسترسی به داده ها به صورت پویا Variables in PHP: Store and access data dynamically

  • دانش خود را از مبانی PHP تست کنید! Test your knowledge of PHP Basics!

  • پروژه: وب سایت رستوران چند صفحه ای (مقدمه) Project: Multi-Page Restaurant Website (Introduction)

  • پروژه: وب سایت رستوران چند صفحه ای (Refactoring) Project: Multi-Page Restaurant Website (Refactoring)

  • پروژه: وب سایت رستوران چند صفحه ای (نمایش داده ها و تمرین) Project: Multi-Page Restaurant Website (Displaying Data & Exercise)

  • پروژه: وب سایت رستوران چند صفحه ای (نمونه راه حل؛ افزودن صفحه دیگر) Project: Multi-Page Restaurant Website (Sample Solution; Adding another Page)

  • چگونه با پیام های خطا و هشدار در PHP برخورد کنیم؟ How to deal with Error & Warning Messages in PHP?

انواع داده ها و ملزومات منطقی - پاسخ های شرطی را با if/else ایجاد کنید Data Types & Logic Essentials - Craft Conditional Responses with if/else

  • بررسی اجمالی Overview

  • رشته ها در نقل قول های منفرد و ترکیب رشته ها با عملگر نقطه (`.`). Strings within Single Quotes & Combine Strings with the Dot (`.`) Operator

  • رشته‌ها در دو نقل قول: استفاده از جایگزینی متغیر و کاراکترهای خاص Strings within Double Quotes: Utilize Variable Substitution & Special Characters

  • دانش خود را در مورد رشته ها آزمایش کنید! Test your knowledge of Strings!

  • شماره Numbers

  • مقدمه: تمرین های کدنویسی در این دوره Introduction: Coding Exercises in this course

  • آموزش تمرین های کدنویسی (قسمت اول) Coding Exercises Tutorial (Part 1)

  • آموزش تمرینات کدنویسی (قسمت دوم) Coding Exercises Tutorial (Part 2)

  • نکاتی برای تمرین های کدنویسی Tips for Coding Exercises

  • قیمت فروشگاه اینترنتی Online Shop Prices

  • تابع "var_dump": متغیرها را بررسی کنید The `var_dump` function: Inspect Variables

  • Booleans & Comparison Operators: مقایسه مقادیر Booleans & Comparison Operators: Compare Values

  • دانش خود را از اعداد و بولی ها آزمایش کنید! Test your knowledge of Numbers & Booleans!

  • عبارت "if": جریان های کنترل شرطی مستقیم The `if` statement: Direct Conditional Control Flows

  • بندهای «اگر دیگر» و «دیگر»: گزینه‌های تصمیم‌گیری را گسترش دهید The `else if` and `else` clauses: Expand Decision-making Options

  • ارزیابی امتیازات وفاداری (قسمت 1) Loyalty Points Evaluation (Part 1)

  • ارزیابی امتیازات وفاداری (قسمت 2) Loyalty Points Evaluation (Part 2)

  • توابع «isset»، «خالی» و «unset»: اعتبارسنجی و حذف متغیرها The `isset`, `empty` and `unset` functions: Validate and Delete Variables

  • نحو جایگزین در PHP: افزایش وضوح در ادغام HTML Alternative Syntax in PHP: Enhance Clarity in HTML Integration

  • انتخابگر نوشیدنی قهوه Coffee Drink Selector

  • اپراتورهای بولی: شرایط پیچیده تر را با «!»، «&&»، «||»، «XOR» ایجاد کنید Boolean Operators: Craft More Complex Conditions with `!`, `&&`, `||`, `XOR`

  • دانش خود را در مورد عملگرهای بولی و اعتبارسنجی متغیر آزمایش کنید! Test your knowledge of Boolean Operators & Variable Validation!

  • پروژه: اصلاح وب سایت رستوران (دستورالعمل تمرین) Project: Restaurant Website Refinement (Exercise Instructions)

  • اصلاح وب سایت رستوران (نمونه راه حل؛ عناوین و تصاویر پویا) Restaurant Website Refinement (Sample Solution; dynamic titles and images)

  • اصلاح وب سایت رستوران (نمونه راه حل؛ اصلاح منوی فعال) Restaurant Website Refinement (Sample Solution; fixing the active menu)

آرایه ها و حلقه foreach - ذخیره، دستکاری و استفاده کارآمد از مجموعه داده ها Arrays & the foreach Loop - Store, Manipulate and Use Data Sets Efficiently

  • انگیزه Motivation

  • یک آرایه بسازید و به عناصر آن دسترسی پیدا کنید Create an Array and Access its Elements

  • وجود کلیدها و مقادیر خاص در آرایه ها را آزمایش کنید Test the Existence of specific Keys and Values in Arrays

  • دانش خود را از مبانی آرایه آزمایش کنید! Test your knowledge of Array Basics!

  • تغییر، حذف و اضافه کردن عناصر به یک آرایه Change, Delete and Append Elements to an Array

  • مثال هدیه: برندگان را از فهرست به صورت تصادفی انتخاب کنید Giveaway Example: Select Winners from a List Randomly

  • مدیر آهنگ های لیست پخش (قسمت 1) Playlist Songs Manager (Part 1)

  • مدیر آهنگ های لیست پخش (قسمت 2) Playlist Songs Manager (Part 2)

  • توابع آرایه: عناصر تکراری را بیابید و آرایه ها را مرتب کنید Array Functions: Find Duplicate Elements and Sort Arrays

  • دانش خود را در مورد دستکاری آرایه آزمایش کنید! Test your Knowledge of Array Manipulation!

  • حلقه «foreach»: تکرار روی عناصر در یک آرایه The `foreach` Loop: Iterate over Elements in an Array

  • حلقه‌ها را با «شکستن» و «ادامه» کنترل کنید Control Loops with `break` and `continue`

  • هماهنگی حضور در کارگاه (قسمت اول) Workshop Attendance Coordination (Part 1)

  • توابع آرایه اضافی Additional Array Functions

  • هماهنگی حضور در کارگاه (قسمت دوم) Workshop Attendance Coordination (Part 2)

آرایه های انجمنی - جفت های کلید-مقدار را برای مدیریت پیشرفته داده ها مدیریت کنید Associative Arrays - Manage Key-Value-Pairs for Advanced Data Handling

  • بررسی اجمالی Overview

  • انگیزه و تعریف یک آرایه انجمنی Motivation & Define an Associative Array

  • دستکاری و خروجی کلیدها و مقادیر آرایه های انجمنی Manipulate and Output Keys and Values form Associative Arrays

  • دانش خود را از آرایه های انجمنی آزمایش کنید! Test your Knowledge of Associative Arrays!

  • بهترین روش ها برای مدیریت آرایه های انجمنی Best Practices for Managing Associative Arrays

  • تجزیه و تحلیل حقوق و دستمزد کارکنان (قسمت 1) Employee Salary Analysis (Part 1)

  • تجزیه و تحلیل حقوق و دستمزد کارکنان (قسمت 2) Employee Salary Analysis (Part 2)

  • تجزیه و تحلیل حقوق و دستمزد کارکنان (قسمت 3) Employee Salary Analysis (Part 3)

پارامترهای URL - گرفتن و استفاده از ورودی ها برای تعاملات وب ایمن و پویا URL Parameters - Capture and Utilize Inputs for Secure, Dynamic Web Interactions

  • بررسی اجمالی Overview

  • بیانیه کوتاه «اگر». The short `if` Statement

  • آرایه `$_GET`: ورودی کاربر را از URL بازیابی کنید The `$_GET` Array: Retrieve User Input from the URL

  • ایجاد URL پویا: پیوندها را با پارامترها و «http_build_query» ایجاد کنید Dynamic URL Creation: Craft Links with Parameters and `http_build_query`

  • دانش خود را در مورد پارامترهای URL آزمایش کنید Test your Knowledge about URL Parameters

  • فرم را از طریق GET ارسال کنید Submit a form through GET

  • فرم را از طریق POST ارسال کنید Submit a form through POST

  • دانش خود را در مورد روش های فرم آزمایش کنید Test your Knowledge of Form Methods

  • ایمن سازی وب سایت ها: جلوگیری از اسکریپت بین سایتی (XSS) با «htmlspecialchars» Securing Websites: Prevent Cross-Site Scripting (XSS) with `htmlspecialchars`

  • پروژه: برنامه Secure Recipe (مقدمه و راه اندازی) Project: Secure Recipe App (Introduction & Setup)

  • پروژه: برنامه دستور العمل ایمن (هدایت و تمرین ورودی امن) Project: Secure Recipe App (Secure Input Handling & Exercise)

  • پروژه: برنامه دستور غذای امن (نمونه راه حل) Project: Secure Recipe App (Sample Solution)

پروژه - یک گالری تصاویر چند صفحه ای بسازید PROJECT - Build a Multi-Page Image Gallery

  • مرور اجمالی و مروری بر پایه کد Overview & Code Base Walkthrough

  • تابع "rawurlencode": اطمینان از انتقال ایمن داده در URL ها (راهنمایی) The `rawurlencode` function: Ensure Safe Data Transmission in URLs (Hint)

  • ویژگی‌های CSS برای کنترل تصویر: «ابجیت متناسب» و «نسبت ابعاد» (اشاره) CSS Attributes for Image Control: `object-fit` and `aspect-ratio` (Hint)

  • پروژه: گالری تصاویر - قسمت 1 (نمایش تصاویر در نمای گالری) Project: Image Gallery - Part 1 (Display the Images in a Gallery View)

  • پروژه: گالری تصاویر - قسمت 2 (طراحی طرح گالری) Project: Image Gallery - Part 2 (Design the Gallery Layout)

  • پروژه: گالری تصاویر - قسمت 3 (محتوای صفحه تصویر را پیاده سازی کنید) Project: Image Gallery - Part 3 (Implement the Image Page Contents)

مفاهیم پیشرفته - انواع متغیر، از جمله فایل ها و توابع رشته Advanced Concepts - Variable Types, Including Files and String Functions

  • بررسی اجمالی Overview

  • بررسی نوع: شناسایی انواع با توابع «is_» و مدیریت آرایه‌های نوع مختلط Type Checking: Identify Types with `is_` Functions & Manage Mixed-Type Arrays

  • Casting نوع: عدم تطابق نوع و اشکال زدایی کد خطا را به طور موثر حل کنید Type Casting: Solve Type Mismatches and Debug Code Errors Efficiently

  • اپراتور Null Coalescing: Simplify Default Value Assignies The Null Coalescing Operator: Simplify Default Value Assignments

  • نماد @: سکوت هشدارهای PHP The @ Symbol: Silence PHP Warnings

  • دانش خود را در مورد کنترل انواع متغیرها آزمایش کنید Test your Knowledge of Controlling Variable Types

  • بهینه سازی «شامل»: از __DIR__ برای وضوح مسیر فایل قابل اعتماد استفاده کنید Optimizing `include`: Use __DIR__ for Reliable File Path Resolution

  • شامل فایل‌ها: «شامل»، «نیاز»، و انواع «*_once» آنها File Inclusions: `include`, `require`, and their `*_once` Variants

  • توابع "file_get_contents" و "readfile". The functions `file_get_contents` and `readfile`

  • دانش خود را در مورد گنجاندن فایل آزمایش کنید Test your knowledge about File Inclusions

  • توابع "implode" و "explode": رشته ها را تقسیم کنید و آرایه ها را ادغام کنید The `implode` and `explode` functions: Split Strings and Merge Arrays

  • خبرنامه ایمیل شخصی (قسمت 1) Personalized Email Newsletter (Part 1)

  • توابع رشته - قسمت 1 («strlen»، «strtolower»، «trim»، «strpos»،...) String Functions - Part 1 (`strlen`, `strtolower`, `trim`, `strpos`,...)

  • خبرنامه ایمیل شخصی (قسمت 2) Personalized Email Newsletter (Part 2)

  • توابع رشته - قسمت 2 («nl2br»، «str_replace») String Functions - Part 2 (`nl2br`, `str_replace`)

  • خبرنامه ایمیل شخصی (بخش 3) Personalized Email Newsletter (Part 3)

  • فایل index.php: نمایه سازی دایرکتوری و شناسایی فایل در سرورهای وب The index.php File: Directory Indexing and File Recognition on Webservers

آرایه های تودرتو - مدیریت پیچیده داده ها را ساده می کند Nested Arrays - Simplify Complex Data Handling

  • بررسی اجمالی Overview

  • یک آرایه تودرتو تعریف کنید و به داده های چند سطحی دسترسی پیدا کنید Define a Nested Array and Access Multi-Level Data

  • استخراج داده‌ها از آرایه‌های تودرتو با حلقه‌های «foreach». Extract Data from Nested Arrays by `foreach` Loops

  • دانش خود را در مورد آرایه های تودرتو آزمایش کنید Test your knowledge of Nested Arrays

  • داده های چند سطحی را با حلقه های «foreach» تودرتو پیمایش کنید Navigate Multi-Level Data with Nested `foreach` Loops

  • با داده های نامنظم در آرایه های تودرتو مقابله کنید Deal with Irregular Data in Nested Arrays

  • ردیاب کمپین بازاریابی (قسمت 1) Marketing Campaign Tracker (Part 1)

  • ردیاب کمپین بازاریابی (قسمت 2) Marketing Campaign Tracker (Part 2)

  • ردیاب کمپین بازاریابی (قسمت 3) Marketing Campaign Tracker (Part 3)

پروژه - یک مرورگر داده کیفیت هوا بسازید PROJECT - Build an Air Quality Data Browser

  • بررسی اجمالی Overview

  • پردازش داده‌های کیفیت هوا: رمزگشایی JSON و فشرده‌سازی bzip2 Processing the Air Quality Data: Decode JSON & Handle .bzip2 Compression

  • تبدیل داده های JSON به محتوای وب: ایجاد پیوندهای شهر پویا Transforming JSON Data into Web Content: Create Dynamic City Links

  • ساخت صفحات آمار شهر: بازیابی داده ها و رسیدگی به خطاها Crafting City Statistics Pages: Retrieve Data & Handle Errors

  • تجزیه و تحلیل داده های PM2.5: محاسبه شاخص کیفیت هوا Analyzing PM2.5 Data: Calculate Air Quality Index

  • مدیریت یکپارچگی داده و ادغام پارامترهای اندازه گیری اضافی (PM10) Manage Data Integrity & Integrate Additional Measurement Parameters (PM10)

  • صیقل دادن خروجی: واحدهای قالب بندی و اندازه گیری عددی را اضافه کنید Polishing the Output: Add Numeric Formatting and Measurement Units

  • ادغام Chart.js با PHP - قسمت 1 (ساخت نمودارهای دیداری تعاملی) Integrating Chart.js with PHP - Part 1 (Build Interactive Visual Charts)

  • ادغام Chart.js با PHP - قسمت 2 (اجرای انتقال داده قوی) Integrating Chart.js with PHP - Part 2 (Implement Robust Data Transfer)

  • تضمین یکپارچگی داده ها: مقابله با داده های از دست رفته Ensuring Data Integrity: Deal with Missing Data

حلقه‌های for and the while - دستیابی به کنترل دقیق‌تری بر تکرارها for and the while Loops - Achieve Finer Control Over Iterations

  • بررسی اجمالی Overview

  • حلقه «for»: تکرار اقدامات و مدیریت تکرارها The `for` loop: Repeat Actions and Manage Iterations

  • پیش بینی مصرف انرژی (قسمت اول) Energy Consumption Forecast (Part 1)

  • حلقه «while»: کد را با تکرارهای مشروط اجرا کنید و از حلقه های بی نهایت اجتناب کنید The `while` loop: Execute Code with Conditional Repeats and Avoid Infinite Loops

  • پیش بینی مصرف انرژی (قسمت دوم) Energy Consumption Forecast (Part 2)

پروژه - ساخت ویترین مسافرتی به روز رسانی خودکار (و کاوش سیستم های فایل) PROJECT - Build an Auto-Update Travel Showcase (and Explore File Systems)

  • بررسی اجمالی Overview

  • برای مدیریت دایرکتوری از «opendir»، «readdir» و «closedir» استفاده کنید Utilize `opendir`, `readdir`, and `closedir` for Directory Management

  • استفاده از «readdir» در مدت زمان Using `readdir` in a while Loop: Read File Directories Efficiently

  • تابع 'pathinfo': استخراج اجزای مسیر فایل برای فیلتر کردن انواع فایل The `pathinfo` function: Extract File Path Components for Filtering File Types

  • توابع فایل: "file_exists"، "is_file"، "is_dir"، "filemtime"، "filesize"،... File Functions: `file_exists`, `is_file`, `is_dir`, `filemtime`, `filesize`,...

  • ادغام تصاویر با متون توصیفی (دستورالعمل تمرین) Integrate Images with Descriptive Texts (Exercise Instructions)

  • خواندن داده های متنی برای توضیحات تصویر (نمونه راه حل - قسمت 1) Read Text Data for Image Descriptions (Sample Solution - Part 1)

  • سازماندهی و پردازش موثر داده های متنی (نمونه راه حل - قسمت 2) Organize and Process Text Data Effectively (Sample Solution - Part 2)

  • ارائه داده های متنی در وب سایت (نمونه راه حل - قسمت 3) Render Text Data on the Website (Sample Solution - Part 3)

معرفی پایگاه های داده MariaDB/MySQL در phpMyAdmin - استانداردسازی مدیریت داده ها Intro to MariaDB/MySQL Databases in phpMyAdmin - Standardize Data Management

  • بررسی اجمالی Overview

  • مبانی: از صفحات گسترده اکسل تا جداول پایگاه داده Foundations: From Excel Spreadsheets to Database Tables

  • مراحل اول با phpMyAdmin: ایجاد پایگاه داده جدید و ذخیره داده ها First steps with phpMyAdmin: Create new Databases and store Data

  • کلیدهای اصلی: از یکپارچگی داده ها با ستون های شناسه منحصر به فرد اطمینان حاصل کنید Primary Keys: Ensure Data Integrity with unique ID Columns

  • Auto_Increment: شناسه های منحصر به فرد را به راحتی ایجاد کنید Auto_Increment: Generate unique IDs with ease

  • صادرات و وارد کردن فایل ها در phpMyAdmin Export & Import Files in phpMyAdmin

  • دانش خود را از پایگاه های داده تست کنید Test your Knowledge of Databases

تعامل با پایگاه داده - از PHP به MySQL/MariaDB متصل شوید Database Interactivity - Connect to MySQL/MariaDB from PHP

  • بررسی اجمالی Overview

  • راه اندازی پایگاه داده و جدول برای برنامه Notes Setting up the Database and Table for the Notes App

  • شی گرایی در PHP: مدیریت فایل های فشرده با روش ها (دوره Crash) Object Orientation in PHP: Manage Zip Files with Methods (Crash course)

  • اتصالات پایگاه داده با PDO: راه‌اندازی و بهترین روش‌ها Database Connections with PDO: Initialization & Best Practices

  • عیب یابی: اتصالات پایگاه داده با PDO Troubleshooting: Database Connections with PDO

  • بازیابی داده با PDO: داده ها را از یک پایگاه داده واکشی کنید Data Retrieval with PDO: Fetch Data from a Database

  • دانش خود را در مورد اتصال پایگاه داده با PDO آزمایش کنید Test your Knowledge of Database Connectivity with PDO

  • ارائه داده های واکشی شده به صورت HTML: خوانایی و امنیت را افزایش دهید Rendering Fetched Data as HTML: Enhance Readability and Security

  • مبانی پرس و جوی SQL: از عبارت ORDER BY و SELECT ستون های خاص استفاده کنید SQL Query Basics: Utilize the ORDER BY Clause and SELECT Specific Columns

  • داده ها را با بند WHERE فیلتر کنید و ورودی های فردی را با PDO واکشی کنید Filter Data with the WHERE Clause and Fetch Individual Entries with PDO

  • مدیریت امن پارامترها در PDO: از تزریق SQL با روش‌های Bind جلوگیری کنید Secure Parameter Handling in PDO: Prevent SQL Injection with Bind Methods

  • با INSERT INTO، Placeholders و روش "bindValue" داده ها را ایمن درج کنید Insert Data Securely with INSERT INTO, Placeholders, and the `bindValue` Method

  • دستکاری پایگاه داده: با استفاده از UPDATE و DELETE FROM به صورت ایمن Database Manipulation: Using UPDATE and DELETE FROM Securely

  • دانش خود را از پرس و جوهای SQL امن در PDO آزمایش کنید Test Your Knowledge of Secure SQL Queries in PDO

  • جلوگیری از نشت اطلاعات اتصال پایگاه داده در نسخه های قدیمی تر (<=8.1) PHP Prevent Leakage of Database Connection Information in older (<=8.1) PHP Versions

  • انتخاب مجموعه Charset: از سازگاری با رمزگذاری utf8mb4 اطمینان حاصل کنید Choosing the Charset: Ensure Compatibility with with utf8mb4 encoding

پروژه: طراحی برای یک برنامه خاطرات بسازید PROJECT: Build the Design for a Diary App

  • بررسی اجمالی Overview

  • فایل های طراحی Design Files

  • شروع با طراحی Starting with the Design

  • اضافه کردن لوگو Adding the Logo

  • دکمه "ورود جدید" را ایجاد کنید Create the "New Entry" Button

  • دکمه را قرار دهید Position the Button

  • منطقه اصلی را پیاده سازی کنید Implement the Main Area

  • یک کانتینر ایجاد کنید Create a Container

  • طراحی چیدمان کارت (قسمت 1) Design the Layout of the Card (Part 1)

  • طراحی چیدمان کارت (قسمت 2) Design the Layout of the Card (Part 2)

  • طراحی چیدمان کارت (قسمت 3) Design the Layout of the Card (Part 3)

  • طراحی تعاملی Responsive Design

  • صفحه بندی را پیاده سازی کنید Implement the Pagination

  • صفحه بندی را تمام کنید Finish the Pagination

  • اضافه کردن پس زمینه (قسمت 1) Add the Background (Part 1)

  • اضافه کردن پس زمینه (قسمت 2) Add the Background (Part 2)

  • پاورقی را اضافه کنید Add the Footer

  • ایجاد فرم (قسمت 1) Develop the Form (Part 1)

  • توسعه فرم (قسمت 2) Develop the Form (Part 2)

  • پایان کار Finishing Touches

پروژه: یک اپلیکیشن خاطرات بسازید PROJECT: Build a Diary App

  • بررسی اجمالی Overview

  • پایگاه داده را ایجاد کنید Create the DataBase

  • داده ها را از پایگاه داده واکشی کنید Fetch Data from the DataBase

  • صفحه فرم The form Page

  • داده ها را در پایگاه داده ارسال کنید Submit Data into the DataBase

  • صفحه بندی را اضافه کنید Add Pagination

  • ایجاد لینک Generate Links

  • تاریخ ها (قسمت 1) Dates (Part 1)

  • تاریخ ها (قسمت 2) Dates (Part 2)

  • تاریخ ها را قالب بندی کنید Format the Dates

  • آپلود فایل ها (قسمت 1) Upload Files (Part 1)

  • آپلود فایل ها (قسمت 2) Upload Files (Part 2)

  • چگونه یک تصویر را مقیاس بندی کنیم؟ How to Scale an Image?

  • اندازه یک تصویر را تغییر دهید و آپلود کنید Resize an Image and Upload

  • آپلود تصویر را اجرا کنید Implement Image Upload

  • آپلودهای نامعتبر را بگیرید Catch Invalid Uploads

هدرها در PHP - کنترل ارتباطات سرور Headers in PHP - Control Server Communication

  • بررسی اجمالی Overview

  • آرایه `$_SERVER`: اطلاعاتی در مورد سروری که اسکریپت PHP شما را اجرا می کند به دست آورید The `$_SERVER` Array: Gain Insights about the Server running your PHP Script

  • هدرهای HTTP: ارتباط مرورگر با سرور را بررسی کنید HTTP Headers: Examine Browser to Server Communication

  • هدرهای HTTP: ارتباط سرور به مرورگر را بررسی کنید HTTP Headers: Examine Server to Browser Communication

  • Content-Type Header مثال: CSS به صورت پویا با PHP ارائه شود Content-Type Header Example: Dynamically Serve CSS with PHP

  • بافر خروجی: از مشکلات هدر اجتناب کنید و از انتقال یکپارچه فایل اطمینان حاصل کنید Output Buffering: Avoid Header Issues and Ensure Seamless File Transmissions

  • سربرگ Content-Disposition و Content-Length: دانلود فایل ها را پیاده سازی کنید Content-Disposition and Content-Length Header: Implement File Downloads

  • سربرگ موقعیت مکانی: کاربران را به فایل‌ها هدایت کنید Location Header: Redirect Users to Files

  • مثال: یک صفحه ثبت نام در خبرنامه با استفاده از سرصفحه های موقعیت مکانی بسازید Example: Build a Newsletter Sign-Up Page using Location Headers

  • دانش خود را از هدرها در PHP تست کنید Test your Knowledge of Headers in PHP

  • رمزگشایی کدهای وضعیت HTTP: موفقیت و خطاها Decipher HTTP Status Codes: Success and Errors

  • پروژه: ایجاد یک صفحه خطای سفارشی 404 (قسمت 1) Project: Craft a Custom 404 Error Page (Part 1)

  • پروژه: ایجاد یک سند خطای سفارشی (قسمت 2) Project: Create a Custom ErrorDocument (Part 2)

توابع - سفارشی کردن عملیات برای کد قابل استفاده مجدد Functions - Customize Operations For Reusable Code

  • بررسی اجمالی Overview

  • توابع سفارشی را اعلام و احضار کنید Declare and Invocate Custom Functions

  • زمینه های تابع و ارسال پارامتر: انتقال داده ها به توابع Function Contexts and Parameter Passing: Transfer Data into Functions

  • پارامترهای چندگانه و مقادیر پیش فرض: پیکربندی توابع Multiple Parameters & Default Values: Configure Functions

  • دانش خود را در مورد توابع آزمایش کنید Test your knowledge about Functions

  • عبارت «بازگشت»: خروجی تابع استخراج The `return` Statement: Extract Function Output

  • چند عبارت «بازگشت»: خروجی تابع کنترل Multiple `return` Statements: Control Function Output

  • نوع «تهی»: مقادیر گمشده را نشان می‌دهد The `null` Type: Represent Missing Values

  • تعریف مجدد تابع: بهترین روش ها Function Redefinition: Best Practices

  • مثال: مدیریت اندازه فایل ها با استراتژی تفرقه بینداز و غلبه کن Example: Handling File Sizes with a Divide & Conquer Strategy

  • زمان‌بندی رویداد برای کنفرانس‌های آنلاین (قسمت 1) Event Scheduler for Online Conferences (Part 1)

  • برنامه ریزی رویداد برای کنفرانس های آنلاین (قسمت 2) Event Scheduler for Online Conferences (Part 2)

توابع تایپ شده - کد قابل اعتمادتر و دقیق تر بنویسید Typed Functions - Write More Reliable and Precise Code

  • بررسی اجمالی Overview

  • توابع تایپ شده: کد خود را ایمن و مستند کنید Typed Functions: Secure & Document your Code

  • Union Types: انواع پارامترهای چندگانه را فعال کنید Union Types: Enable Multiple Parameter Types

  • انواع بازگشت: خروجی های عملکرد قابل اعتماد را اعمال کنید Return Types: Enforce Reliable Function Outputs

  • انواع Nullable: مقادیر از دست رفته را به عنوان پارامتر مجاز کنید Nullable Types: Allow for Missing Values as Parameters

  • انواع سختگیرانه: کنترل دقیق نوع را اعمال کنید Strict Types: Enforce Accurate Type Handling

  • دانش خود را در مورد توابع تایپ شده آزمایش کنید Test your knowledge about Typed Functions

پروژه: یک اپلیکیشن Name Explorer بسازید PROJECT: Build a Name Explorer App

  • بررسی اجمالی Overview

  • داده ها را وارد کنید Import the Data

  • به پایگاه داده متصل شوید Connect to DataBase

  • پیمایش در هدر Navigation in the Header

  • نام ها را لیست کنید List the names

  • پرس و جو DB در تابع DB Query in function

  • تابع را به یک فایل جداگانه منتقل کنید Move Function to a separate File

  • راه حل: نمای نام را توسعه دهید Solution: Develop the Name View

  • جلا دادن Polishing

  • پرس و جو DB برای نمای کلی DB query for overview

  • یک صفحه نمای کلی ایجاد کنید Generate an Overview Page

  • بافر خروجی Output Buffering

  • یک تابع «render()» ایجاد کنید Create a `render()` function

  • انتقال داده به تابع «render()». Passing Data into the `render()` function

  • از تابع "render()" استفاده کنید Use the `render()` function

  • نامه را برجسته کنید Highlight the Letter

  • افزودن صفحه بندی (قسمت 1) Add Pagination (Part 1)

  • افزودن صفحه بندی (قسمت 2) Add Pagination (Part 2)

  • مهم: بهبود عملکرد DB با شاخص ها Important: Improve DB performance with indexes

  • مهم: بهبود عملکرد گروهی Important: Improve groupby performance

  • رفع یک اشکال Fix a Bug

عبارات منظم (Regex): پردازش متن مبتنی بر الگوی مهار Regular Expressions (Regex): Harness Pattern-Based Text Processing

  • بررسی اجمالی Overview

  • مقدمه Regex: جستجوی الگوها در رشته ها Intro to Regex: Search Patterns in Strings

  • کمیت کننده ها: کنترل تکرارها برای تطبیق الگوهای قدرتمند Quantifiers: Control Repetitions for Powerful Pattern Matching

  • لنگرهای `^` & `$`: مرزهای رشته را تعریف کنید The `^` & `$` Anchors: Define String Boundaries

  • دانش خود را در مورد عبارات منظم آزمایش کنید Test your knowledge of Regular Expressions

  • عبارات براکت (تئوری): مجموعه‌ها و محدوده‌های کاراکتر سفارشی را ایجاد کنید Bracket Expressions (Theory): Craft Custom Character Sets and Ranges

  • عبارات براکت در عمل Bracket Expressions in Practice

  • گروه های ضبط: عناصر داده های ساختاریافته را استخراج کنید Capture Groups: Extract Structured Data Elements

  • تبدیل‌های متن: ویرایش‌های مبتنی بر الگو با «preg_replace». Text Transformations: Pattern-Based Edits with `preg_replace`

  • سئو و بهینه سازی دسترسی SEO & Accessibility Optimization

مبانی برنامه نویسی شی گرا (OOP): ساختار کد خود را تقویت کنید Foundations of Object-Orientated Programming (OOP): Enhance your Code Structure

  • بررسی اجمالی Overview

  • محدودیت‌های رویکردهای رویه‌ای: تنظیم مرحله برای OOP Limitations of Procedural Approaches: Setting the Stage for OOP

  • کلاس ها در OOP: ایجاد اشیاء سفارشی Classes in OOP: Create Custom Objects

  • ویژگی های یک کلاس: تایپ، مقداردهی اولیه و مدیریت Properties in a Class: Typing, Initialization, and Management

  • روش های کلاس: رفتار درون اشیاء را تعریف کنید Class Methods: Define Behavior within Objects

  • دانش خود را در مورد کلاس ها آزمایش کنید Test your knowledge about Classes

  • سازنده ها: از راه اندازی مناسب ویژگی های شی اطمینان حاصل کنید Constructors: Ensure Proper Initialization of Object Properties

  • ساده سازی سازندگان: راه اندازی کارآمد و یکپارچه سازی منطق تجاری Simplifying Constructors: Efficient Initialization & Business Logic Integration

  • مثال: یک روش انتقال برای معاملات بین حساب های بانکی را اجرا کنید Example: Implement a Transfer Method for Transactions Between Bank Accounts

  • ایمن کردن خصوصیات کلاس: از دسترسی عمومی به خصوصی Securing Class Properties: From Public to Private Access

  • دیجیتالی شدن اتاق هتل (قسمت اول) Hotel Room Digitalization (Part 1)

  • دیجیتالی شدن اتاق هتل (قسمت 2) Hotel Room Digitalization (Part 2)

  • دیجیتالی شدن اتاق هتل (قسمت 3) Hotel Room Digitalization (Part 3)

پروژه: یک شهر کاوشگر بسازید PROJECT: Build a City Explorer

  • بررسی اجمالی Overview

  • کلاس مدل را ایجاد کنید Create the Model Class

  • یک مخزن اضافه کنید Add a Repository

  • واکشی ستون های اضافی Fetch Additional Columns

  • یک شهر فردی را نشان دهید Show an individual City

  • کد را بهینه کنید Optimize the Code

  • نماد کشور به پرچم (پاداش) Country to Flag Symbol (Bonus)

  • پرچم را به پروژه اضافه کنید Add Flag to the Project

  • پیاده سازی صفحه بندی (تمرین) Implement Pagination (Exercise)

  • پیاده سازی صفحه بندی (راه حل) Implement Pagination (Solution)

  • یک فرم را پیاده سازی کنید Implement a Form

  • به روز رسانی ورودی ها Update Entries

  • افزودن محافظت از رمز عبور (پاداش) Add Password Protection (Bonus)

OOP (بخش 2): سازماندهی کد با فضاهای نام، بارگذاری خودکار، رابط ها OOP (Part 2): Organize Code with Namespaces, Autoloading, Interfaces

  • بررسی اجمالی Overview

  • فضاهای نام در PHP: کد را سازماندهی کنید و از برخورد نامگذاری خودداری کنید Namespaces in PHP: Organize Code and Avoid Naming Collisions

  • دستور 'use': کد PHP را با فضاهای نام ساده کنید The `use` command: Simplify PHP Code with Namespaces

  • نام‌های کلاس و فضاهای نام: دسترسی، وضوح، و تأیید نمونه Class Names and Namespaces: Access, Resolution, and Instance Verification

  • بارگذاری خودکار: بارگذاری کلاس ها و مدیریت موثر فضاهای نام Autoloading: Load Classes and Manage Namespaces Efficiently

  • فضای نام پیشرفته: بارگذاری خودکار PSR-4 را بپذیرید Advanced Namespacing : Adopt PSR-4 Autoloading

  • دانش خود را در مورد فضاهای نام آزمایش کنید Test your knowledge of Namespaces

  • رابط ها: تعریف و پیاده سازی برای ایمنی نوع پیشرفته و قابلیت استفاده مجدد Interfaces: Define and Implement for Enhanced Type Safety and Reusability

  • انتشارات رسانه های اجتماعی Social Media Publishing

پروژه: ساخت اپلیکیشن آب و هوا PROJECT: Build a Weather App

  • بررسی اجمالی Overview

  • App Frame را پیاده سازی کنید Implement the App Frame

  • پس زمینه را نشان دهید Show the Background

  • نوار بالا را پیاده سازی کنید Implement the Top Bar

  • آب و هوا را تجسم کنید Visualize the Weather

  • نمایش اطلاعات آب و هوا Show the Weather Info

  • پرداخت نهایی Final Polishing

OOP (بخش 3): استفاده مجدد از کد برای مقیاس پذیری با وراثت OOP (Part 3): Reuse Code For Scalability with Inheritance

  • بررسی اجمالی Overview

  • مقدمه ای بر وراثت: گسترش عملکرد از کلاس والدین Intro to Inheritance: Extend Functionality From Parent Class

  • سازنده کلاس کودک را برای اولیه سازی موثر شی راه اندازی کنید Set Up the Child Class Constructor for Effective Object Initialization

  • وراثت و دسترسی به اموال: خصوصیات را در بین طبقات پیمایش کنید Inheritance & Property Accessibility: Navigate Properties Across Classes

  • قابلیت مشاهده اموال: ویژگی های خصوصی و محافظت شده برای مدیریت امن داده ها Property Visibility: Private and Protected Properties for Secure Data Handling

  • کلیدواژه‌های «والد» و «خود»: روش‌های کلاس مرجع دقیق The `parent` & `self` keywords: Precisely Reference Class Methods

  • کلاس های چکیده: اجرای روش برای کد قابل اعتماد Abstract Classes: Enforce Method Implementation for Reliable Code

  • مدلسازی محصولات تجارت الکترونیک (قسمت اول) E-Commerce Products Modeling (Part 1)

  • مدلسازی محصولات تجارت الکترونیک (قسمت 2) E-Commerce Products Modeling (Part 2)

پروژه: ساخت یک سیستم مدیریت محتوا (قسمت 1) - بنیاد PROJECT: Build a Content Management System (Part 1) - Foundation

  • نمای کلی: راه اندازی اولیه Overview: Initial Setup

  • NotFoundController را توسعه دهید Develop the NotFoundController

  • صفحه خطا را پیاده سازی کنید Implement the Error Page

  • نمای کلی: PagesController Overview: PagesController

  • PagesController را راه اندازی کنید Initiate the PagesController

  • پایگاه داده را راه اندازی کنید Set up the Database

  • PageModel و PagesRepository را ایجاد کنید Create the PageModel and the PagesRepository

  • صفحه «درباره ما» را اضافه کنید و خطاها را مدیریت کنید Add the 'About us' Page & Handle Errors

  • نوار پیمایش را رندر کنید Render the Navigation Bar

الگوی کانتینر: مدیریت وابستگی را ساده کنید The Container Pattern: Streamline Dependency Management

  • بررسی اجمالی Overview

  • بهینه سازی تزریق وابستگی با استراتژی های کانتینری Optimize Dependency Injection with Container Strategies

  • کلمه کلیدی "استفاده": داده های خارجی را در بسته ها ببافید The `use` keyword: Weave external Data into Closures

  • Refactor کانتینر با یک آرایه نمونه Refactor the Container with an Instances Array

  • Refactor کانتینر با ایجاد نمونه یکپارچه Refactor the Container with Unified Instance Creation

  • یک آرایه دستور العمل برای ایجاد نمونه پویا پیاده سازی کنید Implement a Recipes Array for Dynamic Instance Creation

  • Recipes for Instance Creation را خارج از کانتینر ثبت کنید Register the Recipes for Instance Creation outside the Container

  • ایجاد نمونه ایمن با توابع «bind()» خصوصی Secure Instance Creation with Private `bind()` Functions

  • دانش خود را از الگوی کانتینر آزمایش کنید Test your knowledge of the Container Pattern

  • ماژولاریت کد پیشرفته: از مقادیر بازگشتی در گنجاندن فایل استفاده کنید Enhanced Code Modularity: Utilize Return Values in File Inclusion

پروژه: ساخت یک سیستم مدیریت محتوا (قسمت 2) - الگوی کانتینر PROJECT: Build a Content Management System (Part 2) - Container Pattern

  • از الگوی Container در CMS استفاده کنید Utilize the Container Pattern in the CMS

پروژه: ساخت یک سیستم مدیریت محتوا (قسمت 3) - بخش مدیریت PROJECT: Build a Content Management System (Part 3) - Admin Area

  • منوی مدیریت را ایجاد کنید Create the Admin Menu

  • تغییر رنگ در قسمت مدیریت با متغیرهای CSS (پاداش) Change the Colors in the Admin Area with CSS Variables (Bonus)

  • افزودن مخزن صفحات به PagesAdminController (تمرین) Add the PagesRepository to the PagesAdminController (Exercise)

  • صفحه نمای کلی را برای منطقه مدیریت ایجاد کنید Create the Overview Page for the Admin Area

  • فرم ایجاد را برای ناحیه مدیریت اجرا کنید Implement the Create Form for the Admin Area

  • اعتبار ورودی و مدیریت خطا را به فرم ایجاد اضافه کنید Add Input Validation & Error Handling to the Create Form

  • اجرای عملکرد حذف (قسمت 1) Implement the Delete Functionality (Part 1)

  • اجرای عملکرد حذف (قسمت 2) Implement the Delete Functionality (Part 2)

  • دکمه های سبک به عنوان پیوند (پاداش) Style Buttons as Links (Bonus)

  • اجرای ویژگی ویرایش (تمرین) Implement the Edit Feature (Exercise)

  • پیاده سازی ویژگی ویرایش (راه حل قسمت 1) Implement the Edit Feature (Solution Part 1)

  • پیاده سازی ویژگی ویرایش (راه حل قسمت 2) Implement the Edit Feature (Solution Part 2)

کوکی ها و جلسات: مدیریت و محافظت از داده های کاربر Cookies & Sessions: Manage and Safeguard User Data

  • بررسی اجمالی و آرگومان های نامگذاری شده Overview & Named Arguments

  • تابع `setcookie()`: ایجاد کوکی در PHP The `setcookie()` Function: Create Cookies in PHP

  • پارامترهای اضافی برای `setcookie()`: مدیریت کوکی ها در PHP Additional Parameters for `setcookie()`: Manage Cookies in PHP

  • Sessions در PHP: داده ها را با متغیر `$_SESSION` ایمن کنید Sessions in PHP: Secure Data with the `$_SESSION` Variable

  • پیاده سازی یک پیام کوکی (پاداش) Implement a Cookies Message (Bonus)

  • دانش خود را در مورد کوکی ها و جلسات آزمایش کنید Test your knowledge of Cookies & Sessions

پروژه: ساخت یک سیستم مدیریت محتوا (قسمت 4) - سیستم احراز هویت PROJECT: Build a Content Management System (Part 4) - Authentication System

  • بررسی اجمالی Overview

  • نحوه ذخیره ایمن رمز عبور How to Safely Store a Password

  • جدول کاربران را تنظیم کنید Set up the Users Table

  • فرم ورود را ایجاد کنید Create the Login Form

  • ورود را با LoginController تأیید کنید Validate the Login with the LoginController

  • Login را در Session ذخیره کنید Store the Login within the Session

  • اطمینان حاصل کنید که با authService وارد شوید Ensure Login with the authService

  • جلوگیری از شروع جلسات متعدد Prevent Starting Sessions Multiple Times

  • ویژگی خروج را پیاده سازی کنید Implement the Logout Feature

  • مقدمه ای بر جعل درخواست بین سایتی (CSRF) Intro to Cross-Site Request Forgery (CSRF)

  • محافظت در برابر CSRF با توکن ها (قسمت 1) Protect against CSRF with Tokens (Part 1)

  • محافظت در برابر CSRF با توکن ها (قسمت 2) Protect against CSRF with Tokens (Part 2)

  • محافظت در برابر CSRF با توکن ها (قسمت 3) Protect against CSRF with Tokens (Part 3)

  • نتیجه گیری پروژه CMS Conclusion of the CMS Project

OOP (قسمت 4): برای کدهای قوی تر و قابل نگهداری بیشتر به موضوعات پیشرفته بروید OOP (Part 4): Dive into Advanced Topics for More Robust and Maintainable Code

  • بررسی اجمالی Overview

  • متدها و متغیرهای ایستا: فراخوانی رفتار کلاس و به اشتراک گذاری داده ها بدون نمونه Static Methods & Variables: Invoke Class Behavior & Share Data Without Instances

  • ثابت ها: گزینه های جهانی و مقادیر پیوست شده به کلاس را با «define» و «const» تعریف کنید Constants: Define Global Options & Class-Attached Values with `define` & `const'

  • الگوی Singleton: از یک نمونه واحد در سراسر برنامه خود اطمینان حاصل کنید The Singleton Pattern: Ensure a Single Instance Throughout Your App

  • روش های جادویی: افزایش تعامل با شی و مدیریت دارایی Magic Methods: Enhance Object Interaction and Property Management

  • ArrayAccess و Countable: شبیه سازی آرایه ها با رابط ها ArrayAccess & Countable: Emulate Arrays with Interfaces

  • دانش خود را از موضوعات OOP پیشرفته آزمایش کنید Test your knowledge of Advanced OOP Topics

  • رسیدگی به استثنا: عملکردهای حفاظتی با مکانیسم های Try-Catch Exception Handling: Safeguard Functions with Try-Catch Mechanisms

  • استثناهای سفارشی: مدیریت خطای دقیق صنایع دستی Custom Exceptions: Craft Precision Error Handling

«mod_rewrite» آپاچی: درخواست‌های URL را بازنویسی کنید (اختیاری) Apache's `mod_rewrite`: Rewrite URL Requests (optional)

  • نمای کلی: نشانی‌های وب پاک‌تر با «mod_rewrite» در آپاچی Overview: Cleaner URLs with `mod_rewrite` in Apache

  • پیکربندی «mod_rewrite»: تصاویر مستقیم با شرایط و استثنائات Configuration of `mod_rewrite`: Direct Images with Conditions and Exceptions

  • مدیریت URL با PHP و Apache: درخواست‌های تغییر مسیر URL Handling with PHP and Apache: Redirect Requests

  • کاوش در اسناد «mod_rewrite». Exploring the `mod_rewrite` Documentation

رمزگذاری رشته ها - رشته های چند زبانه و مجموعه های پایگاه داده را درک کنید String Encodings - Understand Multilingual Strings & Database Collations

  • بررسی اجمالی Overview

  • کاراکترهای چند بایتی: طول رشته ها را به طور دقیق با «mb_strlen» اندازه گیری کنید Multibyte Characters: Measure String Lengths Accurately with `mb_strlen`

  • توابع رشته چند بایتی پیشرفته: `mb_substr`، `mb_strpos`، `mb_ord`،... Advanced Multibyte String Functions: `mb_substr`, `mb_strpos`, `mb_ord`,...

  • پیچیدگی های یونیکد: از برنامه های وب خود در برابر شخصیت های پنهان محافظت کنید Unicode Complexities: Safeguard Your Web Apps from Hidden Characters

  • پاداش: معرفی بسته سیمفونی/رشته Bonus: Intro to the symfony/string package

  • رشته های غیر UTF-8 را با «mb_convert_encoding» تبدیل کنید Convert non-UTF-8 strings with `mb_convert_encoding`

  • رمزگذاری پایگاه داده: نقش حیاتی utf8mb4 در MySQL Database Encodings: The Critical Role of utf8mb4 in MySQL

  • مجموعه‌ها در MySQL: تأثیر بر مرتب‌سازی و جستجو را کشف کنید Collations in MySQL: Uncover the Impact on Sorting and Searching

Refresher: Jumpstart یا Revisite HTML & CSS Basics (اختیاری) Refresher: Jumpstart or Revisit HTML & CSS Basics (optional)

  • مقدمه ای بر HTML: سرفصل ها، پاراگراف ها و تگ های لنگر Intro to HTML: Headings, Paragraphs & Anchor Tags

  • عناصر درون خطی در مقابل عناصر بلوک: محتوای خود را شکل دهید Inline Elements vs Block Elements: Shape your Content

  • معرفی CSS: تغییر سبک یک عنصر HTML Intro to CSS: Change the Style of an HTML Element

  • از سبک های درون خطی تا فایل های CSS: افزایش انعطاف پذیری و کنترل From Inline Styles to CSS Files: Enhance Flexibility and Control

  • انتخابگرهای CSS: عناصر را بر اساس «id» و «کلاس» انتخاب کنید CSS Selectors: Select Elements by `id` and `class`

  • انتخابگرهای پیچیده تر: عناصر هدف را دقیقاً تعیین کنید More Complex Selectors: Target Elements Precisely

  • مدل بلوک: ایجاد طرح‌بندی با CSS The Block Model: Create Layouts with CSS

  • تعبیه تصاویر و سبک عناصر درون خطی Embed Images and Style Inline-Block Elements

  • صفحات HTML را با divs، span ها و برچسب های معنایی مانند هدر ساختار دهید Structure HTML Pages with divs, spans, and Semantic Tags like header

Outlook: چگونه افق پی اچ پی خود را گسترش دهیم Outlook: How To Expand Your PHP Horizon

  • توسعه پیشرفته با Packagist، Composer و Frameworks (Symfony، Laravel) Advanced Development with Packagist, Composer, and Frameworks (Symfony, Laravel)

  • کاوش راه حل های آماده: phpBB، فروشگاه و وردپرس Exploring Ready-Made Solutions: phpBB, Shopware, and Wordpress

  • PhpStorm: محیط توسعه PHP خود را بهینه کنید PhpStorm: Optimize Your PHP Development Environment

  • کلمات پایانی Final Words

نمایش نظرات

نظری ارسال نشده است.

آموزش PHP مدرن: راهنمای کامل - از مبتدی تا پیشرفته
خرید اشتراک و دانلود خرید تکی و دانلود | 480,000 تومان (7 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 4 دوره است و 4 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
44 hours
339
Udemy (یودمی) udemy-small
03 اردیبهشت 1403 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
298
4.9 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Jannis Seemann Jannis Seemann

مهندس نرم افزار | B.Sc. Informatik (TU München)

Udemy (یودمی)

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

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