تالار گفتمان nCIS.ir

نسخه‌ی کامل: سرفصل های پکیج پایه تا پیشرفته PHP
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
صفحات: 1 2
سرفصلهای جلسه پانزدهم (مدت جلسه 3 ساعت و 36 دقیقه) - موضوع جلسه: پروژه فروشگاه اینترنتی بصورت شئ گرا :
تجزیه و تحلیل نیازهای پروژه و طراحی ساختار جداول و ارتباط بین آنها
ایجاد دیتابیس و کاربر مربوطه و تولید جداول و افزودن قیدها و ساختار Relational
ایجاد ساختار فایلها و پوشه ها و تنظیمات مربوط به Bootstrap و FontAwesome
واردکردن پروژه ساخته شده بصورت دستی به درون محیط Zend Studio
ایجاد ساختار Lazy Loading در پروژه
تولید کلاس مدیریت کار با دیتابیس (کلاس DB)
ایجاد کلاس Category و توسعه کلاس DB با وراثت جهت جلوگیری از درج مستقیم کوئری در خارج از کلاسهای کار با دیتابیس
ایجاد چهار عمل اصلی CRUD (اعمال Create و Read و Update و Delete) در کلاس Category
آموزش نحوه ساخت Query Builder
ایجاد یک رابط (Interface) مشترک جهت هماهنگی و یکسان سازی الگوی تمام کلاسهای کار با دیتابیس
فرستادن کد از Zend Studio به ++Notepad جهت استفاده از قابلیت Multi-Edit آن و بازگرداندن کد تغییریافته به ZS
معرفی ساختار درج کامنت PHPDoc و مزایای آن
نمایش دسته بندی های اصلی و فرعی
نمایش محصولات هر دسته بندی همراه با تصویر و سایر اطلاعات مربوطه
تولید لینک اضافه کردن به سبد خرید
تولید صفحه سبد خرید
بازنویسی قالبهای Bootstrap بدون تغییر در فایلهای CSS اصلی
نمایش محصولات همراه با تعداد سفارش و لینک حذف از سبد خرید
محاسبه و نمایش مبلغ کل سفارش
معرفی دستور mysql_insert_id جهت استخراج آخرین ID تولیدشده خودکار و توضیح قابلیت مدیریت سشن در MySQL
تعریف تمرین برای کاربران محترم (ثبت سفارشات و بخش مدیریت) و ارائه توضیحات لازم برای انجام آن
-----
توضیح: شاید در نگاه اول، تمرین آخر پروژه سنگین بنظر برسه ولی اگه مطالب پکیج رو با دقت دنبال کرده باشین، تمام موارد موردنیاز تا اینجا قبلاً مطرح شده و مشابهش رو انجام دادیم و درنتیجه کاربران محترم، به جای اینکه مطالب رو حفظ کنن، با نحوه تغییر کدها و پارامترهای مسئله جهت انجام پروژه های مشابه آشنا میشن.
سرفصلهای جلسه شانزدهم (مدت جلسه 3 ساعت و 2 دقیقه) - موضوع جلسه: الگوهای طراحی (معماری) :
معرفی مفهوم الگوی طراحی و قدمت آن در برنامه نویسی
تشریح و پیاده سازی انواع مختلف الگوهای طراحی زیر:
Strategy
Factory
Abstract Factory
Adapter
Singleton
Iterator
Observer
Decorator
ActiveRecord
Facade
معرفی اجمالی MVC و توضیح علت توضیح کامل آن در جلسات آینده
معرفی منابع و مراجع مناسب جهت یادگیری بهتر الگوهای طراحی
-----
توضیح: نکته حائز اهمیت در این جلسه اینه که تمام معماریهای فوق با کدهای PHP پیاده سازی میشن و کدهای قابل اجرا تولید میشه و صرفاً توضیحات تئوریک مطرح نشده. بخاطر همین هم این جلسه زمان زیادی برده. برای مثال، معماری ActiveRecord مشابه اون چیزی که توی فریمورکهای مطرح مثل Yii وجود داره، از صفر پیاده سازی میشه.
سرفصلهای جلسه هفدهم (مدت جلسه 2 ساعت و 22 دقیقه) - موضوع جلسه: دیتابیس با طعم شئ گرا :
آموزش روشهای جلوگیری از ایجاد شئ از کلاس توسط کلمه کلیدی new و معرفی کاربردهای آن
معرفی افزونه MySQLi و تفاوتهای آن با افزونه MySQL
توضیح مختصر درباره منسوخ شدن افزونه MySQL روی PHP (و نه خود MySQL)
نصب و فعالسازی افزونه های MySQLi و PDO در ویندوز و لینوکس
اتصال به دیتابیس در MySQLi
اجرای کوئری ساده در MySQLi
استخراج فیلدها به روشهای مختلف در MySQLi
انتساب خودکار فیلدها به متغیرهای معمولی (دستور bind_result)
مفهوم Prepared Statement و مزایا و معایب آن
استفاده از Prepared Statement در MySQLi
انتساب پارامتر به Prepared Statement (دستور bind_param)
معرفی نوع داده BLOB و نمایش کاربرد آن در ذخیره سازی تصاویر و... در دیتابیس با کمک MySQLi
توضیح ساختار دستور send_long_data در MySQLi
نمایش تصاویر ذخیره شده در دیتابیس در صفحه
مفهوم Stored Procedure و مزایا و معایب آن
ایجاد یک SP در محیط phpMyAdmin
استفاده از SP در MySQLi
ارسال پارامتر برای SP
معرفی PHP Data Objects یا به اختصار PDO
مزایا و معایب PDO
اتصال به دیتابیس در PDO
اجرای کوئری ساده در PDO
استفاده از Prepared Statement در PDO
انتساب پارامتر به Prepared Statement (دستورات bind_param و bind_value)
استفاده از SP در PDO
انتساب خودکار فیلدها به متغیرهای معمولی در PDO (دستور bindColumn)
معرفی راههای مختلف تعیین روش استخراج (Fetch) اطلاعات در PDO
مفهوم DAL یا Data Abstraction Layer
معرفی AdoDb
استفاده از AdoDb برای استخراج اطلاعات
پیاده سازی الگوی طراحی ActiveRecord با کمک AdoDb
-----
توضیح: پایه برنامه نویسی دیتابیس شما با کمک شئ گرایی در این جلسه تثبیت خواهد شد.
سرفصلهای جلسه هیجدهم (مدت جلسه 1 ساعت و 43 دقیقه) - موضوع جلسه: کتابخانه استاندارد PHP یا SPL :
معرفی SPL و نمایش کلاسها، رابطها و توابع داخلی تعریف شده در آن
معرفی و توضیح کلاسها و رابطهای زیر و ساختار داخلی آنها و ارائه مثال عملی نحوه استفاده از آنها:
ArrayObject : کلاس پایه جهت تبدیل آرایه به شئ
ایجاد کلاس جدید ExtendedArrayObject جهت توسعه امکانات ArrayObject
ArrayIterator : کلاس با قابلیت حذف و اضافه کردن عناصر در حین پیمایش
DirectoryIterator : کلاس ویژه پیمایش پوشه ها
RecursiveDirectoryIterator : کلاس برای پیمایش بازگشتی یک پوشه و تمام پوشه های فرعی
RecursiveIteratorIterator : کلاس جهت پیمایش درون پیمایشگرهای بازگشتی
AppendIterator : کلاس برای ادغام چند پیمایشگر و پیمایش همه آنها به ترتیب
FilterIterator : کلاس جهت پیمایش همراه با اعمال فیلتر و رد کردن عناصری که با فیلتر تطابق ندارند
LimitIterator : کلاس به منظور پیمایش بخشی از عناصر با مشخص کردن نقطه شروع و تعداد عنصر موردنظر
NoRewindIterator : کلاس برای پیمایش بدون بازگشت عناصر
SeekableIterator : رابط برای اعطای قابلیت جهش به مکان خاص در عناصر
RecursiveIterator : رابط جهت اعطای قابلیت پیمایش بازگشتی به یک کلاس
SplFileObject : کلاس جهت مدیریت فایلها
SplFileInfo : کلاس جهت استخراج اطلاعات درباره فایلها
SplObjectStorage : کلاس جهت ایجاد مخزنی از اشیاء مختلف
-----
توضیح: علاوه با تشریح کامل مفاهیم فوق همراه با مثال، نحوه دسترسی به مستندات و اخذ راهنمایی درخصوص سایر کلاسها، رابطها و توابع موجود توی SPL رو در این جلسه یاد میگیرین. همچنین توضیحات خوبی درخصوص استفاده از این امکانات بجای بازنویسی اونها بصورت دستی و کمک گرفتن از موارد موجود جهت افزایش Performance برنامه هاتون ارائه میشه.
سرفصلهای جلسه نوزدهم (مدت جلسه 2 ساعت و 26 دقیقه) - موضوع جلسه: MVC :
معرفی اجزا (Model - View - Controller)
مفهوم Bootstrap
ارجاع تمام درخواستها به index.php توسط htaccess.
تعریف بارگذار خودکار (Lazy Loading)
مدیریت تمام خطاها با روش Exception
مفهوم Initializer
توضیح ساختار Include Path در PHP و نحوه تغییر آن
ایجاد ساختار تنظیمات پیشفرض با قابلیت ویرایش و بازنویسی در هر پروژه
ایجاد Loader با الگوی Singleton جهت جلوگیری از بارگذاری مجدد کلاسها
مفهوم Router و نقش آن در MVC
تشخیص کنترلر، اکشن و پارامترها از ورودی و حذف کارکتهای غیرمجاز از URL با کمک عبارات باقاعده
تفکیک پارامترها بصورت زوجهای key/value
مفهوم Dispatcher و تشریح ساختار داخلی آن
دریافت کنترلر، اکشن و پارامترها از مسیریاب و فراخوانی اکشن مناسب از کنترلر و ارسال پارامترها
مدیریت خطاهای احتمالی مبنی بر عدم وجود کنترلر یا اکشن و نمایش خطای مناسب با کمک Exception
ایجاد یک کلاس پایه برای توابع کاربردی
مفهوم کتابخانه ها (Libraries) در الگوی MVC
ایجاد قابلیت رندر ویو مشابه فریمورک Yii با امکانات زیر:
- دسترسی ویوها به عناصر کنترلر
- دسترسی ویوها به پارامترها بصورت متغیرهای مستقیم
- دسترسی ویوها به یکدیگر و فراخوانی یک ویو در داخل ویوی دیگر (ویوهای فرعی و جزئی)
- پشتیبانی از Layout
- پیاده سازی متدهای render و renderPartial و renderText
ایجاد DAL جهت سهولت دسترسی به دیتابیسهای مختلف و قابلیت سوئیچ بین DMBSها بدون تغییر کد مدلها
ایجاد مدلها با الگوی ActiveRecord
Traceکردن مجدد روند کار از لحظه ورود آدرس در مرورگر جهت تفهیم بهتر روش کار MVC
بهره گیری از htaccess. برای جلوگیری از دسترسی کاربران سایت به پوشه های داخلی هسته MVC
-----
نکته: این جلسه به خودم شخصاً خیلی چسبید!!! در عمل میبینید که کسانی که تجربه کاری بیشتری دارن چرا از کدنویسی لذت میبرن و چطور و چقدر راحت کدها رو مینویسن جوری که خود کد انگار با آدم حرف میزنه! (البته اگه بنده رو بشه جزو حرفه ایها محسوب کرد). راستی یادتون باشه که الآن شد 3 پروژه عملی توی این پکیج!
سرفصلهای جلسه بیستم (مدت جلسه 1 ساعت و 14 دقیقه) - موضوع جلسه: مدیریت سشن در PHP :
تشریح ساختار مدیریت سشن در PHP
عملکرد متد session_set_save_handle
نقش تنظیمات مربوط به سشن (session.save_handler و session.save_path و...) و موارد امنیتی مرتبط
مشاهده و تغییر تنظیمات php.ini در برنامه (معرفی دستورات ini_set و ini_get و ini_get_all و ini_restore)
آموزش ساخت کلاس ذخیره سشن در دیتابیس بجای فایل
ساخت خودکار جدول درصورت عدم وجود توسط اسکریپت
حذف سشنهای منقضی شده
راه اندازی خودکار سشن
اجرای خودکار اسکریپت دلخواه در زمان پایان یافتن اسکریپت (معرفی دستور register_shutdown_function)
روشهای مختلف استفاده از Callback (رشته و آرایه)
مدیریت خطاهای سشن بصورت Exception
تغییر Session ID جهت جلوگیری از حملات Session Hijacking و Session Fixation
تغییر عملکرد باز کردن سشن (session_start) جهت استفاده از دیتابیس
تغییر عملکرد بستن سشن (session_write_close) جهت استفاده از دیتابیس
تغییر عملکرد تخریب سشن (session_destroy) جهت استفاده از دیتابیس
تغییر عملکرد خواندن سشن (['echo $_SESSION['test) جهت استفاده از دیتابیس
تغییر عملکرد نوشتن سشن (SESSION['value'] = 25_$) جهت استفاده از دیتابیس
تغییر عملکرد زباله جمع کن سشن (session_gc) جهت استفاده از دیتابیس
مباحث مرتبط با امنیت در زمان ذخیره کردن سشن در دیتابیس
گسترش کلاس ذخیره سشن در دیتابیس جهت بدست آوردن تعداد و اسامی کاربران آنلاین با کمک عبارات با قاعده (RegExp)
-----
توضیح: علاوه بر موارد فوق، توضیحاتی به نحوی ارائه شده که روند کار PHP با سشن رو به خوبی درک کنید تا بتونید درصورت نیاز، کلاسهای دلخواه خودتون رو با ساختارهای موردنظرتون پیاده سازی کنید. مثلاً کلاسی بنویسید که سشن رو توی پوشه خاصی نگهداری کنه یا حتی لاگینهای کاربران رو توی جدول جداگانه بگذاره.
سرفصلهای جلسه بیستم و یکم (مدت جلسه 2 ساعت و 29 دقیقه) - موضوع جلسه: مباحث متفرقه و جمع بندی :
مفهوم Namespace در برنامه نویسی شئ گرا
تعریف فضاهای نام تودرتو
استفاده از فضاهای نام در برنامه (دستور use) و اعطای اسم مستعار به کلاسها
نحوه فعال کردن نمایش خطاها در لینوکس و اعمال تغییرات در php.ini و راه اندازی مجدد Apache
مفهوم AJAX
نحوه استفاده از AJAX با کمک jQuery
ارسال مقادیر برای سرور توسط AJAX
دریافت مقادیر از سرور با کمک AJAX
اصلاح بخشی از صفحه بدون نیاز به Refresh شدن
نمایش ساعت متحرک در صفحه با کمک AJAX
استفاده از AJAX در MVC (روش کاربرد AJAX با رعایت اصول معماری MVC در ارسال درخواست و دریافت پاسخ)
عبارات با قاعده (Regular Expressions)
آشنایی با ساختار PCRE (جداکننده ها، الگوهای تودرتو، کلاسها، اصلاحگرها، شروع، پایان، اندازه، حالت حریصانه و...)
بررسی وجود الگوی موردنظر در متن (دستور preg_match)
یافتن تمام موارد وجود الگوی موردنظر (دستور preg_match_all)
جایگزین کردن موارد یافت شده با عبارت دلخواه (دستور preg_replace)
اجرای کد نمونه (جایگزینی تمام لینکهای یک سایت با لینکهای سایت خودمان)
آشنایی با CURL
نصب و فعالسازی افزونه CURL برروی PHP در لینوکس و ویندوز
نحوه دریافت صفحات سایر سایتها با CURL
نحوه دریافت دانلود فایلهای سایر سایتها با CURL
توضیح کاربردهای مختلف CURL ازقبیل لاگین کردن به سایتهای دیگر، ارسال و دریافت کوکی و...
کار با GD
نصب و فعالسازی افزونه GD برروی PHP در لینوکس و ویندوز
آموزش تولید CAPTCHA با GD
استفاده از فونت و رنگ آمیزی و ترسیم خطوط و کمان و دایره و چرخش حروف و... جهت پیچیده شدن CAPTCHA
ذخیره تصاویر تولید شده توسط GD در فایل
نمایش تصاویر تولید شده توسط GD بصورت مستقیم در صفحه HTML (بدون ذخیره سازی در فایل)
توضیح کاربردهای مختلف GD ازقبیل ساخت نمودار، آپلود امن تصاویر و...
آشنایی با آرایه SERVER_$ جهت استخراج اطلاعات مربوط به بازدیدهای کاربران (IP و صفحه و زمان درخواست و User Agent و...)
ذخیره اطلاعات کاربران در فایل Log جهت استفاده های آماری و امنیتی
فشرده سازی محتوای فایلهای Log جهت کاهش حجم با الگوریتمهای مختلف ازقبیل bzip و zlib و gzip و...
تعیین میزان فشرده سازی
سخن پایانی و معرفی روشهای ارتباطی جهت دریافت پشتیبانی و مطرح کردن سؤالات و مشکلات احتمالی
صفحات: 1 2