شرکت نرم افزار برنامه نویسان دانش برتر سهند

دوره برنامه نویسی با PHP

دوره برنامه نویسی با PHP

زبان برنامه نویسی PHP یکی از زبان های برنامه نویسی سمت سرور است که کاربرد اصلی آن، در پیاده سازی وب سایت های دینامیکی (پویا) است. بازنویسی هسته PHP و ایجاد موتور پردازشی زند (Zend Engine) تحول بزرگی را در مسیر و تاریخچه زبان برنامه نویسی PHP ایجاد کرد، و در طی ۱۰ سال، این زبان برنامه نویسی، به مهم ترین ابزار برای پیاده سازی پروژه های وب دینامیکی تبدیل شد. هدف این فرادرس آموزش تمامی نکات و مهارت های عملی لازم برای ورود به دنیای جذاب برنامه نویسی و پیاده سازی دینامیکی وب است.

 

زبان برنامه نویسی PHP یکی از زبان های برنامه نویسی سمت سرور است که کاربرد اصلی آن، در پیاده سازی وب سایت های دینامیکی (پویا) است. عبارت PHP در ابتدا مخفف Personal Home Page (صفحه خانگی شخصی) بود که بعدها، با یک مخفف سازی مجدد، به صورت PHP: Hypertext Preprocessor تبدیل شد تا مفهوم جامع تری را شامل شود.

این زبان برنامه نویسی در سال ۱۹۹۴ توسط راسموس لردورف (Rasmus Lerdorf) و به صورت یک سری توابع کتابخانه ای با زبان C پیاده سازی شد. در فاصله کوتاهی، نسخه دوم PHP نیز توسط لردورف ارائه گردید. البته تا آن زمان، به زحمت می شد عنوان «زبان برنامه نویسی» را برای PHP استفاده کرد. اما در سال 1997، این زبان برنامه نویسی به شدت متحول شد. دو نفر به نام های زیو سوراسکی (Zeev Suraski) و اندی گاتمنز (Andy Gutmans) هسته اصلی PHP را بازنویسی کردند و به این ترتیب نسخه سوم PHP متولد شد.

بازنویسی هسته PHP و ایجاد موتور پردازشی زند (Zend Engine) تحول بزرگی را در مسیر و تاریخچه زبان برنامه نویسی PHP ایجاد کرد، و در طی ۱۰ سال، این زبان برنامه نویسی، تبدیل به مهم ترین ابزار برای پیاده سازی پروژه های وب دینامیکی شد.

در کنار پیاده سازی بسیاری از پروژه های سفارشی با استفاده از PHP، بسیاری از سیستم های مدیریت محتوای متن باز و عمومی، توسط PHP پیاده سازی شده اند، که در ادامه فهرستی از آن ها آمده است:

  • وردپرس یا WordPress (پرکاربردترین و رایج ترین سیستم مدیریت محتوای جهان)
  • جوملا یا Joomla (یکی از سیستم های مدیریت محتوای قوی و پر طرفدار)
  • دروپال یا Drupal (یکی از سیستم های مدیریت محتوای قوی و پر طرفدار)
  • اوپن کارت یا OpenCart (یک سیستم فروشگاه ساز قوی و ساده)
  • پرستاشاپ یا PrestaShop (یک سیستم فروشگاه ساز قوی)
  • مدیاویکی یا MediaWiki (سیستم مدیریت محتوای ویکی پدیا و سایت های مشابه)
  • مجنتو یا Magento (یکی از قوی ترین سیستم های فروشگاه ساز)
  • وی بولتن یا vBulletin (پر کاربردترین سیستم انجمن ساز یا فوریوم)

زبان برنامه نویسی PHP از نظر گرامر و شیوه پیاده سازی، تحت تاثیر زبان های برنامه نویسی سی (C)، سی پلاس پلاس (C++‎)، جاوا (Java) و پرل (Perl) بوده است. البته سخت گیری های رایج و موجود در زبان های کامپایلری، در زبان برنامه نویسی PHP بسیار کم رنگ تر هستند و برنامه نویسی با PHP بسیار ساده و آسان است.

در مجموعه فرادرس های آموزش برنامه نویسی PHP، تمامی نکات و مهارت های عملی مورد نیاز برای ورود به دنیای جذاب برنامه نویسی تحت وب و پیاده سازی وب سایت های دینامیکی، به ساده ترین و روان ترین شکل ممکن، و به صورت کاملا عملی توسط دکتر سید مصطفی کلامی هریس، آموزش داده شده است. این مجموعه آموزشی، از نظر نظم منحصر به فردی که در روند آموزش و ترتیب مطالب دارد، بسیار خاص است و در ارائه آن، از تجارب موفق ارائه بیش از یکصد ساعت آموزش برنامه نویسی زبان های مختلف در فرادرس، استفاده شده است.

جدیدترین نسخه زبان برنامه نویسی PHP نسخه ۷ است که برای انتشار نهایی در سال ۲۰۱۵ میلادی برنامه ریزی شده است. از این رو، در این مجموعه آموزشی در کنار مطالب و مباحث مربوطه به PHP 5.6، ویژگی های جدید مربوط به PHP 7 نیز مورد بحث و بررسی واقع شده اند.

فهرست سرفصل های مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
  • درس یکم: آشنایی با زبان برنامه نویسی PHP
    • تاریخچه زبان برنامه نویسی PHP
    • بررسی نحوه عملکرد و اجرای یک برنامه PHP
    • نصب XAMPP برای راه اندازی سرور محلی (Local Host)
    • پیاده سازی و اجرای نخستین برنامه PHP
    • آشنایی با شبه تابع echo
    • نصب محیط توسعه (IDE) نت بینز (NetBeans) برای توسعه برنامه های PHP
    • نحوه لینک بین XAMPP و NetBeans
    • توسعه برنامه ابتدایی نوشته شده با PHP
    • فراخوانی تابع phpinfo برای دریافت اطلاعات سرور و ماژول PHP در سرور
    • تگ های php برای تلفیق HTML و PHP
    • نحوه درج توضیح یا کامنت در برنامه های PHP
  • درس دوم: متغیرها، انواع داده ها و ثوابت
    • متغیرها و کاربردهای آن ها
    • انواع داده ها در PHP
    • توابع مربوط به تشخیص نوع توابع
    • تشخیص متغیرهای خالی
    • تشخیص متغیرهای تعریف شده
    • نمایش جزئیات یک متغیر در مرورگر
    • تبدیل انواع یا Type Casting
    • عملگرها
      • عملگرهای محاسباتی
      • عملگرهای تخصیص و مقداردهی
      • عملگرهای کاهش و افزایش
      • عملگرهای رشته های کاراکتری
      • عملگرهای رابطه ای و قیاسی
      • عملگرهای منطقی
      • عملگرهای بیتی
      • عملگر شرطی و حالات مختلف آن
      • عملگرهای جدید در PHP 7
    • اولویت عملگرها در PHP
    • تعریف مقادیر ثابت (Constants) در PHP
  • درس سوم: ساختارهای کنترل برنامه - عبارات شرطی و تصمیم گیری
    • دستور if و حالات مختلف آن
    • دستور switch و حالات آن
    • پیاده سازی مثال های مختلف برای نمایش کاربرد ساختارهای شرطی و تصمیم گیری
  • درس چهارم: ساختارهای کنترل برنامه - حلقه های تکرار
    • حلقه تکرار while برای پیاده سازی تکرار نامشخص و/یا نامحدود
    • حلقه تکرار do-while برای پیاده سازی حلقه با حداقل یک اجرا
    • حلقه تکرار for برای پیاده سازی حلقه های مشخص و/یا محدود
    • پیاده سازی مثال های مختلف برای نمایش کاربرد ساختارهای تکرار
  • درس پنجم: آرایه ها در PHP
    • نحوه تعریف آرایه ها در PHP
    • تعریف کلیدهای عدد صحیح
    • تعریف کلیدهای غیر عددی
    • تغییر عناصر یک آرایه
    • افزودن عنصر جدید به آرایه ها
    • عملگرهای مربوط به آرایه ها
    • توابع مهم و کاربردی برای کار با آرایه ها در PHP
    • اشاره گرهای آرایه در PHP
    • حلقه تکرار foreach برای حرکت بر روی عناصر یک آرایه
    • ارائه مثال های متنوع برای کاربردهای آرایه در PHP
  • درس ششم: رشته ها
    • نحوه تعریف رشته ها در PHP
      • تعریف با استفاده از علامت گفتار یگانه (Single Quotation Mark)
      • تعریف با استفاده از علامت گفتار دوگانه (Double Quotation Mark)
      • تعریف رشته با استفاده از روش Heredoc
      • تعریف رشته با استفاده از روش Nowdoc
    • متغیرهای با نام متغیر
    • رشته ها به عنوان آرایه
    • توابع مهم و کاربردی رشته ها در PHP
  • درس هفتم: توابع و مقدمه ای بر برنامه نویسی ماژولار (پیمانه ای)
    • نحوه تعریف توابع
    • تعریف آرگومان ها و پارامترهای ورودی توابع
    • تعریف خروجی برای توابع
    • حوزه تعریف متغیرها
    • متغیرهای سراسری (Global)
    • متغیرهای ایستا (Static)
    • مقادیر پیش فرض برای پارامترهای ورودی
    • ضمیمه کردن فایل های جانبی
    • بررسی وجود یک تابع با استفاده از تابع function_exists
    • توابع تو در تو یا Nested Functions
    • تعریف متغیرهای مرجع یا Reference
      • ورودی های از نوع مرجع در توابع
      • خروجی های از نوع مرجع در توابع
    • توابع ناشناس (ضمنی) یا Anonymous Function
    • ارث بری متغیرهای از اسکوپ مادر (والد)
    • ویژگی های جدید PHP 7 برای تعریف توابع
      • محدودیت نوع
      • تعیین نوع ورودی
      • نعیین نوع خروجی
  • درس هشتم: اشکال زدایی و مدیریت حالات استثنائی
    • نمایش پیام هاو جزئیات در خصوص متغیرها
    • کاربرد تابع error_reporting برای مدیریت نمایش پیام های خطا و هشدار
    • بلوک try/catch/finally برای مدیریت حالات استثنائی یا Exception Handling
    • بررسی کلاس Exception
    • کاربرد دستور throw برای ایجاد خطای دلخواه
  • درس نهم: اطلاعات مربوط به سرور و ثابت های خاص
    • دریافت اطلاعات سرور و درخواست با $_SERVER
    • مولفه های مربوط به آرایه اطلاعات سرور
    • توابث خاص
      • دریافت خط جاری با __LINE__
      • دریافت فایل جاری با __FILE__
      • دریافت مسیر فایل جاری با __DIR__
      • دریافت نام تابع جاری با __FUNCTION__
      • دریافت نام کلاس جاری با __CLASS__
      • دریافت متد جاری با __METHOD__
      • دریافت فضای نام جاری با __NAMESPACE__
  • درس دهم: فرم های وب و مدیریت درخواست ها
    • انتقال اطلاعات میان صفحات وب
    • روش GET برای ارسال اطلاعات و درخواست
    • روش POST برای ارسال اطلاعات و درخواست
    • استفاده از $_GET برای دریافت ویژگی های منتقل شده با روش GET
    • استفاده از $_POST برای دریافت ویژگی های منتقل شده با روش POST
    • پیاده سازی فرم های وب با روش GET و POST
    • آرایه سراسری $_REQUEST
    • آماده سازی داده برای ارسال از طریق روش GET
  • درس یازدهم: مدیریت کوکی یا Cookie
    • کوکی چیست؟
    • تاریخ انقضای کوکی
    • نحوه تنظیم کوکی با استفاده از تابع setcookie
    • کوکی های ساده و کوکی های آرایه ای
    • دریافت اطلاعات کوکی های تعریف شده توسط آرایه سراسری $_COOKIE
    • حذف یک کوکی با تابع unset
    • بررسی امکان تعریف کوکی ها و فعال بودن آن ها در مرورگر کاربر
  • درس دوازدهم: مدیریت جلسه، نشست یا Session
    • آشنایی با مفهوم نشست یا Session
    • شروع نشست کاری با session_start
    • تعریف متغیرهای نشست با استفاده از آرایه سراسری $_SESSION
    • بررسی وجود متغیر های نشست
    • حذف اطلاعات نشست به صورت جزئی و کلی
    • دریافت شناسه نشست
  • درس سیزدهم: هدرها (Headers)
    • کاربرد تابع header برای ارسال هدرهای خام
    • بررسی ارسال هدرهای
    • استخراج کد پاسخ دریافتی از هدر
    • فهرست هدرهای دریافت شده
  • درس چهاردهم: کار با فایل ها و پوشه ها (الف)
    • سیستم فایل در PHP
    • هماهنگ سازی آدرس های یونیکس (UNIX) و ویندوز (Windows)
    • توابع مهم و کاربردی برای مدیریت فایل ها و پوشه ها
      • استخراج اطلاعات مورد نیاز از مسیر فایل و دایرکتوری
        • تابع basename برای استخراج نام اصلی از روی مسیر
        • تابع dirname برای استخراج نام دایرکتوری (پوشه) از روی مسیر
        • تابع pathinfo برای استخراج اطلاعات از مسیر فایل
      • بررسی ویژگی های فایل و دایرکتوری با توابع:
        • بررسی وجود فایل با file_exists
        • چک کردن فایل یا دایرکتوری بودن با is_file و is_dir
        • محاسبه اندازه فایل با filesize
        • چک کردن وضعیت خواندنی و نوشتنی بودن فایل با is_readable و is_writable
      • مدیریت پوشه‌ها
        • ایجاد دایرکتوری با mkdir
        • حذف دایرکتوری با rmdir
  • درس پانزدهم: کار با فایل ها و پوشه ها (ب)
    • بررسی محتوای دایرکتوری ها و فهرست فایل های داخل آن
      • تابع scandir
      • توابع opendir، closedir و readdir
      • تابع glob
    • کپی، انتقال و حذف فایل ها
      • تابع copy برای کپی کردن فایل
      • تابع rename برای تغییر نام و انتقال فایل
      • تابع unlink برای حذف فایل
    • مدیریت مالکیت، مود و گروه فایل‌ ها
      • تغییر مالک فایل با chown
      • تغییر مود یا حالت دسترسی فایل با chmod
      • تغییر گروه فایل با chgrp
  • درس شانزدهم: کار با فایل ها و پوشه ها (پ)
    • خواندن و نوشتن محتوای فایل ها با توابعfile ، file_get_contents و file_put_contents
    • خواندن محتوای فایل با readfile
    • خواندن و نوشتن اطلاعات در فرمت سریالی با توابع serialize و unserialize
    • خواندن و نوشتن اطلاعات در فرمت JSON (جیسون) با توابع json_encode و json_decode
  • درس هفدهم: کار با فایل ها و پوشه ها (ت)
    • باز کردن فایل با fopen
    • بستن هندل فایل با fclose
    • چک کردن برای رسیدن به پایان فایل با تابع feof
    • خواندن اطلاعات از فایل با توابع fread ،fgets ،fgetc و stream_get_contents
    • نوشتن اطلاعات در فایل با fputs و fwrite
    • ایجاد فایل های موقتی یا تمپ (Temporary) با tnpfile و tempnam
    • استخراج مسیر فایل های موقتی در سیستم با sys_get_temp_dir
  • درس هجدهم: پایگاه داده مبتنی بر فایل با فلینت استون FlintStone
    • معرفی سیستم فلینت استون (سنگ چخماق)
    • بررسی نحوه کارکرد فلینت استون
    • راه اندازی و نصب فلینت استون
    • ایجاد یک پروژه ساده با پایگاه داده فلینت استون
  • درس نوزدهم: مدیریت پایگاه داده با SQLite
    • بررسی اهمیت پایگاه داده در پروژه های وب
    • معرفی کتابخانه و استاندارد SQLite برای مدیریت پایگاه داده
    • راهنمای عملی استفاده از SQLite در php:
      • ایجاد آبجکت SQLite3
      • فراخوانی و اجرای کوئری (Query) در SQLite
      • ایجاد جدول
      • بررسی فرمت فایل SQLite
      • اجرای فرمان های رایج SQL در سیستم SQLite
      • پیاده سازی عملیات و مکانیزم CRUD
        • ایجاد یا Create
        • خواندن یا Read
        • به روز رسانی یا Update (نوشتن)
        • حذف یا Delete
  • درس بیستم / درس بیست و یکم / درس بیست و دوم: پیاده سازی یک پروژه وب کامل و ساده
    • آشنایی با توئیتر بوت استرپ (Twitter Bootstrap) برای طراحی ظاهر سایت
    • نصب و راه اندازی نسخه راست چین (RTL) بوت استرپ با فونت یکان
    • پیاده سازی گام به گام یک پروژه وب
    • آشنایی با فایل htaccess و ریرایت کردن (Rewriting) مسیرها
    • پیاده سازی دیتابیس مبتنی بر SQLite
    • پیاده سازی ماژول مسیر یابی
    • پیاده سازی مکانیزم CRUD برای کاربران و تنظیمات
    • پیاده سازی ماژوی احراز هویت و کاربران
    • ایجاد نوار پیمایش یا Navigation
    • فرم ورود به سیستم
    • ایجاد ماژول های بدون نیاز به ورود به سیستم (با دسترسی عمومی)
    • ایجاد ماژول های نیازمند ورود به سیستم
    • خروج از سیستم
    • مباحث تکمیلی و نکات مهم در مسیر پیاده سازی پروژه های وب
  • درس بیست و سوم: بافر خروجی یا Output Buffering
    • مفهوم و کاربرد بافر خروجی
    • شروع بافر خروجی با ob_start
    • پاک سازی بافر خروجی با ob_clean و ob_flush
    • دریافت محتوای بافر خروجی با ob_get_clean و ob_get_flush و ob_get_contents
    • بستن بافر خروجی با ob_end_clean و ob_end_flush
  • درس بیست و چهارم: امن سازی و اعتبارسنجی فرم ها
    • بررسی خطرات ناشی از کاربرد آرایه های سراسری مانند $_GET، $_POST و $_SERVER
    • خطر حمله اسکریپ بین سایت یا XSS (مخفف: Cross-Site Scripting)
    • امن سازی فرم های وب با حذف کاراکترهای مشکوک
    • بررسی و امن سازی ورودی های به دست آمده از فرم ها
    • بررسی فیلدهای فرم ها
    • اعتبارسنجی فیلدها با استفاده از تابع filter_var
      • فیلتر FILTER_VALIDATE_EMAIL برای تصدیق ایمیل
      • فیلتر FILTER_VALIDATE_INT برای تصدیق اعداد صحیح
      • فیلتر FILTER_VALIDATE_FLOAT برای تصدیق اعداد با ممیز
      • فیلتر FILTER_VALIDATE_IP برای تصدیق آدرس آی پی یا IP
      • فیلتر FILTER_VALIDATE_URL برای تصدیق آدرس اینترنتی یا URL
  • درس بیست و پنجم: پیاده سازی یک برنامه محاسبات آماری
    • ایجاد فرم حاوی کنترل textarea برای دریافت ورودی چند خطی
    • بازگردانی ورودی های قبلی ارسال شده
    • بررسی متن چند خطی ورودی و استخراج اعداد از آن
    • پیاده سازی محاسبات آماری
      • محاسبه تعداد
      • محاسبه مجموع
      • محاسبه میانگین
      • محاسبه واریانس و انحراف معیار
    • پیاده سازی محاسبات بر روی آرایه ها با استفاده از تابع array_map
  • درس بیست و ششم: استفاده از کرل یا cURL در PHP
    • کرل یا cURL چیست؟
    • کاربردهای cURL
    • آغاز یک نشست cURL
    • اجرای یک نشست cURL
    • ارسال اطلاعات از طریق cURL
    • دریافت نتیجه اجرای cURL
    • ارسال اطلاعات میان دو وب سایت، دامنه یا اسکریپت از طریق cURL
    • تنظیمات cURL در PHP
  • درس بیست و هفتم: کتابخانه GD برای کارهای گرافیکی در PHP
    • آشنایی با کتابخانه توابع گرافیکی GD
    • ایجاد تصاویر در GD
    • ترسیم اشکال هندسی و متن ها در GD
    • ارسال خروجی حاصل از GD
    • کاربرد تابع header برای ایجاد تصاویر دینامیکی
    • پروژه عملی: امن سازی آدرس های ایمیل با تبدیل به تصویر
    • ایجاد یک تصویر کپچا (CAPTCHA)
  • درس بیست و هشتم: مدیریت پایگاه داده با MySQL و phpMyAdmin
    • آشنایی با سرویس mysql
    • اجرای mysql در زمپ (XAMPP)
    • کنسول mysql
    • آشنایی با phpMyAdmin
      • ایجاد دیتابیس جدید
      • ایجاد کاربر و دسترسی به دیتابیس
      • ایجاد جدول جدید
    • به کار بردن دیتابیس های mysql از طریق PHP
      • اینترفیس قدیمی مبتنی بر مجموعه توابع mysql
      • اینترفیس جدید مبتنی بر کلاس mysqli
      • اینترفیس PDO یا آبجکت های داده ای PHP یا PHP Data Objects
    • پیاده سازی برنامه ارتباط با دیتابیس با هر سه اینترفیس به صورت گام به گام
    • بررسی تنظیمات و توابع تکمیلی
  • درس بیست و نهم / درس سی ام (پایانی): پروژه ایجاد یک سیستم مدیریت محتوا یا CMS ساده با استفاده از PHP و MySQL
    • ایجاد و پیکربندی پایگاه داده MySQL در محیط phpMyAdmin
    • تبدیل پروژه جلسه بیست و دوم از SQLite به MySQL
    • رفع برخی نواقص و بهبود عملکرد سیستم
    • ایجاد جدول صفحات
    • ایجاد صفحات نمونه از طریق دیتابیس
    • نمایش محتوای صفحات
    • نمایش فهرست صفحات
    • افزودن ویژگی پنهان شوندگی (Hidden) به صفحات
    • ایجاد مکانیزم ویرایش و ایجاد صفحات جدید توسط کاربر
    • جمع بندی مباحث و نهایی سازی CMS سفارشی ایجاد شده

کارآموز گرامی :
ما با توجه به کمبود نیرو انسانی و مهاجرت نیروی متخصص ،خود را موظف به تربیت نیروی انسانی فنی و متخصص دانستیم و به این دلیل با جدیت زیاد شروع به برگذاری کلاس های اموزشی فنی و تخصصی کردیم و دلیل دریافت هزینه را تنها جذب نیروی با انگیزه برای اموزش می دانیم و خوشحال هستیم این پیام را به شما کار اموزها برسانیم در صورتی که شما موفق به گذارندن این دوره ها بشوید و جز نفرات اول این دوره باشید در صورت توافق ما اماده جذب شما به عنوان همکار می باشیم و هزینه پرداختی شما برای دوره نیز عودت داده خواهد شد
گفتگو در مورد طراحی اپلیکیشن