در این تاپیک، سرفصلهای هرکدام از جلسات موجود در پکیج، اعلام خواهد شد.
رتبه موضوع:
کاربران در حال بازدید این موضوع: 3 مهمان
سرفصل های پکیج پایه تا پیشرفته PHP
|
21-02-1394، 10:53 ق.ظ
در این تاپیک، سرفصلهای هرکدام از جلسات موجود در پکیج، اعلام خواهد شد.
تشکر شده توسط: sm_pakdel
21-02-1394، 10:55 ق.ظ
سرفصلهای جلسه اول (مدت جلسه 2 ساعت و 50 دقیقه) - موضوع جلسه: آماده سازی محیط کار :
نصب ویندوز و لینوکس بصورت مجازی دانلود و نصب پکیج AMP در لینوکس دانلود و نصب پکیج XAMPP در ویندوز دانلود و نصب OpenJDK در لینوکس (موردنیاز برای NetBeans) دانلود و نصب Java Runtime Environment در ویندوز (موردنیاز برای Zend Studio) دانلود و نصب NetBeans IDE در لینوکس دانلود و نصب Zend Studio در ویندوز تعریف Permissionهای موردنیاز در لینوکس دانلود و نصب Firefox در ویندوز دانلود و نصب Themeهای موردنیاز در Zend Studio و NetBeans تست نصب صحیح پکیجهای AMP و XAMPP با فراخوانی مسیر localhost در مرورگر ----- همونطور که مشاهده میکنید، توی این پکیج همه چیز از صفر توضیح داده میشه تا جایی که نصب نرم افزارهای موردنیاز و نحوه تنظیم کردن سیستم عامل هم برای انجام کارها توضیح داده شده.
21-02-1394، 10:56 ق.ظ
سرفصلهای جلسه دوم (مدت جلسه 2 ساعت و 14 دقیقه) - موضوع جلسه: مفاهیم پایه :
تفاوت صفحات وب پویا با ایستا نحوه پردازش درخواست کاربر و تولید خروجی موردنظر با همکاری وب سرور و مفسر PHP آشنایی با دستور echo اولین قانون در PHP توضیحات در PHP متغیرها قواعد نامگذاری متغیرها تفاوت روشهای مقداری و ارجاعی در استفاده از متغیرها انواع متغیرها در PHP کار با رشته ها ادغام رشته ها تفاوت رشته های محصور در گیومه تک و جفت استفاده از عدد بعنوان رشته استفاده از رشته بعنوان عدد محاسبه طول رشته تفاوت کارکترهای Unicode و معمولی عملگرها در PHP عملگرهای ریاضی عملگرهای مقایسه ای عملگرهای منطقی عملگرهای بیتی اولویت و خاصیت انجمنی عملگرها ----- نکته: دقت کنید که وقتی برای این مباحث ساده دو ساعت و ربع توضیح و مثال ارائه شده، چقدر این مجموعه میتونه به تازه کارها کمک کنه. ضمناً مثالها در هر دو محیط لینوکس و ویندوز اجرا و تست میشن.
21-02-1394، 10:58 ق.ظ
سرفصلهای جلسه سوم (مدت جلسه 1 ساعت و 39 دقیقه) - موضوع جلسه: ساختارهای کنترلی و تکرار :
نصب ++Notepad و تنظیمات آن ساختار شرطی if...elseif...else کاربرد elseif و تفاوت آن با else if کاربرد else استفاده از آکولاد برای مشخص کردن بلاک دستورات بررسی خطاهای احتمالی کاربران در استفاده از ساختار if معرفی ساختار switch...case مواردی که نمیتوان از switch استفاده کرد نقش دستور break در ساختار switch و بررسی موارد کاربرد عدم استفاده از آن در ادغام چند case نکات امنیتی در استفاده از ساختار switch (بحث تبدیل نوع متغیر و حفره های امنیتی احتمالی که ممکن است ایجاد شود و راهکار جلوگیری از آن) معرفی دستور settype جهت تغییر نوع متغیر ساختار شرطی سه گانه : ? شرایط لازم برای امکان استفاده از این ساختار ساختار تکرار while موارد کاربرد نکات مهم در هنگام استفاده از while جهت پرهیز از حلقه بینهایت معرفی تنظیمات PHP در php.ini جهت تعیین حداکثر زمان اجرای اسکریپت معرفی ساختار کدنویسی استاندارد جهت آکولادها برای بهره بردن از امکانات IDEهای پیشرفته حلقه while معکوس (تکرار تا زمان عدم برقراری شرط و خروج به محض برقرارشدن شرط حلقه) معرفی ساختار تکرار do...while و تفاوت آن با while در بررسی شرط در پایان حلقه معرفی ساختار for بررسی جداگانه بخشهای Initialization و Conditions و Iteration در حلقه for نوشتن و اجرای بیش از یک دستور در بخشهای مختلف حلقه for حذف بخشهای مختلف حلقه for حلقه تو در تو خروج اضطراری از حلقه در شرایط خاص نادیده گرفتن یک دور از حلقه در شرایط خاص استفاده از PHP و حلقه های تودرتو برای تولید جدول ضرب (کاربرد PHP در تولید کد HTML سفارشی - رنگ آمیزی جدول و... - بصورت پویا) ----- نکته: در این آموزش، مطابق روال کلی این پکیج، برنامه ها در هر دو محیط لینوکس و ویندوز تست و اجرا میشن و هرجا تفاوتی لازم هست، گوشزد میشه. ازطرفی کلیدهای میانبر کاربرد و سودمند محیطهای برنامه نویسی به کار رفته در این آموزش هم معرفی میشن تا به شما در استفاده بهتر از امکانات برنامه ها و درنتیجه افزایش سرعت در کدنویسی، کمک کنیم.
21-02-1394، 10:59 ق.ظ
سرفصلهای جلسه چهارم (مدت جلسه 1 ساعت و 52 دقیقه) - موضوع جلسه: آرایه ها:
مفهوم آرایه تفاوت آرایه های PHP با سایر زبانها چرا آرایه ها در PHP اینقدر معروف و قدرتمند هستند؟ انواع روشهای مختلف تعریف آرایه در PHP (با کمک کروشه و دستور array) محاسبه تعداد عناصر آرایه (دستور count) تغییر عناصر آرایه حذف عناصر آرایه (معرفی دستور unset) آرایه با اندیس رشته ای ایجاد آرایه خالی نمایش کلی آرایه (معرفی و توضیح دستورات print_r و var_dump و var_export و تفاوت آنها) معرفی و توضیح دستور range پیمایش آرایه با foreach و روشهای مختلف کاربرد و محدودیتهای آن دستور each و تفاوت آن با ساختار foreach معرفی و توضیح دستورات کار با آرایه ها ----- دستور array_change_key_case دستور array_chunk دستور array_column دستور array_count_values دستور array_diff دستور array_key_exists دستور in_array دستور array_map دستور array_merge دستور array_replace دستور array_reverse دستور array_sum دستور array_unique دستور current دستور each دستور end دستور next دستور prev دستور reset دستور shuffle دستور sizeof دستور sort ----- آرایه های چند بعدی پیمایش آرایه های چند بعدی با حلقه های تودرتو کاربرد دستور explode در تبدیل رشته به آرایه کاربرد دستور implode در تبدیل آرایه به رشته چیدن عناصر آرایه در متغیرهای معمولی با دستور list پیمایش آرایه های دارای اندیس رشته ای با حلقه for (معرفی دستورات array_keys و array_values) روشهای مختلف استخراج عنصر تصادفی از آرایه (معرفی دستورات array_rand و rand) ----- در این آموزش مثل یک نوآموز در برخی موارد مشکلاتی در درک نحوه کارکرد دستورات پیش میاد (شبیه سازی شده) که با مطالعه مستندات و مراجعه به سایت رسمی php.net و خوندن توضیحات و بعضاً کامنتها، مشکل برطرف میشه تا افراد تازه کار، با بهترین دوستشون در مسیر یادگیری یعنی سایت php.net و نحوه راهنمایی گرفتن از اون، آشنا بشن.
21-02-1394، 11:00 ق.ظ
سرفصلهای جلسه پنجم (مدت جلسه 1 ساعت و 32 دقیقه) - موضوع جلسه: متغیرها و توابع :
متغیرهای متغیر (Variable variables) داده و کد: دو رکن اساسی برنامه نویسی مفهوم و نقش تابع تعریف تابع در PHP ارسال مقادیر ورودی برای تابع محدوده اعتبار متغیرها (Scope) تشریح تفاوت پارامتر و آرگومان استفاده از پارامترهای ارجاعی دریافت خروجی از تابع استخراج بیش از یک خروجی از تابع با کمک پارامترهای ارجاعی خروج از تابع بدون دریافت مقدار متغیرهای ایستا (static) در توابع توابع متغیر توابع بدون نام حذف توابع بدون نام تعریف شده دستورات کار با توابع: ----- دستور call_user_func_array دستور call_user_func دستور create_function دستور func_get_arg دستور func_get_args دستور func_num_args دستور function_exists دستور get_defined_functions دستور register_shutdown_function دستور register_tick_function دستور unregister_tick_function ----- توضیح مفهوم callback تعریف پارامترهای اختیاری (با مقدار پیشفرض) نحوه رد کردن (Skip) پارامترهای اختیاری بررسی وجود Named Parameters در PHP با جستجو در اینترنت (و نتیجه عدم وجود) توضیح روش جایگزین جهت شبیه سازی قابلیت Named Parameters نوشتن کد معادل تابع array_map با کمک توابع متغیر ----- توی این جلسه، بصورت عملی یک مشکل که در نهایت هم طی جستجوهای انجام شده، مشخص میشه با امکانات موجود زبان PHP قابل حل نیست، نشون داده شده و راه حل جایگزینش معرفی میشه تا بینندگان اگه دیدن قابلیتی وجود نداره، دچار اضطراب نشن و بدونن برنامه نویس، میتونه درصورت تمایل با کمک ابزارهای موجود، قابلیت دلخواه خودش رو اضافه کنه.
21-02-1394، 11:02 ق.ظ
سرفصلهای جلسه ششم (مدت جلسه 1 ساعت و 50 دقیقه) - موضوع جلسه: پردازش ورودیهای کاربر :
دسترسی به متغیرهای سراسری از داخل تابع متغیرهای فوق سراسری (SuperGlobal) در PHP تشریح کامل تفاوت نحوه ارسال مقادیر با روشهای Post و Get نقاط ضعف و قوت روش Get نقاط ضعف و قوت روش Post معرفی آرایه های فوق سراسری POST_$ و GET_$ دریافت مقادیر عناصر text دریافت مقادیر عناصر password حذف حساسیت نام کاربری به بزرگی و کوچکی حروف دریافت مقادیر عناصر radio دریافت مقادیر عناصر checkbox دریافت مقادیر عناصر select عنصر select با قابلیت انتخاب چندگانه و پردازش آن بصورت آرایه در PHP دریافت مقادیر عناصر hidden خنثی سازی کارکترهای خطرناک در ورودیهای کاربر آپلود فایل و تغییرات لازم در فرم معرفی آرایه فوق سراسری FILES_$ انواع خطا در آپلود فایل علت لزوم بررسی مجدد اندازه فایل در سمت سرور آپلود چند فایل بصورت همزمان امنیت آپلود (پسوندهای چندگانه و مجوزهای اجرا) بحث مجوزهای پوشه آپلود در لینوکس جهت ایجاد امکان ذخیره سازی فایل در پوشه توسط PHP توضیح دستورات chmod و chown و chgrp در PHP و لینوکس معرفی دستور shell_exec در PHP آرایه فوق سراسری REQUEST_$ و یادآوری نکات امنیتی مربوط به استفاده از آن
21-02-1394، 11:03 ق.ظ
سرفصلهای جلسه هفتم (مدت جلسه 1 ساعت و 25 دقیقه) - موضوع جلسه: کار با فایلها و پوشه ها :
توضیح یک مورد درخواستی توسط کاربران: پردازش فرمهایی با چند دکمه submit و تشخیص دکمه فشرده شده ----- توضیح مراحل سه گانه کار با فایلها باز کردن فایل در PHP (دستور fopen) مدیریت خطاهای احتمالی (معرفی دستورات die و exit و ساختار @) خواندن از فایل (دستورات fgetc و fgets و fread و file و file_get_contents) نوشتن در فایل (دستورات fputs و fwrite و file_put_contents) تشخیص رسیدن به انتهای فایل (دستور feof) بستن فایل (دستور fclose) معرفی دستورات کار با فایل: ----- دستور basename دستور chgrp دستور chmod دستور chown دستور clearstatcache دستور copy دستور delete دستور dirname دستور disk_free_space دستور disk_total_space دستور fflush دستور fgetcsv دستور fgetss دستور file_exists دستور fileatime دستور filectime دستور filegroup دستور fileinode دستور filemtime دستور fileowner دستور fileperms دستور filesize دستور filetype دستور flock دستور fseek دستور ftell دستور ftruncate دستور glob دستور is_dir دستور is_executable دستور is_file دستور is_link دستور is_readable دستور is_uploaded_file دستور is_writable دستور mkdir دستور pathinfo دستور realpath دستور rename دستور chdir دستور glob دستور opendir دستور scandir دستور closedir دستور readdir دستور rewind دستور tempnam دستور tmpfile دستور touch دستور unlink ----- ساخت گالری عکس ساده ولی زیبا با کمک PHP و HTML و CSS تست گالری و تنظیمات مربوط به مجوزها در محیط لینوکس
21-02-1394، 11:04 ق.ظ
سرفصلهای جلسه هشتم (مدت جلسه 2 ساعت و 25 دقیقه) - موضوع جلسه: دیتابیس (پایگاه داده ها) :
توضیح مفهوم پایگاه داده ها و تفاوت آن با سیستم فایل معمولی توضیح مفهوم DBMS و پایگاه داده رابطه ای و RDBMS معرفی چند نمونه از DBMSهای رایج تشریح مفاهیم دیتابیس، جدول، فیلد و رکورد توضیح علت کاربرد گسترده MySQL در کنار PHP آشنایی با محیط خط فرمان MySQL آشنایی با محیط phpMyAdmin ساخت دیتابیس و مفهوم Collation و معرفی کدگذاریهای رایج برای زبان فارسی نحوه اجرای دستورات SQL در phpMyAdmin ایجاد جدول جدید در محیط phpMyAdmin اضافه کردن فیلدهای دلخواه به جدول معرفی ستون Name معرفی ستون Type معرفی ستون Length/Values معرفی ستون Default و تشریح مقادیر مختلف آن (معرفی مفهوم Timestamp) معرفی ستون Collation معرفی ستون Attributes و تشریح مقادیر مختلف آن معرفی ستون Null معرفی ستون Index و تشریح انواع Primary و Unique و Index و FullText معرفی ستون A_I یا Auto Increment معرفی ستون Comments معرفی ستون MIME type معرفی ستون Browser transformation معرفی تفاوتهای Storage Engineهای مختلف مثل InnoDB و MyISAM و نقش و کاربرد و مزایا و معایب هرکدام با ارجاع به سایت dev.mysql.com درج رکوردهای موردنظر در داخل phpMyAdmin معرفی روشهای مختلف اتصال از PHP به MySQL (شامل mysql و mysqli و PDO) تشریح افزونه mysql و موکول شدن mysqli و PDO به بعد (همراه با توضیح علت - عدم آشنایی کاربران برنامه نویسی شئ گرا تاکنون) اتصال به MySQL از درون PHP انتخاب دیتابیس موردنظر روش پنهان کردن خطاهای پیشفرض و نمایش خطاهای دلخواه اجرای کوئری دلخواه و گرفتن نتایج از MySQL تشریح مفهوم Fetch کردن و روشهای مختلف آن (با اندیس عددی و رشته ای و شئ و...) آزادسازی حافظه اختصاص داده شده به خروجی MySQL بعد از استفاده بستن اتصال به MySQL تشریح علت بروز خطای Too Many Connections در MySQL مشکل نمایش حروف فارسی بصورت ????? و راه حل برطرف کردن آن پیاده سازی چهار عمل اصلی دیتابیس (CRUD مخفف Create و Read و Update و Delete) در برنامه بصورت عملی تغییر در مقدار فیلد Auto Increment جلوگیری از ارسال مجدد فرم با کمک دستور header و عمل Redirect بهره گیری از Javascript در نمایش پیغام هشدار قبل از حذف رکوردها اجرای یک نمونه حمله SQL Injection ساده جهت آشنایی کاربران با میزان خطر و آموزش نحوه رفع این حفره امنیتی تست برنامه در محیط لینوکس دانلود و نصب آخرین نسخه phpMyAdmin بصورت دستی در محیط لینوکس تنظیمات config.inc.php جهت کارکرد صحیح phpMyAdmin ----- توضیح: در این آموزش یکی دیگه از مهمترین منابع آموزشی و درحقیقت یک دوست خوب دیگه برنامه نویسان وب یعنی dev.mysql.com معرفی میشه.
21-02-1394، 11:04 ق.ظ
سرفصلهای جلسه نهم (مدت جلسه 2 ساعت و 2 دقیقه) - موضوع جلسه: کوکی (Cookie) و سشن (Session) :
یک نکته مهم در بحث Escape کردن اطلاعات در MySQL در زمان استفاده از متون فارسی توضیح مفهوم کوکی (Cookie) و کاربرد آن توضیح نحوه کارکرد سیستم کوکی و رفتار مرورگر در مدیریت آن تعریف کوکی در PHP (دستور setcookie) خواندن اطلاعات کوکی با کمک آرایه فوق سراسری COOKIE_$ تعیین طول عمر برای کوکی به دو روش بازه زمانی و تاریخ مشخص روش حذف کوکی مشاهده کوکی در مرورگر و حذف دستی آن پیاده سازی سیستم Login و Logout با کوکی همراه با قابلیت Remember me یک نکته مهم درخصوص بدست آوردن اطلاعات کوکی بعد از تعریف کردن تشریح مفهوم Outbut Buffering و نقش آن در مدیریت اطلاعات تفاوت کدگذاری UTF-8 و UTF-8 without BOM و نحوه رفع خطای معروف Cannot modify headers و خطاهای مشابه آن معرفی سشن تفاوتهای سشن و کوکی و نقاط قوت و ضعف هرکدام معرفی تنظیمات مختلف سشن در php.ini ارتباط بین سشن و کوکی مشاهده فایلهای سشن ایجاد شده در سیستم نقش Session ID کاربرد دستور session_start تعریف و خواندن اطلاعات سشن با کمک آرایه فوق سراسری SESSION_$ روش حذف سشن معرفی دستور session_unset معرفی دستور session_destroy معرفی حملات Session Hijacking و Session Fixation و نحوه جلوگیری از آنها (معرفی دستور session_regenerate_id) پیاده سازی سیستم Login و Logout با سشن اجرای امن دستور session_start ایجاد کاربر اختصاصی برای دیتابیس و تعیین حق دسترسی ایجاد فایل تنظیمات نحوه معرفی فایل تنظیمات به سایر اسکریپتها معرفی دستورات include و require و include_once و require_once و تفاوت آنها کاربرد دستور define در تعریف ثابت و تفاوت ثابتها با متغیرها کاربرد دستور defined معرفی یک ساختار ساده، زیبا و کارآمد جهت جلوگیری از تعریف مجدد ثابتها قراردادن توابع و ثابتهای کار با دیتابیس در فایل تنظیمات و فراخوانی آنها در سایر فایلها معرفی نقطه ضعف الگوریتم هش md5 و برخی ابهامات درباره میزان امنیت آن تست و اجرای برنامه ها در محیط لینوکس و نحوه یافتن فایلهای تنظیمات و سشن در لینوکس
21-02-1394، 11:04 ق.ظ
سرفصلهای جلسه دهم (مدت جلسه 4 ساعت و 10 دقیقه) - موضوع جلسه: یک پروژه عملی - وبلاگ :
دریافت فایلهای پیشنیاز برای رهایی از طراحی ظاهر سایت (Bootstrap + FontAwesome) طراحی ساختار دیتابیس ایجاد ارتباط بین جداول و توضیح مفهوم کلید خارجی ایجاد قید در دیتابیس و تشریح مفهوم آن و انواع مختلف قید استفاده از دو حالت Relation View و سربرگ Designer برای طراحی قیدها و ارتباط بین جداول تنظیمات phpMyAdmin برای فعال شدن سربرگ Designer ایجاد یک پروژه جدید در Zend Studio معرفی سرور Apache برنامه XAMPP و برنامه های مشابه به Zend Studio جهت تست و اجرای پروژه ایجاد فایل تنظیمات ایجاد پوشه های مختلف جهت نگهداری فایلهای موردنیاز پروژه ایجاد فایلهای جداگانه برای سرصفحه و پاصفحه مشترک در تمام صفحات سایت ایجاد فایل حاوی توابع کار با دیتابیس ایجاد فایل حاوی توابع کاربردی برنامه معرفی یک روش تولید رمز امن و معرفی مفاهیم Salt و Pepper معرفی یک روش امن جهت تولید تابع Redirect درج اطلاعات تست بصورت دستی در دیتابیس و نمایش در مکان مناسب در قالب سایت استخراج دسته بندی ها نمایش آخرین مطالب در صفحه اصلی سایت نمایش مطالب مربوط به هر دسته بندی در صفحه مربوطه تولید تاریخ از روی برچسب زمانی معرفی کتابخانه JDF و نحوه تولید تاریخ هجری شمسی از روی برچسب زمانی نمایش نظرات مربوط به هر مطلب نمایش پاسخهای مربوط به هر نظر تولید فرم درج نظر جدید توسط کاربران با قابلیت انتخاب نظر والد (پاسخ به یک نظر) Escape کردن گروهی مقادیر واردشده توسط کاربر و انتساب به متغیرهای مجزا جلوگیری از درج مجدد نظر با Refresh شدن صفحه تنظیم کردن Zend Studio جهت ذخیره سازی خودکار با فرمت UTF-8 without BOM ایجاد بخش مدیریت مدیریت ورود و خروج کاربران ایجاد منوی کناری بخش مدیریت مدیریت دسته بندی ها ایجاد دسته بندی جدید ویرایش دسته بندی موجود حذف دسته بندی نمایش / عدم نمایش دسته بندی اصلاح بخش کاربری سایت جهت عدم نمایش دسته بندی پنهان شده و مطالب مربوطه تعریف تمرین برای استفاده کنندگان محترم از این بسته آموزشی ----- نکته: در این جلسه از آموزش بطور عملی یک پروژه جلوی چشم شما انجام میشه و با روش انجام کارهای مختلف و پردازش ورودیهای کاربر و Escape کردن و مواردی که نیاز به Escape نداره و... آشنا میشین. ازطرفی چند مورد از امکانات پروژه که مشابهشون توی همین جلسه انجام میشه، بعنوان تمرین بعهده شما گذاشته میشه تا خودتون رو محک بزنید. توی این پروژه چون بصورت رویه گرا انجام میشه و از شئ گرایی داخلش استفاده نمیکنیم، عملاً خواهید دید که خیلی جاها دست و بالمون بسته است ولی با اینحال هیچ اشاره ای به شئ گرایی نمیشه (برخلاف آموزشهای موجود در سایت ncis.ir که یکی از فایلها بصورت شئ گرا نوشته شده بود) و از جلسه بعد بطور کامل به شئ گرایی خواهیم پرداخت و بعد از کسب دانش پایه لازم، پروژه بعدی یعنی فروشگاه اینترنتی رو با کمک شئ گرایی و امکانات قدرتمندی مثل وراثت و رابطها و... پیاده سازی خواهیم کرد.
21-02-1394، 11:05 ق.ظ
سرفصلهای جلسه یازدهم (مدت جلسه 1 ساعت و 58 دقیقه) - موضوع جلسه: مقدمات برنامه نویسی شئ گرا :
مفهوم برنامه نویسی شئ گرا و تفاوت آن با برنامه نویسی رویه گرا مشاهده یک نمونه کد شئ گرا و مقایسه با همان کد با ساختار رویه گرا نواقص و مشکلات روش رویه گرا و راه حل روش شئ گرا برای رفع آنها تشریح معماری برنامه نویسی شئ گرا (مفاهیم خصوصیت، رفتار و ارتباط) و توضیح کامل با مثال تشریح مفهوم کلاس و تفاوت آن با شئ با ارائه چندین مثال کاربردی مختلف جهت درک بهتر توضیح مقدماتی مفهوم وراثت در کلاس ها و مفهوم گسترش (توسعه) یک کلاس توسط کلاس دیگر نحوه ایجاد یک کلاس در PHP مفهوم فیلد مفهوم متد مفهوم عملگر <- متد سازنده (با پارامتر ورودی و بدون آن و با پارامترهای اختیاری و مقادیر پیشفرض) تشریح مفهوم کپسوله سازی کاربرد آن (معرفی و توضیح سطوح دسترسی private و public) توضیح مفهوم کلاس بعنوان دربرگیرنده فیلدها و متدها با تصویر معرفی ساختارهای نامگذاری PascalCase و camelCase معرفی استاندارد نامگذاری کلاسها و نحوه قراردادن کلاسها در فایلهای PHP دو مثال عملی (کلاس Point و Student) دسترسی متدها به متدهای دیگر دسترسی متدها به فیلدها توضیح کاربرد و نحوه کمک رسانی متدهای private به متدهای public (مفهوم Under the hood) متد مخرب و تفاوتهای آن با متد سازنده و اجرای یک نمونه استفاده کاربردی تست و اجرای کدهای نوشته شده در محیط ویندوز و لینوکس توضیح کاربرد برنامه نویسی رویه گرا در کنار برنامه نویسی شئ گرا ----- این جلسه رو بعنوان نمونه (Demo) انتخاب کردم (لینک دانلود) تا دوستان با کیفیت مطالب ارائه شده در این مجموعه آشنا بشن و ببینید همین مباحث به ظاهر مقدماتی و ساده، چقدر نکات و توضیحات ریز داره که به تازه کارها کمک میکنه توی یک جلسه، مفاهیم کلی برنامه نویسی شئ گرا رو به خوبی درک کنن. ازطرفی با کیفیت صدا و تصویر مجموعه هم آشنا میشین.
21-02-1394، 11:05 ق.ظ
سرفصلهای جلسه دوازدهم (مدت جلسه 1 ساعت و 50 دقیقه) - موضوع جلسه: ادامه مباحث شئ گرایی :
مفهوم و کاربرد فیلدها و متدهای استاتیک در کلاس (معرفی کلمات کلیدی static و self و ساختار :: ) یک نکته مهم درخصوص عناصر استاتیک تعریف ثابت در کلاس (معرفی کلمه کلیدی const) یک نکته مهم درخصوص سطح دسترسی و حوزه اعتبار و نوع ثابتهای کلاس سربارگذاری دستیاب های Get و Set با کمک توابع جادویی PHP (معرفی ثابتهای Get__ و Set__) سربارگذاری متدهای کلاس با کمک تابع جادویی Call__ در PHP بارگذاری خودکار کلاسها (معرفی مفاهیم Eager Loading و Lazy Loading و کاربرد دستور spl_autoload_register) وراثت در برنامه نویسی شئ گرا (تعریف کلاس والد و فرزند) معرفی نحوه ارث بردن کدها (معرفی سطح دسترسی protected) دسترسی به عناصر کلاس والد با کمک کلمه کلیدی parent معرفی مفهوم چندریختی (Polymorphism) جلوگیری از بازنویسی یک متد خاص یا مشتق شدن از یک کلاس بطور کامل (معرفی کلمه کلیدی final) کلاس abstract و قابلیتها و محدودیتهای آن رابط (interface) و تفاوتهای آن با کلاس abstract بررسی تطابق نوع یک شئ با یک کلاس یا مشتق شدن از یک کلاس با دستورات instanceof و is_a
21-02-1394، 11:05 ق.ظ
سرفصلهای جلسه سیزدهم (مدت جلسه 1 ساعت و 48 دقیقه) - موضوع جلسه: ادامه مباحث شئ گرایی :
گرفتن اطلاعات درباره کلاسها (معرفی دستورات class_exists و get_declared_classes) گرفتن اطلاعات درباره متدهای کلاس (معرفی دستورات method_exists و get_class_methods) گرفتن اطلاعات درباره فیلدهای کلاس (معرفی دستورات property_exists و get_class_vars) بررسی نوع یک شئ یا کلاس (معرفی تفاوت دستورات instanceof و is_a) پیدا کردن نام کلاس یک شئ (معرفی دستور get_class و نحوه کاربرد آن در پیدا کردن نام کلاس اصلی و کلاس والد) نحوه مدیریت خطا در PHP5 به روش شئ گرا (معرفی کلاس Exception و توسعه آن برای تولید کلاسهای سفارشی) ساختار try...catch مدیریت خطاهای چندگانه تغییر سیستم مدیریت خطای PHP (ارسال خطاها به ایمیل، ذخیره در فایل و... برحسب نوع دلخواه خطاها) تعریف پیمایشگر (Iterator) برای پیمایش عناصر کلاس توسط حلقه foreach بصورت دلخواه (پیاده سازی رابط Iterator) تشریح ساختار رابط Iterator و نحوه کار foreach به دو روش اندیس عددی و رشته ای معرفی و توضیح متد Rewind معرفی و توضیح متد Valid معرفی و توضیح متد Current معرفی و توضیح متد Key معرفی و توضیح متد Next تبدیل شئ به رشته و بازگرداندن به حالت قبل جهت ذخیره در دیتابیس و... (معرفی دستورات serialize و unserialize) تشریح ساختار داخلی Serialization
21-02-1394، 11:05 ق.ظ
سرفصلهای جلسه چهاردهم (مدت جلسه 40 دقیقه) - موضوع جلسه: ادامه مباحث شئ گرایی :
تکمیل ساختار try...catch و معرفی بلاک finally استفاده از آرایه ها بصورت شئ (تبدیل آرایه به شئ با کمک کلاس ArrayObject) توضیح متد append در کلاس ArrayObject توضیح متد getIterator در کلاس ArrayObject توضیح متد offsetExists در کلاس ArrayObject توضیح متد offsetGet در کلاس ArrayObject توضیح متد offsetSet در کلاس ArrayObject توضیح متد offsetUnset در کلاس ArrayObject دسترسی به عناصر آرایه بصورت فیلدهای شئ (توسعه کلاس ArrayObject با کمک وراثت) استفاده از اشیاء بصورت آرایه (پیاده سازی رابط ArrayAccess) توضیح متد offsetExists در رابط ArrayAccess توضیح متد offsetGet در رابط ArrayAccess توضیح متد offsetSet در رابط ArrayAccess توضیح متد offsetUnset در رابط ArrayAccess توضیح یک نکته مهم در کپی گرفتن از اشیاء (دسترسی ارجاعی به اشیاء) نحوه ایجاد یک کپی مستقل (مقداری) از اشیاء (معرفی دستور clone) معرفی مفهوم Model Chaining یا زنجیرسازی متدها و آموزش نحوه پیاده سازی آن ----- نکته: این جلسه پایان بخش مقدماتی آموزش شئ گرایی هست و شما رو برای انجام پروژه عملی آماده میکنه و بعد از جلسه پانزدهم که به انجام پروژه عملی دوم یعنی فروشگاه اینترنتی اختصاص داره، مباحث پیشرفته تر شئ گرایی مثل معماریهای مختلف ازقبیل ActiveRecord و MVC و Singleton و Factory و Strategy و Adapter و... و همچنین کتابخانه استاندارد PHP یعنی SPL و ساختار داخلی MySQLi و PDO و ADOdb و... توضیح داده میشه و در ادامه هم در جلسات بعدی به سراغ مباحث پیشرفته تر مثل کار با XML و وب سرویسها و سوکت و cURL و... خواهیم رفت. |
|