- مدرس دوره : حسن خسروجردی ( رزومه )
- تعداد ویدیوها : 195 ویدیو
- مدت زمان دوره : 57:52:00
- سطح دوره : پیشرفته
- وضعیت دوره : به اتمام رسیده
- تاریخ آخرین بروزرسانی : 1400/04/06
دوره آموزش PHP MVC
دوره آموزش PHP MVC به همراه پروژه عملی
الگوی MVC (مخفف عبارت Model View Controller) یک الگوی طراحی برنامه ای است که اطلاعات برنامه را جدا می کند ,امروزه این الگو در اکثر برنامهها و نرمافزارهای تحت وب پیادهسازی میشود. هماکنون فریم ورک های بسیاری با ساختار الگوی MVC ایجاد شدهاند.در حال حاضر فریمورکهای بسیاری بر مبنای زبان برنامهنویسی PHP وجود دارند که از این الگو پیروی میکنند. بنابراین یک واقعیت بسیار بزرگ وجود دارد و آن محبوبیت الگوی MVC در زبان برنامه نویسی PHP است.
فهرستـــ ویدیوها
مدت زمان دوره 57:52:00با مشاهده آنلاین جلسات در سایت ، هزینه اینترنت شما به صورت نیم بها محاسبه خواهد شد.
ساختار کلی mvc
بررسی ساختار پروژه های مبتنی بر معماری mvc و آشنایی با فولدر های موجود در این معماری
معرفی پروژه عملی TinyProject
معرفی مینی پروژه اول به همراه ساختاربندی کلی پروژه و همچنین تحلیل و بررسی قالب پروژه در بخش کاربر و ادمین
مقدمه ای بر دلایل استفاده از فریم ورک
مقدمه ای بر دلایل استفاده از فریم ورک و استفاده از دیزاین پترن ها و اصول solid در شئ گرایی
ساختاربندی کلی tinyMVC
فولدربندی کلی پروژه به همراه فایل htaccess برای ساخت tinyMVC و همچنین توضیح درمورد تفاوت های فولدرهای موجود در پروژه
ساخت و پیکربندی سیستم روتینگ - بخش دوم
ساخت کامل بخش روتینگ پروژه وبررسی ادرس ها کلاس ها متدها و متغییر های ورودی کاربر در این بخش
ساخت کنترلر و traits
ساخت کنترلر اصلی و نوشتن متدهای مورد استفاده در trait ها برای عملیات redirect و همچنین redirect back
ساخت بخش view
تست سیستم روتینگ نوشته شده و خروجی گرفتن از آن و همچنین پیاده سازی بخش view شبیه به فریم ورک های بزرگ مانند لاراول
استفاده از سیستم view
تست و بررسی سیستم view و ارسال متغییر ها و مقایسه با پروژه های مبتنی بر لاراول
ساخت بخش Model
ساخت و پیکربندی کلی کلاس Model و اتصال به دیتابیس و همچنین تست بخش ریدایرکت در سیستم طراحی شده
ساخت بخش Model - بخش دوم
ساخت متد های کوئری و execute به منظور ارتباط با دیتابیس و همچنین قطع ارتباط با دیتابیس در انتهای عملیات در کلاس Model
ساخت autoload
ساخت بخش autoload به منظور جلوگیری از نوشتن کدهای اضافی در جهت فراخوانی کلاس های جدید و بهینه سازی کد ها
لایه بندی tinyMVC
لایه بندی کلی پروژه و ساخت فولدر های جداکننده پنل ادمین و بخش app و جداسازی header و footer
ساخت متد asset,include,url
ساخت متدهای فوق برای راحتی کار و همچنین جلوگیری از تکرار آدرس ها مشابه فریمورک لاراول
اتمام لایه بندی پروژه
تکمیل لایه بندی کلی و همچنین ساخت کنترلر های لازم در دو بخش app و panel
ساخت مدل Category
ساخت مدل دسته بندی ها و ساخت دو متد از کنترلر article شامل index و create
ساخت کنترلر Article
ساخت کنترلر مربوط به مقالات و همچنین صفحه نمایش مقالات در پنل ادمین و پویا سازی کامل این صفحه
دیزاین پترن chain of responsibility
بررسی ساختار دیزاین پترن chain of responsibility و همچنین مثال عملی و بررسی مثال ها در فریمورکها و middleware
دیزاین پترن Builder - بخش اول
بررسی ساختار کلی این دیزاین پترن در زبان های مختلف و کلیت آن
دیزاین پترن Builder - بخش دوم
مثال عملی برای این الگو با پیاده سازی دستورات sql بصورت متد چین
پوشه بندی پروژه اصلی
بررسی پوشه بندی کلی پروژه اصلی و همچنین بررسی پوشه بندی فریم ورک لاراول و مقایسه با آن
استفاده از composer در پروژه
در این بخش با کمک کامپوزر و استاندارد psr-4 برای autoloading سیستم استفاده شده است
بررسی کامل ساختار روتینگ سیستم
بررسی سیستم روتینگ فریم ورک لاراول و مقایسه با سیستم فعلی و همچنین بررسی ساختار اصلی پوشه های روتینگ
تجزیه و تحلیل مسیرها
در این بخش به تجزیه و تحلیل مسیر های رزرو شده پرداخته شده و تمامی مسیرها بر اساس http verb مورد نظر جداسازی میشود
تکمیل بخش Route
در این بخش به تکمیل بخش های Route پرداخته میشه که شامل دو بخش web و API میشه و همچنین توضیح مختصری درمورد API ارائه شده است
بخش bootstrap
بررسی بخش بوت استرپ و همچنین چگونگی استفاده از لوکال هاست با پورت ۸۰۰۰ در ویندوز و مک و توضیح کلی بخش روت
MVC life cycle
در این بخش به ادامه ساخت بخش روتینگ پرداخته میشود و همچنین چرخه حیات لاراول و پروژه های مبتنی بر MVC بررسی میشود
سیستم روتینگ - بخش دوم
در این بخش به پیکیربندی سه متد اصلی run match compare پرداخته میشود و همچنین متد error404 بمنظور ساخت صفحات not found ساخته میشود
سیستم روتینگ - بخش سوم
در این بخش به تکمیل متد compare پرداخته میشود و دو بخش مهم آن که شامل تعیین آدرس های اصلی "/" و تعیین سایز مسیر ها میباشد پرداخته میشود
سیستم روتینگ - بخش چهارم
در این بخش به تکمیل متد compare پرداخته میشود و آدرس ها با متغییر چک میشوند و همچنین مسیر از نظر ساختار هم بررسی میشود
سیستم روتینگ - بخش پنجم
در این بخش به متد match پرداخته میشود و در نهایت مسیر مورد نظر مقایسه شده , متد و کلاس آن جداسازی میشود.
سیستم روتینگ - بخش ششم
در این بخش به توضیح متد run پرداخته میشود . این متد وظیفه اجرای سیستم روتینگ را در کل سیستم بر عهده دارد.
سیستم روتینگ - بخش آخر
در این بخش آخرین بخش متد run نوشته شده که به منظور تعیین متد مورد استفاده و پارامتر های ورودی میباشد.
اتصال به دیتابیس
در این بخش عملیات اتصال به دیتابیس به روش PDO و همچنین استفاده از دیزاین پترن singleton مورد بحث قرار میگیرد.
اتصال به دیتابیس - بخش دوم
در این بخش اتصال به روش pdo انجام شده و همچنین متد دریافت آی دی آخرین رکورد در هنگام insert نیز نوشته میشود.
ساخت HasQueryBuilder Trait
در این بخش به شکستن sql ها و تقسیم بندی آن ها پرداخته شده و یک getter setter برای sql نوشته میشود.
تکمیل HasQueryBuilder Trait
در این بخش متد getCount به منظور تسهیل عملیات pagination نوشته میشود
توضیحات تکمیلی hasQueryBuilder
در این بخش با مثال های عملی بخش های مهم این تریت بررسی میشود
استفاده از Backticks در SQL ها
در این بخش به دلایل استفاده از Backticks پرداخته میشود و یک راه بهینه برای استفاده در فریمورک از Backticks معرفی میشود.
تنظیمات مدل ها
در این بخش با مفاهیم بسیار مهمی مثل deleted_at , casts, fillable, hidden و ... آشنا میشویم.
تحلیل trait hasAttributes
در این بخش به تحلیل تریت فوق پرداخته میشود و اهداف کلی برای نوشتن این تریت بصورت کامل بررسی میشود.
ساخت collection
در این بخش attribute های هر آرایه ثبت نام شده و عملیات decode شدن روی آن ها انجام میشود.
پیکربندی ساختار دریافت رکورد ها
در این بخش ساختار اصلی دریافت رکورد از دیتابیس متناسب با هر مدل بررسی میشود.
ساخت collection رکورد ها
در این بخش collection رکورد ها ساخته شده و دو متد برای تشخصی hidden ها و cast ها ساخته میشود.
شروع HasCRUD trait
در این بخش متد fill که وظیفه مدیریت attribites قابل پر شدن را بر عهده دارد تکمیل میشود.
تکمیل اطلاعات آخرین رکورد اضافه شده
در این بخش به تکمیل اتریبیوت های برگشتی بعد از آخرین insert پرداخته میشود. در این عملیات تاکید بر حفظ ساختار درختی و توجه به تمامی اتریبیوت های هر رکورد شده
متد whereOr , whereNull , whereNotNull
در این بخش متد های whereOr , whereNull , whereNotNull مشابه لاراول نوشته میشوند.
تکمیل متد paginate - ساخت متد create-update
در این بخش متد paginate تکمیل شده و متد های create و update نوشته میشوند.
شروع trait HasMethodCaller
در این بخش قصد داریم متدهایی که اجازه chain شدن دارند را مشخص کنیم
ساختار methodChain
در این بخش ساختاری تشکیل میشود تا بتوان به کمک آن از methodChain استفاده کرد
مفهوم soft delete
در این بخش به توضیح مفهوم soft delete پرداخته شده و دلایل استفاده از آن را شرح میدهیم.
شروع trait HasSoftDelete
در این بخش trait برای انجام soft delete نوشته میشود.اولین متدی که در این تریت لازم هست deleteMethod میباشد که وظیفه اصلی soft delete را به عهده دارد.
پیاده سازی متدهای all , find
در این بخش دو متد all , find برای عملیات soft delete بازنویسی میشوند.
اتمام trait hasSoftDelete
در این بخش دو متد اخر این تریت نوشته میشود و اصل solid که در این تریت استفاده شده بررسی میشود.
Relationships - one to one
در این بخش در رابطه با روابط در دیتابیس صحبت میشود همچنین رابطه one to one در ORM پیاده سازی میشود.
Relationships - many to many
در این بخش در مورد رابطه چند به چند صحبت میشود و در سیستم پیاده سازی انجام میگیرد.
Migrations - بخش دوم
در این بخش لیست تمامی جداول دریافت میشود و old tables جداسازی میشوند.
normal validation and number validation
در این بخش اعتبار سنجی بر اساس اعداد یا در حالت معمول نوشته میشود.
file validation - بخش دوم
در این بخش قوانین max min type required برای فایل ها نوشته میشود.
Authentication - بخش دوم
در این بخش کلاس auth تکمیل میشود. متد های loginById, loginByEmail , logout
helpers - بخش چهارم
در این بخش helper های redirect , back , currentDomain , asset , url نوشته میشوند.
helpers - بخش اخر
در این بخش helper های currenUrl , arrayDot , methodField , token نوشته میشوند.
سخن پایانی ( پایان فصل اول )
در این بخش توضیحاتی درمورد گسترش فریمورک و همچنین نسخه بندی معنایی ارائه میشود.
ایجاد دسته بندی جدید
در این بخش عملیات store نوشته میشود و به صورت عملی از request استفاده میشود.
ساخت روابط زیر دسته و همچنین soft delete
در این بخش روابط زیر دسته ها و همچنین soft delete بررسی میشود.
اپلود عکس به کمک Intervention Image
در این بخش نحوه استفاده از Intervention Image گفته میشود.
تکمیل بخش اخبار
در این بخش اخبار تکمیل شده و فایل های مربوط به صفحه آگهی ها توضیح داده میشود.
تکمیل بخش pagination - ساخت بخش پست ها
در این بخش تکمیل بخش pagination - ساخت بخش پست ها انجام میشود.
تکمیل تمامی پست ها و صفحه داخلی پست ها
در این قسمت بخش تمامی پست ها و صفحه داخلی پست ها نوشته میشود.
نظرات کاربران در رابطه با این دوره