آموزش زبان برنامه نویسی PHP
پی اچ پی از زبانهای پردازهنویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامهنویسی پرل (Perl) میباشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانکهای اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است. مشهورترین نرمافزارهای(بسته های) ایجاد شده با پیاچپی عبارتاند از phpBB ،SMF ،Mambo ،Joomla ،PHPNuke ،mybb و مدیاویکی (MediaWiki) (که این وبگاه با آن طراحی شده). پیاچپی میتواند جایگزینی برای زبانهای ASP.NET و JSP و Perl باشد. همچنین یکی از بهترین نمونههای برنامهنویسی php در سطح وسیع سایت فیسبوک است. سادگی استفاده از پیاچپی و شباهت آن به زبان سی و پرل (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاهترین زمان ممکن برنامههای کاملی را ایجاد کنند.
به جای صرف هزینه های چند صد هزارتومانی برای یادگیری زبان PHP ، تنها با 20% هزینه ی کلاس های حضوری، دوره ی کامل و حرفه ای آموزش زبان PHP را با بهترین کیفیت برای شما عزیزان برگزار می کنیم . با مشاهده ی سرفصل های این دوره جامع بودن آن را درک خواهید کرد . در انتهای دوره با آموزش انجام 3 پروژه ی کاربردی مهارت های خودتون رو به صورت کاملا عملی استفاده خواهید کرد .
سرفصل های دوره جامع آموزش زبان PHP :
فصل 1 : مقدمه ، پیشنیازها و آماده سازی محیط کار
در مورد مدرس
در مورد زبان اسکریپتی PHP
مقایسه ی زبان های برنامه نویسی و زبان های نمادگذاری
PHP و چرایی انتخاب این زبان
زبان های Server-Side در مقابل Client-Side
تاریخچه ی PHP
معرفی کلی دوره و هدف نهایی آن
پیشنیازها ی دوره
آماده سازی محیط برنامه نویسی
سیستم عامل
مرورگر
راه اندازی وب سرور محلی (Local)
مجموعه ی AMP : Apache , MySQL , PHP در سیستم عامل های مختلف
نصب WAMP و پیکربندی آن در ویندوز
یافتن فولدر ریشه (root) وب سرور محلی و مدیریت فایل های برنامه ها
پیکربندی PHP و MySQL
تست وب سرور محلی و دیدن اطلاعات و ویژگی های PHP نصب شده
انتخاب ویرایشگر و محیط توسعه ی برنامه های PHP (IDE)
در مورد PhpStorm و Notepad++ : دانلود و نصب آن ها
آموزش نکات و تکنیک های مهم ویرایشگر PhpStorm
تنظیمات PhpStorm
ایجاد و ویرایش پروژه
کلیدهای میانبر مهم در PhpStorm
ضبط ماکرو ها و استفاده از آنها برای کدنویسی سریعتر
تکنیک هایی برای افزایش سرعت و دقت در کدنویسی (emmet plugin)
موارد متفرقه در مورد PhpStorm
تمرین
فصل 2 : قرارداد ها، شروع کدنویسی حساب شده و مفاهیم پایه !
فرمت فایل های زبان PHP
آشنایی با کدگذاری فایل ها : Utf-8 در مقابل ASCII
مفاهیم پایه
صفحات وب ایستا (Static) در مقابل صفحات وب پویا (Dynamic)
دو جزء اساسی تشکیل دهنده ی یک برنامه : داده ها و کدها
روند پردازش درخواست ها از مرورگر تا وب سرور و برعکس
تگ های زبان PHP : جا دادن کدهای PHP در صفحه ی وب
آشنایی با توابع echo و print برای چاپ داده ها
توضیحات (Comments) در زبان PHP
تابع rand و استفاده از آن برای تولید اعداد تصافی در طول برگذاری این دوره
کدنویسی استاندارد و قراردادهای این دوره ی آموزشی
استاندارد تعین نام ها
استاندارد تعین کامنت ها
استاندارد تعین فرمت ها
رعایت نظم و فرورفتگی ها (Indentation) در کدنویسی
شیوه ی پوشه بندی و ساختار فایل های این دوره
فایل های کمکی مورد استفاده در این دوره
پوشه ی common
فایل styles.css
فایل common.js
فایل common.php
تمرین
فصل 3 : انواع مختلف داده ها و متغیرها در PHP
داده های دنیای پیرامون ما
متغیر در زبان های برنامه نویسی چیست ؟
نحوه ی تعریف متغیرها : صریح در مقابل ضمنی
قواعد نامگذاری صحیح متغیرها
مثال هایی از نامگذاری های صحیح و غلط برای متغیرها
انواع مختلف متغیرهای PHP
متغیرهای رشته ای (String)
متغیرهای عددی صحیح (Integer)
متعیرهای عددی اعشاری (Float)
متغیرهای بولین (Boolean)
متغیرهای آرایه ای (Array)
نوع های خاص : NULL و empty
متغیرهای ارجاعی (Pointer)
تخریب و از بین بردن متغیر ها با دستور unset
تشخیص نوع متغیرها با تابع gettype()
تغیر نوع متغیر با تابع settype()
توابع چک کردن نوع متغیرها
is_int
is_string
is_bool
is_float
is_array
is_numeric
is_null
is_empty
تبدیل نوع متغیرها (Type Casting)
ثابت ها در زبان PHP
ثابت های مهم و کاربردی از پیش تعریف شده در PHP
کار با متغیرهای رشته ای
تفاوت استفاده از تک کوتیشن و دابل کوتیشن در اطراف رشته ها ( ‘ و “)
استفاده ی ترکیبی از متغیرها و داده ها در کدهای PHP
تمرین
فصل 4 : عملگرها در PHP : انجام اعمال مختلف بر روی داده ها و متغیرها
عملگر چیست ؟
انواع عملگرها در زبان PHP
عملگرهای ریاضی و محاسباتی
عملگرهای رشته
عملگرهای مقایسه ای
عملگرهای منطقی
عملگرهای بیتی
عملگرهای انتساب
عملگرهای خاص : ++ و –
بررسی عملگرها با مثال های مختلف
اولیت اعمال عملگرهای مختلف
تمرین
فصل 5 : ساختارهای کنترلی : شرط ها و عبارت های منطقی
مقدمه و آشنایی با عبارت های شرطی در زبان های برنامه نویسی
بلاک بندی کد با استفاده از آکولادها
عبارت شرطی if
عبارت های else و else if
عبارت شرطی switch
نقش دستور break در ساختار switch
عبارت و عملگر شرطی ?
ارائه ی مثال های مختلف برای درک عمقی از نحوه ی استفاده از شرط ها
مینی پروژه 1 : محدود کردن نمایش محتوا بر اساس سن و جنسیت کاربر
مینی پروژه 2 : نوشتن یک ماشین حساب با دستورات شرطی مختلف در زبان PHP
تمرین
فصل 6 : ساختارهای کنترلی : حلقه ها و آرایه ها
مقدمه و آشنایی با حلقه ها و آرایه ها در زبان های برنامه نویسی
آرایه ها و متغیرهای مجموعه ای
آرایه های عددی در مقابل آرایه های Associative
مفهوم iteration در حلقه ها
ساختار حلقه for و بخش های مختلف آن
ساختار حلقه foreach و کاربرد آن
تفاوت حلقه های for و foreach
ساختار حلقه while و نکات مهم در نحوه ی استفاده از آن
ساختار حلقه do...while و تفاوت آن به حلقه ی while
استفاده از حلقه های تو در تو برای پردازش داده ها و آرایه های چند بعدی
کاربرد دستورات Continue و Break
مینی پروژه : تعیین جایگاه نشستن تماشاگران با توجه به جنسیت آنها !
تمرین
فصل 7 : تعامل Html ، PHP و Javascript : با Ajax حرفه ای شوید !
در این فصل مفاهیم در قالب ساخت رابط کاربری یک وبلاگ تدریس می شوند .
لود و استفاده از فایل های PHP در همدیگر
تشریح توابع include و include_once
تشریح توابع require و require_once
مروری بر زبان نماد گذاری HTML
استفاده از تگ های HTML برای نمایش بهتر خروجی کدهای PHP
استفاده از تگ های فرمت بندی متن در خروجی های PHP
ایجاد خروجی های پویا و متغیر
استفاده از حلقه های PHP و تگ table برای نمایش خروجی به صورت جدولی
نمایش شرطی ویژگی ها و تگ های HTML و کلاس های CSS
مروری بر زبان جاوااسکریپت
تشریح کاربردهای زبان جاوااسکریپت
نحوه ی استفاده از کدهای جاوا اسکریپت در صفحات PHP
نحوه ی انتقال و استفاده از داده ها و مقادیر php در کدهای جاوااسکریپت
جی کوئری (jQuery) و سهولت در نوشتن کدهای جاوااسکریپت !
بررسی اعتبار داده های ورودی کاربر توسط جاوااسکریپت (جی کوئری)
نمایش پیام هشدار پیش از انجام عملیات حساس، با استفاده از جاوااسکریپت
تکنولوژی Ajax چیست ؟
مزایا و معایب استفاده از Ajax
موارد استفاده ی صحیح و اشتباه از تکنولوژی Ajax
آموزش به کارگیری Ajax به همراه PHP با استفاده از کتابخانه ی جی کوئری
نمایش تصویر و یا متن لودینگ در هنگام ارسال درخواست Ajax
مینی پروژه : جستجو در لیست اسامی و پیشنهاد نتایج در هنگام تایپ با استفاده از Ajax
تمرین
فصل 8 : کار با فرم ها و داده های ورودی کاربران
توضیحی در مورد ورودی ها و خروجی ها در زبان های برنامه نویسی
دریافت ورودی ها در زبان PHP
تشریح کاربرد و عملکرد فرم ها در صفحات وب
تفاوت دو متد Post و Get در ارسال داده ها به سمت سرور
ساختار ارسال داده ها با متد Get در Url ها (QueryString Structure)
ساختار یک فرم در زبان Html
اجزاء مختلف تشکیل دهنده ی فرم های Html
تگ form
فیلدهای متنی (Text)
فیلدهای ناحیه ی متنی (Textarea)
فیلد های انتخاب گزینه (radio button , checkbox)
فیلد های لیستی (Select)
فیلد آپلود فایل (File)
فیلدهای مخفی (Hidden)
دکمه ها (Button , Submit)
لیبل ها (Label)
دریافت اطلاعات ارسال شده از فرم ها در PHP
مینی پروژه : ساخت یک فرم ثبت نام برای ذخیره سازی اطلاعات افراد و ارسال داده ها به سمت PHP
تمرین
فصل 9 : آرایه های سوپرگلوبال PHP و کاربرد آنها
منظور از آرایه های SuperGlobal چیست ؟
انواع آرایه ها فوق سراسری و کاربرد آنها در زبان PHP
آرایه ی $_GET
آرایه ی $_POST
آرایه ی $_REQUEST
آرایه ی $_FILE
آرایه ی $_SERVER
نحوه ی دریافت و پردازش اطلاعات ارسال شده از طریق فرم ها در زبان PHP
اعتبارسنجی ورودی های کاربر و رفع خطرات احتمالی از ورودی های خطرناک در PHP
جلوگیری از ارسال مجدد فرم ها و مشکل ذخیره سازی و پردازش مجدد داده ها
مینی پروژه : نمایش اطلاعات ارسال شده از طریق فرم ثبت نام با ظاهری مرتب
تمرین
فصل 10 : توابع : تعریف توابع دلخواه توسط برنامه نویس
تابع چیست و چرا باید از توابع استفاده کرد ؟
ساختار نوشتاری توابع PHP
قواعد نامگذاری توابع
پارامترها یا ورودی های توابع PHP
مقدار بازگشتی (خروجی) توابع
مثالی که مزایای استفاده از توابع را نشان می دهد .
نوع پارامتر های توابع PHP (مقداری و ارجاعی)
محدوده اعتبار متغیرها (Scope) و متغیرهای سراسری (global variables)
مقداردهی پیشفرض برای پارامترهای تابع
تعریف تابع با تعداد متغیری از پارامترهای ورودی
تولید مقادیر چندگانه توسط یک تابع
نحوه ی دسترسی به متغیرهای سراسری
چک کردن وجود یا عدم وجود تابع با نام خاص
مفهوم توابع بازگشتی و مثالی کاربردی از آن
مینی پروژه : شبیه سازی خط تولید خودرو در فازهای مختلف کارخانه
تمرین
فصل 11 : توابع : توابع از پیش تعریف شده در PHP
توابع از پیش تعریف شده ی PHP و مزایای استفاده از آنها
نحوه ی جستجوی توابع مختلف PHP و یافتن توابع مورد نیاز شما
کار با تاریخ و زمان :
دریافت و فرمت بندی تاریخ کنونی سرور و تبدیل timestamp به تاریخ
دریافت زمان و ساعت کنونی سرور به شکل timestamp
دریافت زمان کنونی به میکروثانیه
ساخت یک شئ از کلاس تاریخ
ساخت یک شئ تاریخ با فرمت دلخواه
دریافت منطقه ی زمانی
تنظیم کردن منطقه ی زمانی
افزودن یک مقدار (ساعت،روز،ماه ...) به یک تاریخ
کم کردن و تفریق یک بازه ی زمانی از یک تاریخ
دریافت اختلاف زمانی بین دو تاریخ مختلف
انجام تغیرات در تاریخ
نمایش یک تاریخ با فرمت خاص
دریافت اجزاء مختلف تاریخ (روز، ماه، سال، ثانیه، دقیقه، ساعت و ...)
دریافت زمان طلوع خورشید
دریافت زمان غروب خورشید
تنظیم ساعت در یک تاریخ
دریافت برچسب زمانی (timestamp) یک تاریخ
تبدیل یک رشته ی تاریخ به timestamp
دریافت اطلاعات و اجزاء مختلف تاریخ کنونی سرور
دریافت اجزاء مختلف تاریخ (ساعت، روز، ماه و ...) به صورت عدد صحیح
بهره گیری و استفاده از تاریخ فارسی با کتابخانه ی jdf
مینی پروژه : نمایش تاریخ به صورت زمان گذشته شده تا کنون (مثال : 2 ماه و 3 روز پیش)
تمرین
کار با رشته ها :
دریافت طول یک رشته
افزودن اسلش ها به رشته و دلیل انجام اینکار
تبدیل کد حروف به کاراکتر و برعکس
شکستن یک رشته به تکه های کوچکتر با سایز مشخص
نمایش اطلاعات در مورد حرف های رشته ی متنی
محاسبه ی checksum از رشته ی ورودی
crypt : تابعی برای در هم ریزی (hash) رشته
md5,md5_file : توابعی برای در هم ریزی (hash) رشته و فایل
sha1,sha1_file : توابعی برای در هم ریزی (hash) رشته و فایل
جداسازی بخش های یک رشته بر اساس یک رشته ی جداکننده
چسباندن تمام اعضای یک آرایه و تبدیل آنها به یک رشته
تبدیل کاراکترهای html به کاراکترهای اجرایی
برعکس تابع html_entity_decode
تبدیل کاراکترهای خاص html به کاراکترهای اجرایی
برعکس تابع htmlspecialchars_decode
کوچک کردن اولین حرف رشته
حذف فاصله ها (یا حروف خاص) از اطراف رشته ها
تبدیل کاراکترهای خط جدید به تگ br در html
تجزیه کردن رشته به متغیرها
تجزیه کردن یک url و دریافت اجزای آن
چاپ یک رشته به صورت فرمت بندی شده
محاسبه ی میزان شباهت بین دو رشته
پر کردن یک رشته تا طول خاص با رشته ای دیگر
جایگزین کردن یک رشته ی دلخواه با بخشی از رشته
تکرار یک رشته به تعداد دلخواه
جا به جا کردن حروف رشته به صورت تصادفی
شکستن یه رشته به رشته های کوچکتر و قرار دادن در آرایه
دریافت اطلاعات مربوط به تعداد تکرار کلمات در رشته
یافتن اولین رخداد یک رشته در رشته ی بزرگتر
یافتن موقعیت رخداد یک رشته در رشته ی بزرگتر
مقایسه ی بین دو رشته
تهی کردن رشته از تگ ها html و php
دریافت تعداد تکرار یک زیررشته در رشته ی بزرگتر
کوچک و بزرگ کردن حروف رشته
دریافت یک زیر رشته از رشته ی بزرگتر
احاطه کردن رشته با رشته ای دیگر در تکه هایی با اندازه ی مشخص
فشرده سازی و کاهش سایز رشته ها
مینی پروژه : ایجاد یک ویرایشگر متن php به کمک Ajax
تمرین
کار با آرایه ها :
ساخت یک آرایه
شمارش تعداد عناصر آرایه
چک کردن وجود یک کلید در آرایه
چک کردن حضور یک مقدار در آرایه
دریافت همه یا بخشی از کلید های یک آرایه
دریافت همه ی مقادیر موجود در آرایه
تغیر حروف همه ی کلیدهای آرایه
شکستن آرایه به چند بخش
ایجاد یک آرایه با ترکیب دو آرایه ی کلیدها و مقادیر
دریافت تعداد تکرار اعضای آرایه
بدست آوردن تفاوت دو آرایه با همدیگر
پر کردن بخشی از آرایه با مقادیر خاص
فیلتر کردن اعضای ارایه با استفاده از یک تابع callback
جابجایی کلیدها و مقادیر یک آرایه با همدیگر
محاسبه ی اشتراک دو آرایه
ادغام و اجتماع دو آرایه
مخلوط کردن آرایه به صورت تصادفی
توابع مرتب سازی آرایه ها
پرکردن آرایه از مقادیر تا طول خاص
اضافه کردن یک عنصر به انتهای آرایه
برداشتن آخرین عضو آرایه
محاسبه ی حاصل جمع و ضرب کل عناصر آرایه
برداشتن یک یا چند عنصر از آرایه به صورت تصادفی و رندم
جایگزینی عناصر آرایه با عناصر یک آرایه ی دیگر
معکوس کردن آرایه
جستجو در آرایه
دریافت یک زیر آرایه از آرایه ی بزرگتر
حذف عناصر تکراری از آرایه
اعمال یک تابع برای اجرا بر روی تک تک عناصر آرایه
پیمایش در عناصر آرایه
استخراج متغیر از اعضای آرایه
مینی پروژه : مدیریت و فیلتر کردن جدول مخاطبین تلفن
تمرین
کار با فایل ها :
ایجاد فایل و فولدر در سرور
دریافت اطلاعات کامل یک فایل
دریافت نام فایل با استفاده از مسیر آن
دریافت مسیر فولدر حاوی فایل از مسیر آن
چک کردن وجود یا عدم وجود یک فایل
چک کردن فایل/پوشه بودن یا نبودن یک فایل
خواندن کل محتوای فایل و قراردادن آن در یک آرایه
خواندن فایل و دریافت کل محتوای آن به عنوان یک رشته
نوشتن یا اضافه کردن اطلاعات از یک رشته به درون فایل
بازکردن و بستن یک فایل
خواندن اطلاعات از درون یک فایل
نوشتن اطلاعات در فایل
دریافت سایز و فرمت (نوع) فایل
آپلود و انتقال فایل بر روی سرور
دریافت نام و اطلاعات فایل های موجود در پوشه ها
اجبار به دانلود فایل با استفاده از php
تغیر مجوزهای دسترسی به فایل
کپی کردن یک فایل به آدرسی دیگر
تغیر نام فایل بر روی سرور
حذف فایل ها و پوشه ها
دریافت اطلاعات فضای خالی وکل دیسک سرور
مینی پروژه : اسکریپت فایل منیجر با قابلیت لیست کردن، ویرایش، حذف و اضافه کردن فایلها
تمرین
توابع متفرقه :
تولید اعداد تصادفی
توابع ریاضی و محاسباتی
دریافت اطلاعات مربوط به میزان استفاده از رم
دریافت اطلاعات میزان استفاده از CPU سرور
فصل 12 : اصول طراحی پایگاه داده (Database)
پایگاه داده (Database) و سیستم مدیریت پایگاه داده (DBMS) چیست ؟
استفاده از پایگاه داده در مقابل فایل ها
انواع مختلف پایگاه های داده
پایگاه های داده رابطه ای (Relational Database)
مدل ER و مفاهیم پایه ی آن (Entity Relationship Model)
تشریح انواع رابطه ها (1-1, n-1, n-m)
تشریح مفاهیم دیتابیس (جدول، رابطه، کلیدها، فیلدها و رکوردها)
ایندکس ها، کلیدهای اصلی و کلید های خارجی
مفاهیم مهم در طراحی پایگاه داده
اشتباهات رایج در طراحی پایگاه داده و تشریح مشکلات آن
نرمال سازی جداول پایگاه داده
مینی پروژه : طراحی پایگاه داده برای یک فروشگاه اینترنتی
تمرین
فصل 13 : کار با پایگاه داده ی MySQL و چگونگی اتصال PHP به دیتابیس
معرفی سیستم مدیریت پایگاه داده ی MySQL
آشنایی با ابزار PhpMyAdmin و مدیریت جداول پایگاه داده به صورت دستی
انجام 4 عمل اصلی پایگاه داده (CRUD) در محیط PhpMyAdmin
انجین های ذخیره سازی جداول و معایب و مزایای هر کدام (InnoDB vs MyISAM)
معرفی ویژگی های مختلف یک ستون از جداول پایگاه داده (نام، نوع، سایز، مقدار پیشفرض و ...)
تشریح انواع داده ها (DataTypes) در SQL
SQL : زبانی برای درخواست اطلاعات و انجام تغیرات در پایگاه داده (Query Language)
آموزش زبان SQL : آموزش انجام اعمال اصلی در پایگاه های داده (CRUD) با زبان SQL
ساخت جداول پایگاه داده (Create)
شرح دادن جداول پایگاه داده و دیدن اطلاعات آنها (Describe)
حذف جداول پایگاه داده (Drop)
خواندن اطلاعات جداول پایگاه داده (Select)
درج و ویرایش مقادیر در جداول پایگاه داده (Insert & Update)
حذف مقادیر از جداول پایگاه داده (Delete)
ایجاد نسخه ی بکاپ از پایگاه داده و جداول آن
ریستور کردن پایگاه داده از بکاپ های گرفته شده
اجرای دستورات SQL در محیط PhpMyAdmin
روش های اتصال به پایگاه داده از طریق PHP با رابط های mysqli, mysql و PDO
آشنایی کلی با رابط MySQL
تشریح نحوه اتصال به پایگاه داده از طریق رابط MySQL
عدم استفاده از رابط MySQL به خاطر منسوخ شدن آن از ورژن 5.5 php به بعد
آشنایی کلی با رابط MySQLi
تشریح نحوه اتصال به پایگاه داده از طریق رابط MySQLi
آشنایی کلی با رابط PDO
تشریح نحوه اتصال به پایگاه داده از طریق رابط PDO
اجرای کوئری های دلخواه بر روی دیتابیس از طریق PHP و رابط MySQLi
مینی پروژه : ایجاد صفحه ای برای اجرای بیش از 20 کوئری مختلف SQL بر روی پایگاه داده با شیوه ای جالب
تمرین
فصل 14 : Cookie ها و Session ها در PHP و تفاوت کاربرد آنها
کوکی و سشن : تعریف مفاهیم و تشریح تفاوت های آن ها
تشریح کاربرد های کوکی و موارد استفاده از آن
توضیح در مورد آرایه ی $_COOKIE
کار با کوکی ها در PHP
ایجاد و تنظیم کوکی ها
خواندن و استفاده از کوکی ها
حذف و از بین بردن کوکی ها
نحوه ی تعیین زمان انقضای کوکی ها
مشاهده و مدیریت دستی کوکی ها در مرورگرهای مختلف
تشریح کاربرد های سشن و موارد استفاده از آن
توضیح در مورد آرایه ی $_SESSION
کار با سشن ها در PHP
ایجاد و تنظیم سشن ها
خواندن و استفاده از سشن ها
حذف و از بین بردن سشن ها
هش کردن اطلاعات حساس (مثل رمزهای عبور) برای امنیت بیشتر
مقایسه ی الگوریتم های مختلف هش کردن اطلاعات
مینی پروژه 1 : نمایش تعداد بازدید کاربر از صفحات مختلف و نمایش کل بازدیدهای او
مینی پروژه 2 : احراز هویت (Authentication) کاربران و پیاده سازی فرایند ورود و خروج با سشن ها
تمرین
فصل 15 : اصول خطایابی و Debug کردن برنامه ها: مشکلات رایج و راه حل رفع آنها
سطوح مختلف خطاها و پیام ها در زبان PHP
انواع مختلف خطاها در زبان PHP
خطاهای نوشتاری و تجزیه ای (Syntax Errors)
خطاهای مهلک (Fatal Errors)
خطاهای هشداری (Warning Errors)
خطاهای اطلاعاتی (Notice Errors)
تشریح و توضیح انواع خطاها با ارائه ی مثال های ریز
روش اصولی رفع خطاهای مختلف در PHP
خطاهای رایج و راه حل رفع آنها در زبان PHP
مشکلات نوشتاری در زبان PHP
مشکل نمایش سورس php در مرورگر
مشکل عدم نمایش خروجی کدهای PHP (فعال سازی نمایش ارورها)
مشکل در ورود پارامترهای مناسب برای توابع
مشکل عدم امکان تعریف دوباره ی توابع تکراری
مشکل عدم امکان دسترسی به ویژگی ها و متد های یک متغیر که Object نیست
مشکل شروع شدن سشن در مکان دیگر
اشتباه در استفاده از عملگر انتساب به جای عملگر تست برابری
مشکل در نحوه ی استفاده از عملگرهای == و ===
مشکلات موجود در کوئری های SQL
مشکل ارسال چندباره Header و دلایل بروز آن
مشکل نمایش کاراکترهای فارسی به شکل علامت سوال ؟؟؟؟؟؟؟ (در فایل ها و پایگاه داده)
مینی پروژه : اشکال زدایی و رفع ده ها خطا در یک سیستم مدیریت محتوای محبوب (وردپرس)
تمرین
فصل 16 : امنیت در PHP : شناسایی باگ های امنیتی و رفع آن ها
چرا و چگونه برنامه هایی ایمن بنویسیم ؟
شناخت انواع حملات و مشکلات امنیتی، پیشنیازی برای نوشتن برنامه های امن
دلایل ایجاد ناامنی در برنامه های PHP و راه حل رفع انها
قانون اول ! عدم اعتماد به داده ها کاربران
مشکلات در پیکربندی وب سرور
مشکلات ناشی از فعال بودن register_globals و نحوه ی غیر فعال سازی آن
عدم تنظیم صحیح نحوه ی گزارش خطاها
مشکلات موجود به دلیل عدم انتخاب انکودینگ استاندارد
ساختار نامناسب برنامه برای لود کردن فایلها
عدم استفاده از نام ها و مقادیر پیش فرض
حذف فایل های نصب اسکریپت ها پس از اتمام مراحل نصب
قابل پیشبینی بودن رفتار ، ساختار و کدهای شما و مشکلات آن
غیرفعال سازی و یا استفاده ی صحیح از Powerful Commands ها در php
انتخاب نوع و سایز مناسب برای ستون های جداول پایگاه داده
پسوردهای ضعیف و مشکلات ناشی از آن
خصوصیت های یک پسورد مطمئن و قوی
مشکلات امنیتی مربوط به دیتابیس و تزریق SQL یا SQL Injection
مشکلات ناشی از تزریق کد و داده های خطرناک (Cross-Site Scripting - XSS)
مشکلات ناشی از دزیده شدن Session ها و Cookie ها
حملات CSRF و راهکارهای مقابله با آن
کهنه بودن ورژن نرم افزارها و اسکریپت ها
استفاده از فریم ورک های معروف برای رفع بسیاری از نگرانی های امنیتی
مشکلات موجود در هاست های اشتراکی، تهیه ی هاست از شرکت های معتبر و متخصص
آماده ی حمله ی هکرها باشید ! چه مسائلی را باید همیشه رعایت کنم و به یاد داشته باشم ؟
آشنایی بیشتر با الگوریتم های کدگذاری و Hash کردن
فصل 17 : شئ گرایی در PHP و اصول برنامه نویسی Object Oriented
نگاهی به دنیای پیرامون ما
مشکلات و محدودیت های برنامه نویسی Functional
تشریح مفهوم شئ گرایی و مزیت های آن
تاریخچه و ویژگی های برنامه نویسی OOP در زبان PHP
اصول و مفاهیم برنامه نویسی شئ گرا :
مفهوم ارث بری (Inheritance)
مفهوم مخفی سازی (Encapsulation)
مفهوم چند شکلی (Polymorphism)
مفهوم انتزاع/تجرید (Abstraction)
شناخت عناصر مهم در برنامه نویسی شئ گرا :
طبقه بندی ها (Classes)
ویژگی ها (Properties)
عملیات و متد ها (Methods)
اشیاء (Objects or Instances)
ارائه مثال های کاربردی برای درک بهتر مفهوم شئ گرایی، کلاس های اشکال هندسی و افراد
نحوه ی نامگذاری کلاس ها، ویژگی ها و متدها
نحوه ی ایجاد یک کلاس در زبان PHP
عناصر تشکیل دهنده ی یک کلاس (ویژگی ها و متدها)
مفهوم کلمات کلیدی public و private و protected در تعریف ویژگی ها و متدهای کلاس
نحوه ی تعریف ویژگی های کلاس
نحوه ی تعریف متد های (رفتارهای) کلاس
نحوه ی ساختن نمونه ها (Instances) از یک کلاس تعریف شده : (کلمه کلیدی new)
عملگر -> در PHP
متد سازنده (Constructor) در برنامه نویسی شئ گرای PHP
متد تخریب کننده (Destructor) در برنامه نویسی شئ گرای PHP
مفهوم متدهای getter و setter در کلاس ها
مفهوم عناصر استاتیک و کلمات کلیدی self و static در کلاس های PHP
تشریح تفاوت بین $this و self
نحوه ی ارث بری کلاس ها در زبان PHP (به ارث بردن ویژگی های کلاس فرزند از کلاس پدر)
دسترسی به عناصر کلاس پدر با کلید parent
Override کردن متدهای کلاس پدر
کلیدهای const و final و دلایل استفاده از آنها
توضیحات تکمیلی در مورد کاربرد های کیورد static
افزودن قابلیت شمارش تعداد نمونه های ساخته شده از یک کلاس
کپی کردن اشیاء با استفاده از clone
عدم کپی شدن اشیاء با عملیات انتساب و رفتار این عملیات
تشخیص کلاس یک شئ و نمونه ی ساخته شده با عملگر instanceof
تعین نوع پارامترهای ورودی متد ها (type hinting)
مقداردهی خصوصیت های خاص فرزندان یک کلاس در متد سازنده ی آن
استفاده از متد سازنده ی کلاس پدر/والد در کلاس های فرزند
توضیحات تکمیلی در مورد کیورد final
جلوگیری از extend شدن یک کلاس با استفاده از کیورد final
ثابت های جادویی برای دریافت نام کلاس، متد و فضای نام کنونی
دریافت اطلاعات همه ی خصوصیات یک شئ و کلاس
دریافت مشخصات همه ی متدهای یک شئ و کلاس
آشنایی کلی با زبان UML و مدلسازی ساختار کلاس های یک سیستم
کلاس های abstract در PHP و کاربرد آنها
متدهای abstract و توضیح آن
رابط ها (interfaces) و دلیل استفاده از آن ها
آشنایی با مفهوم Object Iteration
اصول و مفاهیم برنامه نویسی شئ گرا :
مفهوم ارث بری (Inheritance)
مفهوم مخفی سازی (Encapsulation)
مفهوم چند شکلی (Polymorphism)
مفهوم انتزاع/تجرید (Abstraction)
Serialization : تبدیل اشیاء و متغیرهای مختلف به رشته و بازیابی آن ها
کاربرد مهم تبدیل اشیاء به رشته و ذخیره سازی مستقیم آنها در فایل، سشن و دیتابیس
دیدن کاربرد serialization در محبوبترین cms دنیا ، وردپرس
دیدن تمام متدها و خصوصیت های mysqli و PDO و نحوه ی جستجو برای یادگیری کاربرد آنها
طراحی ساختار کلاس های وسایل نقلیه
مینی پروژه : طراحی و پیاده سازی ساختار کلاس بندی اشیاء هندسی مختلف و تشریح مفاهیم پیشرفته ی شی گرایی در بستر آن
مینی پروژه : طراحی کلاس های وسایل نقلیه و تشریح مفاهیم شئ گرایی در روند پیاده سازی آن
تمرین
فصل 18 : مباحث متفرقه، کاربردی و پیشرفته
تشریح بعضی مطالب تکمیلی و جامانده
راه حل های رفع مشکل نمایش ؟؟؟؟؟ به جای حروف فارسی
پاسخ به برخی از سوالات مطرح شده
انجام serialization دلخواه با پیاده سازی رابط Serializable از پیش تعریف شده
تشریح مشکل لود کردن فایل کلاس های PHP شما برای استفاده
استفاده از تابع __autoload() برای لود کردن خودکار کلاس ها
استثناها و مدیریت آن ها در PHP (Exeption Handling)
تشریح مفهوم استثناها در PHP و دلایل استفاده از آن ها
تعریف یک کلاس برای ایجاد یک نوع خطای (استثنای) دلخواه
تشریح ساختار بلاک try...catch و دلایل و نحوه ی استفاده از آن
معرفی بعضی از استثناهای پیش تعریف شده ی PHP
عبارت های منظم و تطبیق الگوها (Regular Expressions & Pattern Matching)
تشریح مفهوم الگوها (Patterns) و دلایل استفاده از آن ها
معرفی یک وبسایت برای تست عبارت های منظم به صورت آنلاین
جداکننده ها، کاراکتر کلاس ها، تکرارکننده ها و ...
تشریح و نوشتن الگوی چندین داده ی خاص از جمله ایمیل، آدرس، و شماره تلفن
استخراج داده های خاص از یک رشته و متن بزرگ
توابع PHP برای کار با عبارت های منظم
استخراج تمامی ایمیل ها از یک متن بزرگ
استخراج تمام url ها از یک متن بزرگ
استخراج تمام شماره تلفن ها از یک متن بزرگ
اعتبارسنجی و پاکسازی داده ها با استفاده از عبارت های منظم
توضیح کتابخانه ی CURL و آشنایی با آن
فعال سازی ماژول curl در wamp
دریافت محتوای صفحات وب با استفاده از URL آنها
چند مثال جالب و کاربردی در استفاده از کتابخانه ی curl :
دریافت تعداد لایک ها و share های یک url در شبکه های اجتماعی با استفاده از curl
دریافت محتوا و سورس کد یک url با استفاده از کتابخانه ی curl
دریافت کل لینک های درون یک صفحه ی وب از طریق کدهای php
دریافت کل تصاویر درون صفحه ی وب با استفاده از curl
ارسال ایمیل از طریق PHP
استفاده از تابع پیشفرض mail در php
استفاده از کتابخانه ی phpmailer
توضیح کتابخانه ی GD و آشنایی با آن
فعال سازی ماژول GD در wamp
ایجاد و ویرایش تصاویر در PHP با استفاده از کتابخانه ی gd
چند مثال جالب و کاربردی در استفاده از کتابخانه ی GD :
ساخت یک عکس مستطیلی ساده و رنگبندی آن
ایجاد یک تصویر از متن ها
ایجاد یک تصویر و قرار دادن متن بر روی محیط یک دایره
تغیر سایز و کوچک و بزرگ کردن تصویر با استفاده از کتابخانه gd
برش یا Crop کردن تصویر با استفاده از GD
توضیح در مورد کدهای امنیتی (Captcha) در فرم ها
منطق و نحوه ی پیاده سازی و استفاده از کدهای امنیتی (CAPTCHA) در فرم ها
یک مثال کاربردی از کدهای امنیتی در یک فرم html
تشریح مفهوم وب سرویس و آشنایی با کاربردهای آن
استفاده از خدمات دیگر سایت ها با بهره گیری از وب سرویس آن ها
توضیح در مورد Soap و رابط اتصال به وب سرویس
چند مثال کاربردی در مورد استفاده از وب سرویس
دریافت آب و هوای یک شهر با استفاده از وب سرویس و کدهای php
دریافت اطلاعات مربوط به یک کشور خاص با php
دریافت اطلاعات مربوط یه مسابقات فوتبال با استفاده از وب سرویس آن
استفاده از پنل های SMS و ارسال SMS از طریق PHP با بهره گیری از وب سرویس
چند نمونه مثال کاربردی : ارسال SMS، دریافت اعتبار پنل SMS و ایجاد یک مخاطب و ...
درگاه پرداخت بانکی و توضیح در مورد روش و منطق پیاده سازی آن ها
توضیح و تشریح ایجاد کد درگاه پرداخت پارس پال
توضیح در مورد انجام کارهای اتوماتیک پس از تائید پرداخت موفقیت آمیز کاربر
توضیح و تشریح کد PHP درگاه پرداخت بانک ملت
نمونه کد درگاه بانک ملت به همراه سند PDF راهنمای آن
فریمورک های PHP و مدل MVC
آشنایی با مدل MVC
توضیح دلایل استفاده از مدل MVC
تشریح مفاهیم Model, View و Controller در مدل MVC و وظایف هر بخش
معرفی چند مورد از فریم ورک های MVC معروف PHP
آشنایی با مفهوم فریم ورک
تشریح مجموعه مزایای فریمورک ها برای استفاده در پروژه های PHP
توضیح یک نمونه از روند اجرای کار در فریمورک های PHP
آیا استفاده از فریمورک ها ضروری است ؟
فصل 19 : پیاده سازی پروژه های جامع، کاربردی و عملی
در این فصل با استفاده از آموخته های خود در طول دوره، از ابتدا تا انتها پروژه های عملی و کاملا واقعی را با هم پیاده سازی می نماییم . تمامی مراحل انجام پروژه شامل طراحی پایگاه داده، ایجاد پایگاه داده، ایجاد کدهای هسته ی پروژه، رعایت مسائل امنیتی و ... با زبانی ساده و کاملا روان توضیح داده می شوند . با انجام این 3 پروژه یک جمع بندی بسیار خوب از تمامی مباحث این دوره خواهید داشت و در عمل استفاده ی صحیح از آموخته های خود را خواهید دید . پس از انجام این پروژه ها به راحتی قادر خواهید بود پروژه های دیگر با موضوعات مختلف را نیز پیاده سازی نمایید .
تشریح مراحل و گام های انجام یک پروژه ی واقعی
پروژه های جامع Functional :
پروژه 1 : ایجاد یک سیستم پرسش و پاسخ (Ticketing System)
اهداف پروژه ی 1 :
آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش یک موجودیت (محتوا - سوال/جواب ) در پایگاه داده
آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربر (ادمین)
آشنایی با نحوه ی پیاده سازی قابلیت جستجو برای سایت (فرم جستجو)
آشنایی با منطق و نحوه ی صفحه بندی مطالب (سوالات) در برنامه های PHP
آشنایی با نحوه ی مدیریت سیستم بر روی رابط کاربری اصلی و عدم استفاده از پنل مدیریت
آشنایی با برخی ترفندهای امنیتی در پیاده سازی برنامه های PHP
آشنایی با نحوه ی آگاه سازی کاربران از طریق ایمیل و SMS پس از رویدادی خاص
پروژه 2 : ایجاد یک وبسایت گالری و فروش تصاویر با امکان پرداخت آنلاین و خرید تصاویر
اهداف این پروژه :
آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش موجودیت ها (کاربر، تصویر، سفارشات و ... ) در پایگاه داده
آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربران موجود در پایگاه داده
آشنایی با نحوه ی مدیریت سیستم در یک پنل جداگانه
آشنایی با مفهوم سبد خرید و نحوه ی پیاده سازی آن
آشنایی با محافت از فایل های فروشی و دانلود انها از طریق یک اسکریپت بررسی کننده ی خریدار !
آشنایی با علامت گذاری بر روی تصاویر برای جلوگیری از دانلود تصاویر اصلی و نمایش دمو از آنها
آشنایی با نحوه ی پیاده سازی قابلیت فراموشی رمز عبور و ریست کردن پسورد کاربر
آشنایی با نحوه ی دسته بندی محتوا در وبسایت ها
آشنایی با نحوه ی گزارش گیری از داده های موجود در پایگاه داده با کوئری ها SQL
آشنایی با نحوه ی استفاده از درگاه پرداخت و انجام عملیات اتوماتیک پس از پرداخت موفقیت آمیز (شبیه سازی درگاه پرداخت)
آشنایی با میزان پردازش کار ها در PHP و راه حل هایی برای نوشتن کدهایی بهینه تر از لحاظ منابع مصرفی
آشنایی با مسائل موجود در هنگام پرداخت آنلاین و استفاده از سبد خرید (قفل سبد، مشکل کوکی به تنهایی و ...)
انجام تمرین برای شما و تکمیل برخی قسمت های پروژه
پروژه ی جامع شئ گرا :
پروژه 3 : ایجاد سیستم مدیریت محتوا (وبلاگ) با برنامه نویسی OOP
قابلیت ها و امکانات این پروژه (وبلاگ - cms) :
وجود یک کاربر ادمین برای مدیریت محتوای وبلاگ
قابلیت ورود و خروج کاربر ادمین به وبلاگ
وجود یک پنل مدیریت که فقط کاربر ادمین می تواند به آن دسترسی داشته باشد
کارهایی که در پنل مدیریت می توان انجام داد عبارتند از :
ارسال یک مطلب جدید در دسته بندی خاص
مدیریت مطالب شامل حذف و ویرایش مطالب ارسال شده
مدیریت دسته بندی های وبلاگ
مدیریت نظرات مطرح شده برای مطالب
قابلیت حذف، تائید کردن و عدم تائید دیدگاه های ارسالی
قابلیت افزودن منوی جدید از طریق پنل مدیریت و نمایش آن در سایدبار وبلاگ
قابلیت حذف و ویرایش منوهای سایت
قابلیت مشخص کردن ترتیب نمایش منو ها در سایدبار
قابلیت ویرایش و حذف منوها از طریق پنل مدیریت
وجود صفحه ی تنظیمات وبلاگ در پنل مدیریت
قابلیت تغیر و آپدیت کردن تنظیمات وبلاگ
قابلیت هایی که در نمای ظاهری وبلاگ (CMS) وجود دارد :
نمایش آخرین مطالب ارسالی در صفحه نخست وبلاگ
قابلیت نمایش مطالب یک دسته بندی خاص
قابلیت جستجو در مطالب وبلاگ با تطبیق دقیق عبارت جستجو شده
قابلیت صفحه بندی مطالب وبلاگ (بخشی از آن به عنوان تمرین به شما محول شده)
قابلیت نمایش منوهای جستجو و دسته بندی ها در سایدبار سایت
قابلیت نمایش منوی های دلخواه ایجاد شده در پنل مدیریت بر اساس ترتیب آنها
قابلیت نمایش مطلب در یک صفحه ی خاص و جداگانه (صفحه مطلب)
قابلیت ارسال نظر و دیدگاه برای مطالب وبلاگ
قابلیت لایک کردن نظرات بازدیدکننده ها
هر کاربر فقط 1 بار می تواند به یک نظر رای(لایک) دهد .
محدودیتی برای مدیر وبلاگ در لایک کردن نظرات وجود ندارد و به هر تعداد می تواند لایک کند
امکان فعال کردن و غیرفعال کردن قابلیت لایک نظرات از طریق پنل مدیریت
فصل 20 : جمع بندی، ادامه کار و توصیه های مهم
جمع بندی مباحث دوره
توصیه هایی برای حرفه ای تر شدن
مشخص نمودن مسیر آینده ی شما : بعد از پایان این دوره چه کنم ؟
توجه: قیمت این دوره در سایت های دیگر 90 هزار تومان است اما ما تنها با پرداخت 10 هزار تومان این پکیج را در اختیار شما قرار می دهیم
قیمت: 10 هزار تومان!(به مدت محدود!)