آموزش سیمفونی ۶ فریمورک: شروع کار (عملی ۲۰۲۵) - آخرین آپدیت

دانلود Symfony 6 Framework: Getting Started (Hands-on 2025)

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

آموزش سیمفونی (Symfony) در مقابل لاراول (Laravel) و نکست جی‌اس (Next JS)

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

مفاهیم کلیدی سیمفونی 6.4:

  • روتینگ (Routing): مدیریت مسیرهای درخواست‌ها
  • کنترلرها (Controllers): منطق پردازش درخواست
  • تویگ (Twig): موتور قالب‌بندی قدرتمند
  • دکترین (Doctrine): ORM برای مدیریت پایگاه داده
  • فرم‌ها (Forms): ساخت و اعتبارسنجی فرم‌ها
  • اعتبارسنجی (Validation): تضمین صحت داده‌ها

کاربرد سیمفونی 6.4:

با سیمفونی 6.4، وب‌سایت‌های داینامیک، APIهای RESTful و دستورات خط فرمان (CLI) بسازید.

پروژه‌های عملی:

با دنبال کردن آموزش‌های عملی، یک وب‌سایت و API پیش‌بینی آب‌وهوا را ایجاد خواهید کرد.

مقایسه فریم‌ورک‌ها:

مقایسه‌ای جامع بین سیمفونی 6.4، لاراول 10 و نکست جی‌اس 14.

ویژگی‌های دوره:

  • استفاده از قابلیت Strict Types در PHP 8 مدرن
  • زیرنویس‌های حرفه‌ای و دستی برای تمام ویدئوها
  • لایسنس رایگان 4 ماهه PhpStorm برای آموزش

پیش‌نیازها:

تجربه قبلی با فریم‌ورک لازم نیست. آشنایی با زبان PHP الزامی است.

نیازی به نصب ویرایشگر یا IDE PHP از قبل ندارید. یک لایسنس آموزشی 4 ماهه PhpStorm در اختیار شما قرار خواهد گرفت.

آیا می‌خواهید در کمتر از 10 دقیقه یک وبلاگ ساده بسازید؟ اگر پاسخ مثبت است، این دوره برای شما مناسب است!

نکته مهم: این دوره بر روی نسخه 6.3 ضبط شده است، اما تمامی ویدئوها بازبینی و در صورت نیاز به‌روزرسانی شده‌اند. این دوره کاملاً با سیمفونی فریم‌ورک 6.4 (LTS) سازگار است. ما دوره را با سیمفونی 7.0 و 7.1 تست کرده‌ایم و عملکرد آن تأیید شده است. به زودی کدهای منبع نسخه 7.0 و 7.1 را در مخزن GitHub خود قرار خواهیم داد.

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

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

این یک دوره عملی است، بنابراین نه تنها اساسی‌ترین مفاهیم سیمفونی را به شما نشان خواهم داد، بلکه بر روی یک برنامه واقعی کار خواهیم کرد. ما یک سیستم پیش‌بینی آب‌وهوا خواهیم ساخت. ابتدا به عنوان یک وب‌سایت یکپارچه (monolithic) و سپس به عنوان یک API بک‌اند که می‌تواند توسط برنامه‌های React، Vue یا Vanilla JS مصرف شود.

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

سیمفونی در حال تکامل است و این دوره نیز همین‌طور. هر زمان که تغییری در سیمفونی رخ دهد، ویدئوهای جدیدی ایجاد خواهم کرد و بخش‌های مربوطه از دوره را جایگزین خواهم کرد. پس یک بار ثبت‌نام کنید و به طور مداوم بیاموزید.


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

مرور دوره Course Overview

  • بررسی نسخه Version check

  • مرور دوره Course Overview

  • نمایش سیستم پیش‌بینی آب و هوا Demo of the Weather Forecast System

  • پیش‌نیازها Prerequisites

  • مخاطبان هدف و نقشه راه – از کجا شروع کنیم Target Audience & Roadmap where to Start Watching

  • جامعه و پشتیبانی Community & Support

  • دریافت لایسنس رایگان PhpStorm Getting Free PhpStorm License

درخواست و پاسخ Request and Response

  • مقدمه Intro

  • کدنویسی در ویدئوی بعدی شروع می‌شود! Coding starts in the next video!

  • معماری کلاینت-سرور Client-Server Architecture

  • درخواست و پاسخ در PHP Request and Response in PHP

  • HttpFoundation\Request HttpFoundation\Request

  • HttpFoundation\Response HttpFoundation\Response

  • کنترلر جلویی (Front Controller) Front Controller

  • جریان برنامه Symfony Symfony Application Flow

چرا اصلاً به یک فریم‌ورک نیاز دارم؟ Why do I need a framework at all?

  • مقدمه Intro

  • مشکلات کد مسطح (Flat Code) Issues with Flat Code

  • استخراج نما (View) Extract View

  • استخراج مدل (Model) Extract Model

  • استخراج طرح (Layout) Extract Layout

  • افزودن صفحه "نمایش" Add "show" page

  • کنترلر جلویی (Front Controller) Front Controller

  • Composer و HttpFoundation Composer and HttpFoundation

نصب Symfony Symfony Installation

  • مقدمه Intro

  • پیش‌نیازهای فنی Technical Requirements

  • Symfony CLI Symfony CLI

  • نسخه‌ها و تحولات Symfony Symfony Versions and Revolutions

  • دو طعم Symfony Two Flavors of Symfony

  • وبلاگ پایه در کمتر از ۱۰ دقیقه Basic Blog in under 10 Minutes

تمرین: نصب Symfony Practice: Install Symfony

  • مقدمه پروژه پیش‌بینی آب و هوا Weather Forecast Project Intro

  • چالش: نصب Symfony برای پروژه Challenge: Install Symfony for the Project

  • چالش: آپلود پروژه در مخزن GIT Challenge: Upload Project to GIT Repo

ایجاد صفحات در Symfony Creating Pages in Symfony

  • مقدمه Intro

  • ساختار پوشه Symfony Symfony Directory Structure

  • اولین کنترلر First Controller

  • تنظیم Route برای اولین اکشن Setting up Route for the First Action

  • لیست کردن تمام Routeها با debug:router Listing all routes with debug:router

  • استفاده از قالب‌ها (Templates) Using Templates

  • با Debug Toolbar بیشتر بدانید Know more with Debug Toolbar

  • ساختارهای ویژه Twig + فیلترها Twig Special Constructs + Filters

تمرین: صفحه اطلاعات Practice: Info Page

  • چالش: صفحه اطلاعات ایستا (Static Info Page) Challenge: Static Info Page

مسیریابی (Routing) Routing

  • مقدمه Intro

  • Route ساده Simple Route

  • تعیین متدهای HTTP Specifying HTTP Methods

  • پارامترهای Route Route Parameters

  • مقادیر پیش‌فرض پارامتر Parameter Default Values

  • نیازمندی‌های پارامتر Parameter Requirements

  • نیازمندی‌ها و مقادیر پیش‌فرض پارامتر درون‌خطی Inlining Parameter Requirements and Default Values

  • گروه‌بندی و پیشونددهی Routeها Grouping and Prefixing Routes

  • RedirectController RedirectController

  • تعیین Host Specifying Host

  • ایجاد URL در کنترلرها، قالب‌ها و JS Generating URLs in Controllers, Templates and JS

تمرین: صفحات پیش‌بینی Practice: Forecast Pages

  • چالش: پیش‌بینی بر اساس شهر و کشور Challenge: Forecast by City and Country

کنترلرها Controllers

  • مقدمه Intro

  • کنترلر در مقابل AbstractController Controller vs AbstractController

  • دستور make:controller make:controller Command

  • پرتاب خطاهای ۴۰۴ و ۵۰۰ Throwing 404 and 500 Errors

  • دریافت اطلاعات کاربر با استفاده از شیء Request Getting User Data using Request Object

  • صفت #[MapQueryParameter] #[MapQueryParameter] Attribute

  • صفت #[MapQueryString] #[MapQueryString] Attribute

  • صفت #[MapRequestPayload] #[MapRequestPayload] Attribute

  • دسترسی به سشن PHP Accessing PHP Session

  • پیام‌های فلش (Flash Messages) Flash Messages

  • اشیاء پاسخ جایگزین Alternative Response Objects

تمرین: داده‌های ساختگی برای پیش‌بینی Practice: Dummy Data for Forecast

  • چالش: آماده‌سازی یک آرایه از داده‌های ساختگی برای نمایش Challenge: Prepare an array of dummy data for display

قالب‌بندی (Templating) Templating

  • مقدمه Intro

  • این Twig است This is Twig

  • آیا یادگیری یک زبان قالب‌بندی دیگر ارزش دارد؟ Is it Worth Learning Another Templating Language?

  • ایجاد قالب HTML و JSON Creating a HTML and JSON Template

  • نحوه پردازش متغیرها توسط Twig How Twig Handles Variables

  • path() و url() path() and url()

  • نمایش دارایی‌ها (Assets) Displaying Assets

  • اتصال Bootstrap Connecting Bootstrap

  • متغیر app The app Variable

  • افزودن متغیرهای سراسری Adding Global Variables

  • رندر کردن Twig در کنترلرها و از مسیریابی Rendering Twig in Controllers and from Routing

  • dump() و {% dump %} dump() and {% dump %}

  • include() include()

  • وراثت قالب‌ها (Templates Inheritance) Templates Inheritance

  • جلوگیری از XSS، تنظیم متغیرهای قالب Preventing XSS, Setting Template Variables

  • ترجمه‌ها (Translations) Translations

تمرین: طرح‌بندی (Layout) Practice: Layout

  • چالش: اتصال Bootstrap Challenge: Connect Bootstrap

  • چالش: استایل‌دهی پیش‌بینی بر روی داده‌های ساختگی Challenge: Style the Forecast on Dummy Data

Doctrine Doctrine

  • مقدمه Intro

  • نصب بسته ORM Installing ORM Pack

  • .env, .env.local, .env.test, .env.test.local و غیره .env, .env.local, .env.test, .env.test.local etc

  • احتیاط! درز کردن اعتبارنامه‌ها (Credentials) Beware! Leaking Credentials

  • ایجاد Entity Creating Entity

  • doctrine:schema:update doctrine:schema:update

  • doctrine:migrations:... doctrine:migrations:...

  • درج (Inserts) Inserts

  • به‌روزرسانی (Updates) Updates

  • ذخیره Repository Repository Save

  • حذف یک شیء Deleting an Object

  • واکشی داده‌ها با متدهای پیش‌فرض Repository Fetching Data with Default Repository Methods

  • ایجاد کوئری‌های سفارشی با Query Builder Creating Own Queries with Query Builder

  • صفت #[MapEntity] #[MapEntity] Attribute

  • روابط (Relations) Relations

  • مراقب Joins باشید Beware Joins

  • تنظیم داده‌ها (Fixtures) Fixtures

تمرین: Entityها Practice: Entities

  • چالش: برنامه‌ریزی Entityهایتان Challenge: Plan Your Entities

  • چالش: پیاده‌سازی Entityهایتان Challenge: Implement Your Entities

  • چالش: پر کردن پایگاه داده با Fixtures Challenge: Fill Database with Fixtures

  • چالش: خواندن پیش‌بینی‌ها از پایگاه داده Challenge: Read Forecasts from Database

فرم‌ها Forms

  • مقدمه Intro

  • انواع فرم Form Types

  • استفاده از فرم‌ها Using Forms

  • انواع فرم داخلی Built-in Form Types

  • کلاس‌های فرم Form Classes

  • شخصی‌سازی طرح‌بندی Bootstrap و فرم Bootstrap and Form Layout Customization

  • handleRequest handleRequest

تمرین: CRUD Practice: CRUD

  • چالش: ایجاد CRUD برای مکان‌ها و پیش‌بینی‌ها Challenge: Create CRUD for Locations and Forecasts

اعتبارسنجی (Validation) Validation

  • مقدمه Intro

  • قوانین اعتبارسنجی Validation Rules

  • اعتبارسنجی فرم Form Validation

  • گروه‌های اعتبارسنجی Validation Groups

تمرین: اعتبارسنجی‌ها Practice: Validations

  • چالش: افزودن اعتبارسنجی به CRUDها Challenge: Add Validation to CRUDs

دستورات CLI CLI Commands

  • مقدمه Intro

  • make:command make:command

  • ورودی و خروجی Input and Output

  • SymfonyStyle SymfonyStyle

  • میزان جزئیات (Verbosity) Verbosity

تمرین: دستورات Practice: Commands

  • چالش: ایجاد یک دستور برای واکشی پیش‌بینی‌ها Challenge: Create a Command for Fetching Forecasts

سرویس‌ها Services

  • مقدمه Intro

  • سرویس ساده Simple Service

  • استفاده در کنترلر Use in Controller

  • استفاده در دستور Use in Command

  • رندر کردن Twig در سرویس‌ها Rendering Twig in Services

  • سرویس‌ها به عنوان متغیرهای سراسری Twig Services as Global Twig Variables

  • ValidatorInterface در سرویس‌ها ValidatorInterface in Services

تمرین: سرویس‌ها Practice: Services

  • چالش: استخراج منطق مشترک به سرویس Challenge: Extract Common Logic to Service

APIها APIs

  • مقدمه Intro

  • کلاینت HTTP PhpStorm PhpStorm HTTP Client

  • Postman Postman

  • خروجی داده با JsonResponse Outputting Data with JsonResponse

  • خروجی داده با Twig Outputting Data with Twig

  • خروجی داده با Serializer Outputting Data with Serializer

  • دریافت Payload JSON Getting JSON Payload

  • دریافت داده با استفاده از #[MapRequestPayload] Getting Data using #[MapRequestPayload]

  • دریافت داده با استفاده از فرم‌ها Getting Data using Forms

تمرین: API Backend Practice: Backend API

  • چالش: ایجاد API برای دریافت پیش‌بینی‌ها Challenge: Create API for Getting Forecasts

تست‌ها Tests

  • مقدمه Intro

  • آماده‌سازی و نصب Preparation and Installation

  • تست‌های واحد (Unit Tests) Unit Tests

  • تست‌های یکپارچه‌سازی (Integration Tests) Integration Tests

  • مقایسه تست‌های واحد و یکپارچه‌سازی Unit and Integration Tests Comparison

  • تست‌های کاربردی (Functional Tests) Functional Tests

تمرین: تست‌ها Practice: Tests

  • چالش: افزودن واحدهای مختلف Challenge: Add Different Units

  • چالش: تبدیل واحدها را تست کنید Challenge: Test Units Conversion

فریم‌ورک‌های جایگزین Alternative Frameworks

  • مقدمه Intro

  • Laravel Laravel

  • Next.js Next.js

خلاصه Summary

  • تبریک می‌گویم! Congratulations!

ادامه مسیر IdeaSpot.TV شما Continuing Your IdeaSpot.TV Journey

  • درس پاداش Bonus Lecture

نمایش نظرات

آموزش سیمفونی ۶ فریمورک: شروع کار (عملی ۲۰۲۵)
جزییات دوره
15 hours
154
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
692
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Dr Artur Karczmarczyk Dr Artur Karczmarczyk

دکترای مهندسی، مهندس نرم‌افزار، مدرس دانشگاه