شبکه اینترنت از دهه 90میلادی تاکنون تحولات بسیار زیادی داشته است. در ابتدای کارِ شبکه اینترنت، فقط صفحات پایا (static) با تعدادی پیوند به همدیگر، یک وبسایت را تعریف می کرد. اما خیلی زود صفحات وب پویا (dynamic) متولد شدند.
هر طراح وب، برای طراحی سایتهای پویای کاربردی، نیاز دارد تا بر ترکیبی از زبان ها و ابزارها مانند پیاچپی، جاوااسکریپت، جیکوئری، سیاساس و اچتیامال تسلط داشته باشد.
ترکیب PHP و MySQL میتواند بهترین راهکار برای طراحی صفحات وب پویا باشد.
چرا پی اچ پی؟
- با اینکه منتقدان PHP آن را زبان چندان خوبی برای طراحی وب نمی دانند، اما تقریبا همه قبول دارند که PHP یکی از محبوبترین زبانهای برنامه نویسی سمت سرور (server side) است.
- بر اساس جدیدترین آمار منتشر شده (اینجا) نزدیک به 80 درصد وبسایت هایی که کدنویسی سمتِ سرور دارند، از پیاچپی قدرت گرفته اند.
- زبان PHP از ابتدا به طور کاملا اختصاصی برای طراحی صفحاتِ پویای وب، ساخته شده است. این زبان رایگان بوده، یادگیری آن نسبت به بقیه زبانها آسانتر است.
- تعداد زیادی از ایرادهای فنی که منتقدین به این زبان وارد میدانستند (بخشی نیز مربوط به مسائل امنیتی بوده) در نسخه 7 پیاچپی به طور چشمگیری بهبود یافته است.
- امروزه PHP بعنوان یک زبان بالغ و قدرتمند، به طور گسترده ای در طراحی وبسایت در سطح دنیا، مورد استفاده قرار میگیرد.
پی اچ پی چطور کار میکند؟
ما توسعه دهندگان وب (Web Developers) با این زبانِ کدنویسی، صفحاتی می سازیم که خودشان فکر میکنند و برای درخواستهای مختلف بر اساس شرایط، پاسخ های متفاوتی می دهند.
اگر بخواهیم به طور خلاصه، نحوه عملکرد یک وبسایت بر پایه PHP را بدانیم:
1. مرورگر درخواستی برای وب سرور ارسال می کند
2. وب سرور درخواستِ دریافتی را به موتورِ پی اچ پی (PHP Engine) ارسال میکند
3. موتور PHP کد اسکریپت مرتبط با درخواست را پردازش می کند. در بیشتر اوقات نیاز است تا دادههایی از دیتابیس (Database) فراخوانی شوند
4. وب سرور، صفحهی پردازش شده را برای مرورگر ارسال می کند
فرآیند ارسال درخواست به سرور و دریافت پاسخ از PHP
تمام این فرآیند معمولا چیزی در حد چندهزارم ثانیه زمان می گیرد؛ در حدی که مخاطبان اصلا متوجه آن نخواهند شد.
یادگیری پی اچ پی چقدر سخت است؟
همانطور که اشاره شد، یادگیری پی اچ پی (نسبت به بیشتر زبانهای کدنویسی) آسان حساب می شود. برای یادگیری زبان PHP لازم نیست آپولو هوا کنیم! اما در عین حال قرار نیست کسی در 5 دقیقه تبدیل به برنامه نویسPHP بشود!
اگر قبلا تجربه کدنویسی و آشنایی با مبانی برنامه نویسی داشته باشید، می توانید در چند ماه بر این زبان هم مسلط شوید.
اگر تازه کار هستید همانطور که قبلا در مقاله "برای برنامه نویس شدن با کدام زبان برنامه نویسی شروع کنم؟" اشاره کرده ام، لطفا با مطالعهی "مبانی برنامه نویسی" شروع کنید و کمی حوصله کنید.
پی اچ پی چقدر امنیت دارد؟
کدنویسی با PHP چیزی مثل استفاده از برق یا چاقوی آشپزخانه است؛ اگر درست استفاده اش کنید، میتواند بسیار امن باشد، اما همزمان خطرناک هم هست، اگر اشتباه بزنید!
برای اینکه پروژه های پی اچ پی شما امن باشند، نیاز نیست متخصص امنیت باشید. موضوع مهم این است که اصول پایه ای امنیت را بدانید؛ برای مثال: همیشه وروردی های کاربر را قبل از هر پردازشی، کنترل کنید.
با کمی دقت حین کدنویسی و دیباگ، بسیاری از ایرادهای امنیتی پروژه های PHP را می توان رفع کرد.
برای نوشتن کدهای امن، قانون اول این است که بدانید دقیقا کدهای شما چه کار می کنند.
چه ابزاری برای کدنویسی PHP لازم دارم؟
در اصل هیچ ابزار خاصی برای کدنوشتن به زبان پی اچ پی لازم نیست. کدهای PHP متنِ خالص هستند که میتوانید با هر ادیتوری که در دسترس باشد (حتی نوت پد) آن ها را بنویسید.
اما اگر بخواهید کمی سریعتر کد بنویسید و کارتان آسان تر باشد از ادیتورهای عمومی و اگر بخواهید سریع و حرفهای کد بزنید از IDE ها (معادل فارسیاش را نمیدانم) استفاده کنید.
ادیتوری مثل VSCode می تواند کار را راه بیندازد؛ اما اگر مشهورترین IDE ها برای PHP را بخواهید: PhpED و یا PHPStorm را دانلود و نصب کنید.
مزایای IDE ها در کدنویسی پی اچ پی:
1. بخش های مختلف کدها به صورت رنگی و متفاوت از همدیگر نمایش داده می شوند
2. از نظر املایی و ساختاری (syntax) کدهای شما را کنترل می کند (اگر مثلا تابعی را اشتباه نوشته باشید برایتان مشخص می کند)
3. توابع را پیشنهاد می دهد (بر اساس حروفی که تایپ می کنید) و همچنین پارامترها و آرگومانهای داخل تابع را یادآوری میکند
4. برجسته شدن پرانتزها و آکلادهای مرتبط با همدیگر (مثلا به راحتی می توانید شروع و پایان یک حلقه یا شرط را پیدا کنید)
5. شماره گذاری سطرها
بهترین کتاب ها برای یادگیری PHP
متاسفانه نتوانستم کتابی جدید که به فارسی، ترجمه یا تالیف شده باشد، پیدا کنم.
دو کتاب زیر می توانند کتابهای خوبی برای یادگیری PHP باشند:
در این کتاب ضمن مطالعه مفاهیم اساسی برنامه نویسی PHP و کار با دیتابیس MySQL با طراحی فرانت اند (Frontend) و مفاهیم اساسی در HTML, CSS و جاوااسکریپت آشنا خواهید شد.
Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 (Learning PHP, MYSQL, Javascript, CSS & HTML5) 5th Edition
Robin Nixon
2018
با مطالعه این کتاب که نسبت به کتاب فوق با حجم کمتر، نگاهی اختصاصی تر به زبان PHP دارد، می توانید بر پایه مثالهای ارائه شده در کتاب، درک کاملی از پی اچ پی و کار با این زبان اسکریپتنویسی سِرورساید پیدا کنید.
PHP 7 Solutions: Dynamic Web Design Made Easy 4th Edition
David Powers
2019
بهترین منابع آنلاین برای یادگیری PHP
اگر تازه شروع به مطالعه در طراحی وب کرده اید، به w3schools مراجعه کنید (اینجـــا) و از آموزشهای این وبسایت که کاربردی و مفید هستند، استفاده کنید.
وبسایت PHP.net (اینجا) هم مرجع این زبان است و داکیومنت اصلی زبان اسکریپت نویسی پی اچ پی را میشود در آن پیدا و مطالعه کرد.
پس از یادگیری PHP چه کار کنیم
همان طور که اشاره شد، بعنوان یک طراح وب، شما نیاز به ترکیبی از فناوری های بکند (Backend) و فرانت اند دارید، تا یک وبسایت داینامیک کامل و کاربردی بسازید. حین مطالعه منابع PHP و تمرین، خیلی زود متوجه خواهید شد که به تسلط نسبتا بالایی در HTML,CSS و جاوااسکریپت نیاز دارید.
پس از اینکه به اندازه کافی (حداقل چند ماه) در این موضوع ها مطالعه و تمرین کردید، نوبت به فریمورک های (Frameworks) پی اچ پی میرسد.
آشنایی و بحث درباره فریمورک ها را در مقاله دیگری ارائه خواهم کرد.
برای سمتِ سرور، غیر از PHP گزینه دیگری هم هست؟
بله، فناوری های دیگری هم برای اسکریپت نویسی سمت سرور وجود دارند که هر کدام کاربردها، مزایا و معایبی دارند. گزینه هایی مثل Nodejs (جاوااسکریپتِ سمتِ سرور) و یا پایتون (Python) را هم بررسی کنید.
جدیترین رقیب برای پی اچ پی ASP دات نت است که توسط مایکروسافت توسعه داده شده. اگر علاقمند بودید، مقاله ام را که قبلا برای "شروع یادگیری برنامه نویسی ASP.NET" نوشته ام را نیز مطالعه کنید.
آیا کپی پیست کردن کدها، برنامهنویسی است؟
کپی پیست (copy/paste) کردن کدها، ایرادی ندارد و میتواند بخشی از کار برنامه نویس باشد. این کاری است که برنامه نویسها، گهگاه انجام میدهند.
اما دو نکته زیر را حتما به خاطر بسپارید:
اول: اگر پروژه شما تجاری است، مطمئن شوید که اجازه دارید این تکه کد را در پروژهتان استفاده کنید.
هرگز از کدهایی که همکار برنامه نویس تان نوشته است، بدون کسب اجازه و رضایت ایشان استفاده تجاری نکنید.
دوم: مهمتر اینکه قبل از کپی کردنِ یک تکه کد، آن را درست بررسی کنید و بدانید چه کار میکند.
یک تکه کدِ اشتباه، می تواند بلاهای زیادی سرِ خودتان، پروژهتان و سرور بیاورد؛ از خطاهای عجیب و غریب بگیر، تا باگ های امنیتی، و حتی سوختنِ سخت افزار سرور!
ضمن اینکه بدون مطالعه و درک صحیح از کدهایی که استفاده کردید، توانایی و اعتماد به نفس، برای به عهده گرفتنِ پروژههای چالشی و بزرگ نخواهید داشت.
پس سعی کنید قبل از Ctrl+C حداقل چند دقیقه ای کد را بخوانید، توابع و الگوریتم آن را بفهمید.
جمع بندی
در این مقاله سعی کردم در حد چند خط، فقط نگاهی گذرا به آنچه که برای ورود به دنیای PHP لازم دارید، و سوالات اولیه ای که معمولا بیشتر اوقات پرسیده شده اند، بپردازم. پی اچ پی یک فناوری کاملا بالغ و محبوب در طراحی وب بوده، از امنیت کافی برخوردار است؛ یادگیری این زبان آسان است اما زیادی نباید دلتان را صابون بزنید! کتابهای بهروز، همراه با سایتهای مرجع و مفید این زبان را دم دستتان داشته باشید. امیدوارم توانسته باشم به بخشی از سوالات شما پاسخ بدهم. اگر سوال یا ابهامی برای شروع و یا ادامه راهتان در طراحی وب با زبان PHP داشتید، در همین صفحه آن را مطرح کنید.
درود بر شما
با سپاس از زحمتی که بابت نوشتن این مطلب کردید.
ممنون از راهنمایی و مطالب خوبتون...
درود / سپاس از دقت نظر شما
عالی... ممنون از اطلاعات جامع و کار آمدتان... پاینده باشید