PHP چیست ؟ (معرفی فریمورک ها)
زبان برنامه نویسی PHP یکی از زبان های برنامه نویسی سمت سرور است که کاربرد اصلی آن، در پیاده سازی وب سایت های پویا است. طی 10 سال ، این زبان برنامه نویسی، به مهم ترین ابزار برای پیاده سازی پروژه های وب داینامیکی تبدیل شده است. این زبان برنامه نویسی در سال 1994 توسط راسموس لردورف (Rasmus Lerdorf) و به صورت یک سری توابع کتابخانه ای با زبان C پیاده سازی شده است. در فاصله کوتاهی، نسخه دوم PHP نیز توسط لردورف ارائه گردید. البته تا آن زمان، به زحمت می شد عنوان «زبان برنامه نویسی» را برای PHP استفاده کرد. اما در سال 1997، این زبان برنامه نویسی به شدت متحول شد. دو نفر به نام های زیو سوراسکی (Zeev Suraski) و اندی گاتمنز (Andy Gutmans) هسته اصلی PHP را بازنویسی کردند و به این ترتیب نسخه سوم PHP متولد شد. ما در سایت زر سایت میخواهیم یک معرفی بسیار کلی از PHP داشته باشیم که بصورت مبتدی متوجه شویم که PHP چیست؟ PHP مخفف PHP Hypertext Preprocessor است که PHP یک اسم خاص در آن میباشد . PHP یک زبان برنامه نویسی یا اسکریپت نویسی اپن سورس (Open Source) است. به این معنا که استفاده از PHP کاملا رایگان است و شما هیچ هزینهای برای کار با آن پرداخت نمیکنید. کدهای PHP باید روی یک سرور اجرا شوند. این سرور میتواند یک سرور واقعی باشد و یا سرور موجود در کامپیوتر شما (با استفاده از نرم افزارهایی مثل wamp یا xampp). PHP در بسیاری از سایت های بزرگ جهان استفاده شده و کاربردی جهانی دارد.
برای مشاهده ی تعرفه های سئو ، کلیک کنید .
این مقدماتی بود که نیاز بود دربارهی PHP بدانیم تا بهتر بتوانیم به سوال PHP چیست؟ پاسخ دهیم. در ادامه میخواهیم بصورت ریز تر و جزئی تر به پاسخ این سوال بپردازیم.
PHP کارهای پشت صحنه را در صفحات وب انجام میدهد. به این معنا که شما با استفاده از PHP نمیتوانید ظاهر سایت را تغییر دهید. این زبان ، یک زبان برنامه نویسی است که تاثیر مستقیمی روی ظاهر سایت ندارد و استفاده از آن شما میتوانید اطلاعات مختلف را از پایگاه داده بگیرید و به کاربر نشان دهید. درواقع PHP یک زبان برنامه نویسی است که قدرت اصلی آن زمانی پدیدار میشود که با یک پایگاه داده یا Database ترکیب میشود. PHP میتواند اطلاعات را وارد دیتابیس کند و همینطور از آن اطلاعات مختلف را بخواند و به کاربر نشان دهد.
این زبان همانند سایر زبان های برنامه نویسی دارای رقبای خاص خود میباشد . رقیبانی مانند : Perl, JSP, ColdFusion و ASP.NET اما زبان PHP برتری های چشمگیری نسبت به آنها دارد . کارایی بالا، واسطه های مختلف برای سیستم پایگاه های اطلاعاتی مختلف، کتابخانه داخلی برای انجام امور متداول، هزینه پایین، امنییت بالا و … از جمله برتری های این زبان نسبت به رقیبان خود است.
یکی از نکات مهم زبان php مستقل از محیط کار بودن آن است، بدین صورت که در تمامی کامپیوترها و سیستم عامل ها قابل اجرا است. php روی لینوکس، ویندوز و … به سادگی اجرا میشود. درواقع قدرت اصلی php زمانی پدیدار میشود که با یک پایگاه داده یا Database ترکیب میشود. PHP میتواند اطلاعات را وارد دیتابیس کند و همینطور از آن اطلاعات مختلف را بخواند و به کاربر نشان دهد. شما با استفاده از PHP میتوانید به یک دیتابیس وصل شوید و اطلاعات موجود در آن پایگاه داده، مثل مطلب، نظرات و… را به کاربرانتان نشان دهید.
داینامیک و استاتیک بودن صفحات وب :
در این قسمت میخواهیم دربارهی دو موضوع صفحات وب داینامیک (Dynamic) و استاتیک (Static) صحبت کنیم و خیلی ساده آنها را توضیح دهیم. اما قبل از توضیح پیشنهاد میکنیم که از تعرفه ی پکیج بارگزاری محتوا در زرگراف دیدن فرمایید .فرض کنید که شما در سایتتان یک بخشی دارید که میخواهید آخرین اخبار شرکت خودتان را نمایش دهید. برای نمایش این اخبار، از ۲ روش میتوانید استفاده کنید:
روش اول: بصورت دستی وارد کدهای HTML سایت خودتان شوید و اخبار را در کدهای HTML بصورت دستی بنویسید.
روش دوم: اخبار را ابتدا وارد پایگاه داده یا دیتابیس بکنید و سپس با استفاده از یک زبان برنامه نویسی مثل PHP، آن اخبار را از دیتابیس بخوانید و به کاربران نشان دهید. روش اول، یعنی زمانی که شما بصورت دستی اقدام به نوشتن اخبار در صفحات وب خود میکنید را روش Static میگویند و اصطلاحا میگویند که آن صفحهی شما، یک صفحهی وب استاتیک یا Static Web Page است. اما وقتی که شما اطلاعات و کلا محتویات صفحه را از یک پایگاه داده میخوانید و به کاربران نشان میدهید، آن صفحهی وب شما به یک صفحهی وب داینامیک یا Dynamic Web Page تبدیل میشود. در کنار PHP حتما اسم MySQL نیز به گوشتان خورده است. اگر بخواهیم یک تعریف کلی از MySQL داشته باشیم به اینگونه است که MySQL یکی از پایگاه های دادهای است که PHP میتواند با آن کار کند و در واقع شما با استفاده از PHP میتوانید به پایگاه داده MySQL وصل شوید، اطلاعات را وارد آن کنید و همینطور اطلاعات وارد شده در گذشته را از آن بخوانید و درصفحه وبتان نمایش دهید.
چه کار هایی را میتوانیم با PHP انجام دهیم ؟
- با PHP میتوانید صفحات داینامیک تولید کنید.
- با PHP میتواند اطلاعات را به دیتابیس بفرستید و از دیتابیس اطلاعات را بخوانید و همینطور اطلاعات موجود در دیتابیس را ویرایش یا حذف کنید.
- با PHP میتوانید با فرم های HTML خود ارتباط برقرار کنید و اطلاعات ورودی کاربران در فرم ها را پردازش کنید و کارهای مدنظرتان را روی آنها انجام دهید.
- PHP به شما امکان کار با Cookie ها و Session ها را میدهد.
- با PHP امکان رمزگذاری کردن اطلاعات حساس را دارید و این امکان نیز در آن تعبیه شده است.
- با اسفتاده از PHP شما میتوانید فایل های txt, pdf, jpg و… تولید و ویرایش کنید و این یک امکان فوق العاده است که PHP در اختیار شما قرار میدهد.
عملکرد PHP چگونه است ؟
ما توسعه دهندگان وب (Web Developers) با این زبانِ کدنویسی، صفحاتی می سازیم که خودشان فکر میکنند و برای درخواستهای مختلف بر اساس شرایط، پاسخ های متفاوتی می دهند. اگر بخواهیم به طور خلاصه، نحوه عملکرد یک وبسایت بر پایه PHP را بدانیم:
1. مرورگر درخواستی برای وب سرور ارسال می کند
2. وب سرور درخواستِ دریافتی را به موتورِ پی اچ پی (PHP Engine) ارسال میکند
3. موتور PHP کد اسکریپت مرتبط با درخواست را پردازش می کند. در بیشتر اوقات نیاز است تا دادههایی از دیتابیس (Database) فراخوانی شوند
4. وب سرور، صفحهی پردازش شده را برای مرورگر ارسال می کند
تمام این فرآیند معمولا چیزی در حد چندهزارم ثانیه زمان می گیرد؛ در حدی که مخاطبان اصلا متوجه آن نخواهند شد. در ادامه میخواهیم بعضی از سایت هایی که با این زبان نوشته شده اند را به شما معرفی کنیم
بسیاری از برنامه نویسان بر این باورند که زبان PHP مناسب یک پروژه ی بزرگ نیت اما همانگونه که ملاحظه میکنید قدرتمند ترین سایت ها در ایران و یا جهان با این زبان نوشته شده اند حالا شاید برای شما سوال باشد که یادگیریِ زبان را باید از کجا شروع کنیم پس با ما همراه باشید تا به این سوال پاسخ دهیم . ابتدا بررسی میکنیم که php یک زبان سخت است یا آسان ؟ با دیدن قابلیت های این زبان شاید فکر کنید یادگیریِ php بسیار سخت باشد اما در حقیقت کاملا در اشتباهید و یادگیری این زبان بسیار ساده میباشد در حقیقت اگر یک منبع حرفه ای خوب و حرفه ای پیدا کنید میتوانید در کمتر از یک ماه به صورت کامل این زبان را یاد بگیرید در ادامه به منابعه معتبر برای یادگیری زبان PHP البته به زبان اصلی اشاه خواهیم کرد پس با زرگراف همراه باشید.
اما برای یادگیری زبان PHP همانند زبان های دیگر نیاز به پیشنیاز هایی داریم مثلا قبل از یادگیری PHP خیلی خوب است که کمی با دنیای وب آشنایی داشته باشید. برای مثال اگر قبل از PHP کمی به طراحی وب با HTML و CSS مسلط باشید، کار شما در یادگیری و کار با PHP نیز بسیار ساده و راحت میشود. قطعا سوالی که ذهن شما را درگیر میکند این است که چگونه زبان PHP را بهتر یاد بگیریم . با زر سایت همراه باشید .
پیش نیاز های زبان PHP :
-
باید دانشجوی
-
رشته کامپیوتر باشید.
اجازه دهید خیالتان را راحت کنم! کسی که در رشته کامپیوتر تحصیل نکرده باشد ، به سادگی طراح وب خوبی نخواهد شد. شما باید دروس حیاتیای مثل « مبانی کامپیوتر و برنامهنویسی » ، « برنامهنویسی پیشرفته » ، « پایگاه دادهها »، « مهندسی نرم افزار » (یا تجزیه و تحلیل) ، « طراحی وب » (همان HTML و CSS کافی است) ، مهندسی اینترنت و گرافیک را پاس کرده باشید تا بتوانید مفاهیم مختلف آن دروس را با هم ترکیب کنید تا بشود یک سایت یا سیستم مدیریت تحت وب.
توجه: به این حرفها دقت نکنید که یک دانشجو میگوید در دانشگاه چیزی یاد نمیگیریم . در بدترین شرایط، همین که ذهن شما با بعضی مفاهیم اولیه در این دروس آشنا شود، کافیست. پس باید یا دانشجو و کارآموز رشته کامپیوتر در کار و دانش یا دانشگاه باشید یا حداقل قصدتان این باشد که به زودی در این رشته مشغول به تحصیل شوید و همزمان با طی کردن ادامه مراحل، این دروس را پاس کنید. شاید برایتان سوال بوجود بیاید که اگر دانشجوی کامپیوتر نباشیم هیچ شانسی نداریم ؟
دقت کنید که هیچ چیز، تحصیلات دانشگاهی نمیشود . از آن چیزی که شما بیرون از دانشگاه یاد میگیرید خیلی برتر است، اگر فکر میکنید به صورت تجربی یا با مطالعه آنها را یاد میگیرید که سرِ کار هستید و دارید وقت خود را تلف میکنید. اگر میتوانید در دانشگاههای علمی-کاربردی در رشته نرم افزار یا فناوری اطلاعات برای دو سال (چهار ترم – کاردانی) مشغول به تحصیل شوید. وگرنه باید به طور آزاد، این دورهها را با استادی که بدانید خودش برنامهنویسی و طراحی وب انجام داده بگذرانید: پایگاه دادهها از دورههای ICDL (یعنی آموزش Access)، آموزش زبان C یا C++ (دقت کنید که زبان C تقریباً پایهی تمام زبانهای برنامهنویسی است و کسی که با آن آشنا نباشد خیلی سخت است یک PHPکار شود)، مبانی فناوری اطلاعات، فتوشاپ و … .
-
کسی که دائماً در وب نچرخد ، طراح وب نمیشود.
اولین چیزی که باید برای طراح وب شدن انجام دهید این است که مدتها در اینترنت بچرخید . البته چرخیدن شما با چرخیدن کسی که در وب اوقات فراغتش را پر می کند باید کمی تفاوت داشته باشد. شما باید کنجکاوتر از دیگران در وب بچرخید. یعنی اگر امروز در یاهو ایمیل میسازید، خیلی دقیق به فرم ثبت نام نگاه کنید. مثلاً انواع فیلدهایی که دارید پر میکنید را در ذهن داشته باشید. با چند فرم دیگر مقایسه کنید. مثلاً ممکن است یکی «جنسیت» را با فیلد کرکرهای سؤال کرده باشد و یک سایت دیگر با دکمههای دایرهای (Radio). یا مثلاً اگر شما یک فیلد آپلود عکس دیدید باید ببینید میشود یک فایل متنی هم آپلود کرد ؟ اگر آپلود شود چه میشود ؟ پیغامهای آن سیستم در ازای این کار شما چیست؟ و خلاصه باید کمی سمجتر از بقیه با سایتها کار کنید.
-
یک وبلاگ راه بیندازید
گام بعد این است که برای مدت کوتاهی با یک یا چند سرویسِ خوبِ وبلاگ کار کنید.
مثلاً در بلاگفا و در Google Sites. (قدیمتر، WordPress و Blogger بودند که فیلتر شدند و من فکر میکنم بزرگترین اشتباه کمیته فیلترینگ ایران، فیلتر کردن این دو سرویس بود)
در سرویسهای مختلف با یک نام کاربریِ ثابت ثبت نام کنید و سعی کنید مثلاً در آنها چند پست ارسال کنید. با امکانات آنها آشنا شوید. آنها را با هم مقایسه کنید…
البته قصد جدیتان این نباشد که در این وبلاگها بمانید. چون باید به زودی به سایت اصلیتان کوچ کنید. پس این موارد را انجام دهید :
۱- یک پروژه کوچک برای خودتان تصور کنید.
۲- سعی کنید با HTML و CSS سایتی برای پروژهی انتخابیتان طراحی کنید.
۳- هاست و دامنه بخرید و سایتی که طراحی کردهاید را آپلود کنید.
۴- مدتی روی آن سایت کار کنید و آرایش و تزیینش کنید.
۵- به مرور سایتتان را به یک سیستم مدیریت محتوا ارتقا دهید.
-
حالا به سراغ یادگیری PHP بروید.
بعد از اینکه مدتی با یک CMS کار میکنید، متوجه میشوید که محدودیتهایی وجود دارد که باید رفع کنید. همین محدودیتها باعث میشود به مرور با طراحی وب پویا آشنا شوید. در پروژه قبلی ، شما طراحی وب « استاتیک » (ایستا) را تجربه کردید. حالا وقت این است که طراحی وب پویا (داینامیک) را تجربه کنید. پس یک پروژه در نظر بگیرید که نیاز به دیتابیس و ایجاد کاربر و فرمهای افزودن به دیتابیس و خواندن و … داشته باشد.
چه ابزاری برای کدنویسی PHP لازم دارم؟
در اصل هیچ ابزار خاصی برای کدنوشتن به زبان پی اچ پی لازم نیست. کدهای PHP متنِ خالص هستند که میتوانید با هر ادیتوری که در دسترس باشد (حتی نوت پد) آن ها را بنویسید. اما اگر بخواهید کمی سریعتر کد بنویسید و کارتان آسان تر باشد از ادیتورهای عمومی و اگر بخواهید سریع و حرفهای کد بزنید از IDE ها استفاده کنید. ادیتوری مثل VSCode می تواند کار را راه بیندازد؛ اما اگر مشهورترین IDE ها برای PHP را بخواهید: PhpED و یا PHPStorm را دانلود و نصب کنید.
-
مزایای IDE ها در کدنویسی پی اچ پی:
1. بخش های مختلف کدها به صورت رنگی و متفاوت از همدیگر نمایش داده می شوند
2. از نظر املایی و ساختاری (syntax) کدهای شما را کنترل می کند (اگر مثلا تابعی را اشتباه نوشته باشید برایتان مشخص می کند)
3. توابع را پیشنهاد می دهد (بر اساس حروفی که تایپ می کنید) و همچنین پارامترها و آرگومانهای داخل تابع را یادآوری میکند
4. برجسته شدن پرانتزها و آکلادهای مرتبط با همدیگر (مثلا به راحتی می توانید شروع و پایان یک حلقه یا شرط را پیدا کنید)
5. شماره گذاری سطرها
فریمورک ها
PHP یه زبان برنامه نویسی سمت سرور میان برنامه نویسان به حساب میاد. چارچوب ها یا فریم ورک PHP برای برنامه نویسان بستری رو فراهم میکنن تا به راحتی و در کمترین زمان، وب سایت های قدرتمندی رو پیاده سازی کنن.
بنابراین استفاده از فریمورک ها تا حد زیادی باعث صرفه جویی در زمان و کاهش حجم کار شما خواهد شد. در حال حاضر فریم ورک های زیادی در دسترس برنامه نویسان قرار دارن و انتخاب بهترین فریم ورک PHP، اولین قدم برای پیاده سازی سایت های حرفه ای و قدرتمند به حساب میاد.
معرفی 8 فریم ورک PHP
فریم ورک های PHP در سایز های مختلفی هستند که شما باید با توجه به تجربه و تسلط خودتون بر زبان PHP، فریم ورک مناسب رو انتخاب کنید.
در ادامه به معرفی بهترین فریم ورک های PHP میپردازیم. بعد از مطالعه این آموزش، به راحتی میتونید فریم ورک مناسب رو انتخاب کرده و شروع به یادگیری آن کنید.
-
فریم ورک Laravel (لاراول) :
این فریم ورک یکی از محبوب ترین چارچوب های Open Source زبان PHP به حساب میاد. این چارچوب از سال 2011 فعالیت خودش رو شروع کرده و به طور مستمر در حال بروزرسانی هست. این چارچوب با ارائه قابلیت های عالی و همچنین امنیت بالا، یکی از بهترین چارچوب ها برای پیاده سازی سایت های قدرتمند شناخته شده.
-
مزایا و برتری های فریمورک لاراول (Laravel)
فریم ورک لاراول دارای ویژگی هایی هست که اون رو به یک بستر عالی برای توسعه سایت های قدرتمند و پیچیده تبدیل کرده.
این چارچوب به توسعه دهندگان اجازه میده تا با سفارشی سازی فریمورک، نیاز های خودشون در پیاده سازی برنامه های مختلف رو برطرف کنن. همچنین این فریم ورک به خوبی از معماری MVC پشتیبانی میکنه.
با استفاده از این فریم ورک امکان پیاده سازی وب سایت های سریع و بسیار امن رو خواهید داشت. از اونجا که “امنیت” یکی از معیار های مهم در پیاده سازی برنامه های تحت وب به حساب میاد، به هیچ عنوان نباید امنیت لاراول رو نادیده بگیرید!
-
معایب و کاستی های فریم ورک لاراول (Laravel)
با توجه به اینکه مدت زمان زیادی از ارائه این فریم ورک نمیگذره، مسلما باید انتظار اشکالات و باگ هایی رو داشته باشید. (البته این اشکالات خیلی سریع در حال برطرف شدن هستند و جای نگرانی نداره!)
-
فریم ورک Symfony (سیمفونی) :
فریم ورک سیمفونی جزو نخستین چارچوب های ارائه شده برای زبان PHP هست و اولین نسخه اون در سال 2005 ارائه شده. بنابراین با توجه به سابقه عملکرد این چارچوب، سیمفونی به یکی از فریم ورک های قابل اعتماد برای توسعه دهندگان تبدیل شده. همچنین این فریمورک به عنوان یک چارچوب گسترده معماری MVC شناخته شده که از تمامی استاندارد های PHP پیروی میکنه.
این فریم ورک ویژگی هایی مشابه با لاراول رو داره و باید گفت انتخاب یکی از این دو فریمورک کار سختی هست!
-
مزایا و برتری های فریمورک سیمفونی (Symfony)
این چارچوب کاملا انعطاف پذیر هست و به خوبی میتونه با پروژه هایی همچون دروپال ادغام بشه. بنابراین میتونید این فریمورک رو به راحتی روی هر پلتفرمی نصب و استفاده کنید.
برای استفاده از این فریمورک به یک فضای حافظه بسیار کم نیاز دارید. با استفاده از ماژول های ارائه شده برای این چارچوب، میتونید خیلی سریع برنامه ها رو پیاده سازی کرده و اونها رو توسعه بدین.
این فریم ورک همچنین امکان استفاده از شرایط همکاری رو فراهم میکنه. این یعنی توسعه دهندگان به راحتی میتونن از بلوک های ساخت نرم افزار همچون مدیریت فرم ها و مدیریت ترجمه استفاده کنن.
-
معایب و کاستی های فریمورک سیمفونی (Symfony)
این فریم ورک به توسعه دهندگان حرفه ای و پیشرفته توصیه شده. بنابراین شاید استفاده از این فریم ورک برای تازه کار ها دشوار باشه!
-
فریم ورک Codelgniter (کدایگنایتر) :
این چارچوب یکی از بهترین فریم ورک های سال 2019 به حساب میاد. اولین نسخه این چارچوب در سال 2006 ارائه شد. بسیاری از برنامه نویسان استفاده از این فریم ورک رو ترجیح میدن، چرا که ماژول های آماده بسیاری رو ارائه میده که با استفاده از اونها در مدت زمان بسیار کم، میشه وب سایت های حرفه ای و پیچیده ای رو پیاده سازی کرد.
-
مزایا و برتری های فریمورک Codelgniter
یکی از مزایایی که این فریم ورک رو در لیست بهترین فریم ورک های PHP قرار داده، سرعت بالای اون هست. بسیاری از توسعه دهندگان ادعا دارند که این فریم ورک سریعترین چارچوب PHP هست.
کدایگنایتر دارای کتابخانه های بسیار ساده ای هست، بنابراین میتونه گزینه خوبی برای تازه کارها باشه.
این فریم ورک با وجود گذشت 12 سال از اولین انتشار، همچنان پایدار هست.
این فریم ورک دارای سیستم ایجاد پایگاه داده کاربرپسند هست.
-
معایب و کاستی های فریمورک Codelgniter
چارچوب CodeIgniter دارای ORM داخلی نیست.
اصلاح کدها گاهی دشوار خواهد بود.
-
فریم ورک CakePHP
یادگیری و استفاده از این فریم ورک کاملا آسان هست و به تازه کار ها توصیه میشه.
این فریم ورک با بکارگیری ویژگی هایی همچون محافظت از درخواست های جعلی (CSRF) امنیت قابل قبولی رو برای برنامه های شما فراهم میکنه.
5. فریم ورک Yii (یی)
این فریم ورک از سال 2008 فعالیت خودش رو شروع کرده و برای برنامه های تحت وب با هر موضوعی مناسب هست. برنامه هایی که با استفاده از این چارچوب پیاده سازی میشن، دارای سرعت بارگذاری خوبی خواهند بود.
-
مزایا و برتری های فریمورک Yii
این فریم ورک قابلیت همکاری با چارچوب های دیگه همچون Zend رو برای شما فراهم میکنه.
Yii یکی از چارچوب های سبک و در عین حال با کارایی بالا به حساب میاد.
این چارچوب دارای ویژگی های امنیتی بالا در برابر حملات احتمالی هست و گزینه خوبی برای پیاده سازی سیستم های مدیریت محتوا (CMS) خواهد بود.
-
معایب و کاستی های فریمورک Yii
این فریم ورک برای پیاده سازی وب سایت و برنامه های بسیار پیچیده مناسب نیست.