در دوره آموزش رایگان برنامه نویسی PHP بهصورت جامع و مرحله به مرحله از صفر شروع میکنیم. در انتهای دوره میتوانید سایتهای خودتان را با زبان PHP بسازید یا در توسعه سایر سیستمها مشارکت یا کسب درآمد کنید.
الآن که شما در این صحه هستید، احتمالاً تصمیم بر یادگیری PHP دارید. پس درمورد چرایی یادگیری، اهمیت PHP و کاربردهای آن صحبتی نمیکنم.
درمورد اهمیت این زبان محبوب به این مورد اکتفا میکنم که درصد بسیار زیادی از سایتهای وب با PHP ایجاد شدهاند. آمارهای مختلفی بین 35٪ تا 79٪ وجود دارد که شاید نتوان دقتشان را سنجید اما نشاندهنده پراستفادهبودن این زبان هستند.
همچنین سیستمهای مدیریت محتوای محبوب و فریمورکهای پراستفادهای با زبان PHP نوشته شدهاند که چند مورد از آنها را نام میبرم:
سیستم مدیریت محتوا | وردپرس، جوملا، دروپال، OpenCart، پرستاشاپ، Magento و انجمنساز vBulletin |
فریمورکهای زبان PHP | لاراول (Laravel)، سیمفونی، CodeIgniter و Yii |
برای برنامهنویسی با این فریمورکها یا توسعه سیستمهای مدیریت محتوا باید در قدم اول زبان PHP را بهخوبی فرا بگیرید. این دوره هیچ پیشنیاز خاصی ندارد! چون محتوای صفحات وب با HTML نمایش داده میشود، اگر اشنایی مختصری با آن داشته باشید، میتواند به شما کمک کند؛ اما هیچ اجباری نیست.
فهرست محتوای آموزش
آموزش PHP : شروع یادگیری
PHP یک زبان مفسری (interpreter) است که برای ایجاد صفحات پویای وبسایت استفاده میشود. منظور از صفحه پویا، صفحاتی هستند که محتوا یا حتی رفتارهای آن در زمانها یا شرایط مختلف تغییر میکند.
زبان مفسری زبانی است که کدهایش خطبهخط اجرا شده و نتیجه میدهد. بنابراین نیاز نیست همه کدها را کامپایل کرده و یکجا اجرا کنیم.
syntax و اجرای PHP
قواعد زبان PHP از سی (C)، C++، جاوا و Perl تأثیر گرفته است. اگر با یکی از این زبانها آشنا باشید، میدانید که یک ساختار بلوکی در کدها داریم. یعنی برای مشخص کرده محدودهٔ یک دستور، از علامت آکولاد باز ({
) و آکولاد بسته (}
) استفاده میکنیم.
قطعه کد زیر یک دستور «شرطی» را نشان میدهد. در مورد این ساختار در جلسات آموزش بیشتر یاد میگیریم؛ الآن همینقدر بدانید که هر چیزی در محدوده دستور (بین { }
) قرار بگیرید مربوط به دستور if خواهد بود.
برای شروع آموزش مقدماتی PHP ابتدا باید بتوانیم کدها را اجرا کنیم. دو روش برای اجرای کدهای PHP داریم:
- اجرای کدها روی کامپیوتر شخصی خودمان
- اجرا روی سرور و هاست (فضای سایتهای آنلاین)
در ابتدا کدها را روی سیستم شخصی اجرا میکنیم و در جلسات پیشرفته یاد میگیریم آنها را روی سایت واقعی قرار دهیم. ابزارهای مختلفی برای شبیهسازی سایت روی کامپیوترمان وجود دارد که پیشنهاد میکنم زمپ را نصب کنید:
اگر با مبانی برنامهنویسی آشنایید و قبلاً با زبان دیگری کدنویسی کردهاید، میتوانید جلسات تا بخش «تعامل با کاربر» را سریعتر مرور کنید. اما اگر در ابتدای راه هستید، پیشنهاد میکنم همه جلسات را ببینید و تمرینها را انجام دهید.
مراحل یادگیری PHP
همانطور که در نوشتار خودمان نوعهای دادهای مختلفی مثل حروف و اعداد داریم، در زبانهای برنامهنویسی نیز نوعهای دادهای مختلفی وجود دارد. برای اینکه اطلاعات را بهطور موقت ذخیره کنیم، از متغیر استفاده میکنیم.
در ۳ جلسه زیر با تعریف متغیر آشنا میشویم و انواع داده را مرور میکنیم. سپس کار با اعداد و متنها را یاد میگیریم.
برای چاپ متغیرها و دادهها از دستور echo و print در PHP استفاده میشود که در جلسات مختلف بارها از آنها استفاده میکنیم.
بهکمک عملگرها عملیاتهای مختلفی روی دادهها انجام میدهیم. پس بهتر است یک مرور روی عملگرها داشته باشیم و عملگرهای پرکاربرد را یاد بگیریم.
آموزش ساختارهای اصلی PHP
در همهٔ زبانهای برنامهنویسی ازجمله PHP از ساختارهای شرطی برای کنترل جریان استفاده میکنیم. همین که در زبان محاوره میگوییم «اگر … آنگاه …» یک شرط ایجاد کردهایم! 🙂 جلسه ساختار شرطی را با دقت ببینید چون بسیار کاربردی هستند.
آرایهها برای نگهداری مجموعهای از دادهها استفاده میشود. مثلاً اگر بخواهیم نمرات دانشجویان یک کلاس را ذخیره کنیم، به جای اینکه دهها متغیر جداگانه تعریف کنیم، در یک آرایه مجموعهای از نمرات را قرار میدهیم.
حالا به کمک حلقهها میتوانیم یک قطعه کد را بارها و بارها تکرار کنیم. مثلاً نمرات همهٔ دانشجویان را در یک جدول نمایش دهیم. چاپ نمرات یک کار تکراری است که باید بهازای هر دانشجو انجام شود. حلقهها این کار را برای ما ساده میکنند.
کاربرد تابع در برنامه نویسی PHP
فرض کنید میخواهیم یک جدول را با ظاهر مشابه در صفحات مختلف سایت نمایش دهیم. در حالت عادی، باید کد نمایش جدول را چند بار تکرار کنم. برای جلوگیری از تکرار کد و ویرایش سادهتر از توابع استفاده میکنیم. در جلسه زیر درمورد تعریف این مفهوم کلیدی و مهم بیشتر یاد میگیریم:
توابع مختلفی در زبان PHP از پیش تعریف شدهاند که کاربردهای خوبی دارند. در دوره مکمل پرکاربردترین آنها را بررسی میکنیم اما لازم نیست همه این توابع را حفظ کرده یا همین الآن یاد بگیرید! برای شروع، بهتر است یاد بگیرید چطور از آنها استفاده کنید. به مرور پرکاربردترینها را حفظ و بقیه را با یک جستجوی ساده پیدا میکنید. 🙂
در زبان PHP یکسری متغیرهای وجود دارند که در سرتاسر برنامه بهطور پیشفرض وجود دارند. این متغیرها اطلاعات مختلفی را در اختیار ما قرار میدهند. به این متغیرها متغیر سراسری (آرایه سوپر گلوبال) گفته میشود. در این جلسه متغیرهای سراسری را معرفی و بررسی کردهایم:
تبریک! تا اینجا با مباحث پایهای آشنا شدیم. در جلسات بعدی از این دانستهها بهطور ترکیبی استفاده میکنیم تا کارهای جالبتری انجام دهیم.
تعامل با کاربر و دادهها
در سایتها بهواسطه فرمها اطلاعاتی را از کاربران میگیریم تا روی آنها پردازش انجام دهیم. در ۳ جلسه زیر، کار با فرمها و روشهای ارسال داده را یاد گرفته و یک مینی پروژه ساده برای آپلود فایل پیادهسازی میکنیم:
آموزش ذخیره داده در PHP
سایتها برای اینکه کاربران را از یکدیگر تشخیص دهند، مجبورند دادههایی را روی مرورگر کاربر و سرور خودشان ذخیره کنند. کوکی و سشن دو مفهوم پرکاربرد در سیستمهای تحت وب هستند که یادگیری آنها به پیشرفت ما بسیار کمک میکند:
در ابتدا یاد گرفتیم از متغیرها برای نگهداری موقت یک مقدار در کدها استفاده کنیم. برای اینکه دادههایمان را دائمی ذخیره کنیم، باید آنها را در دیتابیس ذخیره کرده و از آن بخوانیم. پیشنهاد میکنم جلسات کار با دیتابیس را با دقت ببینید و مثالهایش را خودتان اجرا کنید:
آموزش پیشرفته PHP
تا اینجا مباحث اصلی و پایهای PHP را یاد گرفتیم. همین الآن ادامه یادگیریتان را متوقف کنید. سعی کنید مباحث بالا را مجدد مرور کنید و اگر لازم است آنها را یادداشت یا تمرین کنید.
در این بخش از آموزش، مباحث پیشرفته PHP را یاد میگیریم که علاوه بر ساده کردن روند برنامهنویسی، ویژگیهای جدیدی را برای سایتمان فراهم میکند.
در ابتدا اگر با شئگرایی آشنا نیستید، آموزشش را ببینید؛ سپس وارد جلسات کلاس و ارثبری پیاچپی شوید.
حالا که شئگرایی را یاد گرفتید میتوانیم از روشهای اتصال به دیتابیس بهصورت oop استفاده کنیم. همچنین در کنار این دو جلسه، با ساختار مدیریت خطا در کدها آشنا خواهیم شد:
در بعضی از مثالهایی تا بهحال زدیم، از include یا require برای استفاده از یک فایل در فایل دیگر کمک گرفته بودیم. در جلسه بعدی این دستورها را یاد گرفته و پس از کار با زمان وارد مباحث پیشرفته یادگیری میشویم که اولین جلسهٔ آن interface است:
تبریییک میگم! شما آموزش مقدماتی PHP و بخش زیادی از قسمت متوسط رو گذروندید! از جلسهٔ interfaceها وارد بخش آموزش پیشرفته شدیم…
پیشنهاد برای آموزش حرفهای PHP
الآن میتوانم بگویم با تمام مباحث مقدماتی و پیشرفته PHP که برای برنامهنویسی نیاز دارید آشنا شدهاید. 😉 خیلی خوشحالم که تا انتهای دوره آموزش رایگان PHP همراهمون بودید. ۲ پیشنهاد برای اینکه حرفهایتر شوید برای شما دارم:
اولین و مهمترین مسئله، تمرین کردن است! تمرین و تکرار باعث میشود مسائلی که در آموزش یاد گرفتید، در ذهنتان تثبیت شده و مهارت شما در حل مسائل افزایش پیدا کند.
دومین پیشنهاد، یادگیری مستمر است. سعی کنید مهارتهای خودتان را در برنامهنویسی، حل مسئله و مهارتهای نرم افزایش دهید. با این کار، تواناییهای شما به شکل نمایی رشد خواهد کرد.
همیشه و همیشه میتوانید برای یافتن راهکارهای پیشنهادی یا خواندن جزئیات از گوگل یا مستندات PHP کمک بگیرید. اما یادتان باشد، سعی کنید کد نهایی را خودتان بنویسید.
اگر سؤالی در یادگیری PHP دارید یا احساس میکنید روند این آموزش کمبودهایی دارد، خوشحال میشم نظرات، پیشنهادات و انتقاداتتون رو از بخش دیدگاهها با تیم ما در میون بذارید.
اگر با انتشار یک دوره مکمل رایگان برای پیادهسازی یک پروژه واقعی موافقید، نظرتون رو در دیدگاهها بگید تا درنظرشون بگیریم. با اجرای یک پروژه علاوه بر تثبیت آموختهها، مباحث جدیدتر و کاربردیتری یاد خواهیم گرفت. 🙂
راستی، این صفحه، یعنی صفحه آموزش PHP، تقریباً هر ۲ هفته یک بار بهروزرسانی شده و آموزشهای پیشرفتهٔ آن به مرور تکمیل میشود. پیشنهاد میکنم این صفحه را در مرورگر خود بوکمارک کنید و به آن سر بزنید.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
ممنون از وب سایت خوبتون ، با آرزوی موفقیت برای دوستان .
ممنونیم حسام عزیز. امیدوارم سال خوبی داشته باشی 🙂
بسیار عالی… 🙂
سلام وقت بخیر
من برنامه ای دارم که کاربر می تونه عکس و فایل و کلیپ ارسال کنه
الان مشکلی که دارم اینه که اگه کاربر عکس آپلود کرده باشه و الان گزینه ویرایش اطلاعات رو بزنه و فایل آپلود کنه، فیلد عکس پاک می شه و بالعکس
میشه راهنماییم کنید مشکل کد کجاست؟
(کدها پنهان شدند!)
سلام
متأسفانه امکان رفع خطا یا دیباگ اسکریپت و کدها رو نداریم دوست من.
تمرین بدید لطفا 🙁
چشمممم. 🙂
در نظر داریم تا حدود یک ماه دیگه هم مباحث پیشرفته دوره رو ادامه بدیم و هم یک پروژه ساده رو اجرا کنیم.
یه تمرین خوب برای الآنتون، ساخت یه فرم برای ثبتنام کاربر و یه جدول برای مدیریت اونهاست. این یه بخش از سیستمهای تحت وبه و معمولاً توی تمرینها بهش میپردازن. قاعدتاً نیازه با دیتابیس هم کار کنید (هر چهار مورد CRUD استفاده میشه.)
خیلی ممنونم
دوره بسیار آموزنده است
خوشحالیم که براتون کاربردی بوده
سلام و خسته نباشید
برای مثال چطور سایت های رمز ارز بدن اینکه صفحه بروز بشه اطلاعات عوض میشه
و اگه با mysql هست چطور بدون این این کارا کنیم
سلام
این کار سمت front-end انجام میشه اکثراً. مثلاً با جاوا اسکریپت میتونین چنین کاری کنید. آموزش ajax در php یه نمونه خیلی ساده و ابتدایی از این کاره.
اینم منظورم هست که رشته ها قبلاً ایجاد شدند
سلام چطور کدی با PHP بنویسم که هربار بره رشته ای کاراکتری را به تور تصادفی انتخاب کنه و نمایش بده ؟
سلام
یه راه سادهاش اینه که همه رشتهها رو داخل یه آرایه قرار بدید و یه عضو رندوم از اون رو انتخاب کنید.
ممنون
سلام چطور یک کدی بنویسم که به هر کار بر چیزی نشون بده برای پیام ها میخواهم مثل شرکت های هاست
سلام
منظورتون از اینکه به هر کاربر چیزی نشون بده چیه؟!
یعنی اطلاعات را ذخیره کنه مثل کوکی ولی سریع تر و بهتر چه راهی است ؟
برای ذخیرهسازی بنا به نیازتون راهحلهای مختلفی دارید! نمیشه یک نسخه عمومی داد! دیتابیس، فایل، حتی سشن یا همین کوکی که میگید.
شما باید ببینید نیازتون چیه؟ برنامه رو تحلیل کنید و بعدش سراغ راهحل پیادهسازی برید. مثلاً دیتابیس سمت شماست ولی کوکی دست کاربره و میتونه تغییرش بده. یا از نظر زمان نگهداری و کلی نکات دیگه.
توی گزینه دیتابیس اگه سرعت مهمه، شاید برید سمت دیتابیسهایی که روی حافظه هستن (مثل Redis و …) مناسبتر باشه واستون.
ممنون از شما
من یک شبکه اجتماعی بدون دیتابیس ساختم و سرعتش هم بلا است و تا الان خدارا شکر به مشکل نخوردیم
همین طور ادامه بدیم یا بریم روی دیتابیس
منظورتون از بدون دیتابیس چیه؟ یعنی روی فایلی جایی دیتاها رو ذخیره میکنید؟ همه چیز بستگی به نیازمندیتون داره! ولی اگه روی فایل ذخیره میکنید خیلی روش ساختارمند و اصولیای نیست برای چنین سیستمی.
ممنون بله روی فایل هست و سرعت خیلی بالایی داره و راحت است
در اینده مشکلی هست ؟
معمولاً فایل جای مناسبی برای ذخیرهسازی دیتاهای یه شبکه اجتماعی نیست. هم ساختار مناسبی نداره و هم امکانات دیگهای که DMBSها در اختیارتون میذارن رو نداره و ممکنه بعداً لازمتون بشه.
ممنون
میشه جواب بدید لطفاً مهم است
معمولاً پاسخ پیامها و سؤالات رو کمتر از یک روز میدیم. پیامتون رو دیشب پاسخ دادیم.
ایمیلی برای من نیامده
ما ایمیلی از آدرس شما نگرفتیم! یک سؤال درمورد فایل در همین صفحه پرسیده بودید که پاسخ داده شده.
ممنون
سلام چطور فایلی که با php گرفته ایم را نمایش دهیم
و چطور پسوند عکس را هنگام دریافت عوض کنیم
سلام
چه فایلی؟ و منظورتون از نمایش چیه؟
پسوند رو که موقع ذخیره میتونید عوض کنید ولی راهِ درستی نیست (یعنی تبدیل نمیشه و مثل اینه که فایل رو rename کنید!) از کتابخونههایی برای تبدیل فرمتهای موردنظرتون میتونید استفاده کنید.
اموزشاتون فوق العادست. مرسی از شما که همه اینها را رایگان گذاشتید
خوشحالیم که آموزشهای این دوره رو مفید میدونین. موفق باشید
مثال های عالی با گفتن های پله به پله درک موضوعات سخت رو خیلی برام اسون کرد. ان شأالله در همه مراحل زندگیتون موفق باشید
خیلی خوشحالم که این دوره آموزشی واست کاربردی بوده. مرسی برای دعای خوبت همچنین برای شما
نحوه بیان و مثالهاتون عالی بودن خدا قوت
خوشحالیم که این دوره آموزشی رضایتتون رو جلب کرده الهام عزیز.
با تشکر فراوان برای جمع اوری اموزشها
خوشحالیم که دوره رایگانمون رو کاربردی میدونید.
قدردان زحمات و تلاش های بی دریغتون هستم مرسی واقعن
سلامت باشی محمد عزیز
خوشحالیم که از این دوره آموزشی استفاده کردی و برات مفید بوده.