PHP یک زبان اسکریپتی سمت سرور است که در اصل برای طراحی سایت استفاده می شود اما می توان از آن به عنوان زبان برنامه نویسی برای اهداف عمومی نیز نام برد. این زبان در سال 1994 توسط Rasmus Lerdorf از دانشگاه واترلو کانادا ایجاد شد و هم اکنون رفرنس پیاده سازی آن توسط The PHP Development Team تولید می شود. PHP ابتدا Personal Home Page یا صفحه خانگی شخصی نام گرفت. و امروز به آن PHP: Hypertext Preprocessor گفته می شود.
لیست مطالب
کد های PHP می تواند در درون HTML، HTML5، الگو (Template) های مختلف صفحات وب، CMS ها، فریمورک های وب نوشته شود. PHP معمولا با مترجم PHP به عنوان ماجول یا CGI در سرور پردازش می شود. مترجم استاندارد PHP با Zend Engine تحت لیسانس PHP بطور رایگان می تواند بر روی انواع سیستم عامل ها نصب شود.
در طول سال های 2014 و 2015 یک ورژن اصلی و مهم از PHP توسعه داده شد که آن را PHP7 یا (PHP next generation (phpng نام گذاشتند. در این ورژن سعی شد با استفاده از ساختار داده فشرده تر و باز بینی مترجم سرعت آن را بهبود دهند. این در حالی صورت گرفت که سازگاری PHP در این تغییرات حفظ شد. در جولای 2014 وردپرس که به عنوان یکی از CMS های پر کاربرد که تقریبا یک چهارم وب سایت ها از آن استفاده می کنند شروع به استفاده از phpng نمود، و phpng تقریبا 100% بهبود در عملکرد را نشان داد. برنامه نویسی شی گرا ابتدا در PHP3 وارد و در PHP4 بهبود داده شد و به PHP قدرت انتزاعی بیشتر و خلاقیت بیشتر و آسان تری را به برنامه نویسان داد. اما بعلت استفاده بیش از حد از رفرنس ها سرعت آن کاهش یافت. بدین جهت عملکرد Object ها در PHP5 بازنویسی شد.
یکی از نکات هیجان انگیز درباره PHP نصب آن بر روی 244 میلیون وب سایت است. طبق آمار w3techs.com ، 91.4% وب ها از انواع ورژن PHP استفاده می کنند.
PHP به طور گسترده ای برای ایجاد وب سایت استفاده می شود. PHP با زمان turn-around سریع تر، امنیت و قیمت مقرون به صرفه، انتخاب اول توسعه دهندگان وب شده است. با توجه به فراوانی مزایای استفاده از این زبان برنامه نویسی، بسیاری از تجارت آنلاین معروف مانند فیسبوک، یاهو، ویکیپدیا، فلیکر و غیره از این زبان برنامه نویسی استفاده می کنند.
در این قسمت من 11 برتری را توضیح می دهم که PHP را در میان توسعه دهندگان وب محبوب کرده است.
با استفاده از PHP، برنامه نویسی مانند نوشتن یک مقاله به زبان انگلیسی برای خواندن رایانه است، به جز اینکه این مقاله یک قطعه کد است که اجازه می دهد تا وب سایت ها به نحو شایسته ای که ممکن است ایجاد و اجرا شود. ایجاد یک کد در PHP ساده است، هر چند برخی از توسعه دهندگان شکایت می کنند که PHP عادت های برنامه نویسی لازم را که کدگذاری را ساده می کند ایجاد نمی کند (به طور استاندارد)، اما اجازه می دهد که کد بسیار شخصی شود و از این رو برای حفاظت راحت تر است.
PHP یک زبان متن باز است: رایگان، آسان برای استفاده و مقدار قابل توجهی از مستند در دسترس است – و آن را به بصرفه ترین روش برای ایجاد وب سایت های قوی، بدون هیچ گونه نگرانی در مورد تعهدات قانونی و هزینه اشتراک تبدیل کرده است. علاوه بر این، PHP موانع ورود توسعه دهندگان وب جدید را کاهش می دهد و به آنها اجازه می دهد تا به سادگی مهارت و استعدادهای خود را برای برنامه نویسی برای شروع استفاده کنند.
آخرین (و اخیرا) روند به سوی محتوای تطبیقی، سفارشی سازی CMS را به یک نیاز رقابتی حیاتی برای کسب و کار تبدیل کرده است. محتوای سازگار برای فرد بازدیدکننده به وب سایت (با استفاده از ورود به سیستم یا سابقه بازدید کننده) شخصی شده است تا یک تجربه شخصی برای بازدیدکنندگان ایجاد کند. این تنها زمانی امکان پذیر است که بتوان کد وب سایت سفارشی کرده و با CMS یکپارچه شده باشد. PHP وب سایت های amoebic ایجاد می کند، به توسعه دهندگان اجازه می دهد تا آنها را به اراده خود تغییر دهند. تمام وب سایت های PHP کاملا قابل تنظیم هستند و می توانند به راحتی با نیازهای مشتریان سازگار شوند زیرا سیستم های مدیریت محتوا مانند وردپرس، دروپال، جوملا و دیگران اساسا مبتنی بر PHP هستند. از این رو، توسعه و یا یکپارچه سازی یک راه حل جامع CMS سفارشی با وب سایت شما ساده است.
کد ایجاد شده در PHP می تواند بر روی تمام سیستم عامل های اصلی اجرا شود، به توسعه دهنده اجازه می دهد بطور یکپارچه وب سایت را در چندین سیستم عامل ادغام کند. به کسب و کار اجازه می دهد که تمام زیر ساخت ها را بشکل بصرفه تری تنظیم کند. با PHP می توان پلتفرم ها را با تنوع ویندوز، لینوکس، یونیکس و هر زیر ساخت دیگر با قابلیت های بیشتر Apache و MySQL استفاده کرد.
فیسبوک، بزرگترین و قدرتمند ترین پلت فرم رسانه های اجتماعی در PHP اجرا می شود. فیسبوک حتی یک زبان مشتق شده از PHP، به نام “هک” را برای رفع نیازهای در حال ظهور مدیریت غول پیکرها ایجاد کرده است. این سطح انعطاف پذیری، قابلیت اطمینان و مقیاس پذیری که در PHP وجود دارد را نشان می دهد. در مقایسه با سایر زبان ها، بزرگترین مزیت PHP این است که کد وب سایت را می توان بدون نیاز به یک بار راه اندازی دوباره سرور، به روز شود!
PHP یکی از زبان های بسیار مقیاس پذیر برای توسعه وب سایت است. به عنوان یک زبان متن باز، خانواده توسعه دهندگان آنلاین به طور مداوم در حال تلاش برای توسعه به جهت پاسخ به الزامات در حال ظهور کسب و کار هستند. این اجازه می دهد تا توسعه دهندگان و کسب و کارها به راحتی توان اضافه کردن ویژگی های جدیدتر را در وب سایت خود داشته باشند.
در آخرین روند محتوای تطبیقی، وب سایت های Responsive و سیستم های طراحی روان یا Fluid برای کسب و کار بیشتر از پیش لازم است. در این زمینه، HTML5 استاندارد صنعتی ایی است که بدون شک برای توسعه وب سایت های بسیار پویا و Responsive الزامی است. این دقیقا جایی است که PHP اجازه می دهد که کد ها مستقیم در میان HTML نوشته شود. توسعه دهندگان به راحتی می توانند کد وب سایت ایستا موجود را به یک وب پویای کاملا جدید تبدیل کنند تنها با اضافه کردن کد PHP خود به HTML.
این یک نتیجه فرعی از متن باز بودن PHP است. زبان خود دارای یک جامعه گسترده و رو به رشد از توسعه دهندگان و کارشناسان حرفه ای است که مایل به پشتیبانی از مبتدیان هستند و به طور مداوم مشغول ارتباط با آخرین مشکلات موجود در جامعه توسعه وب. علاوه بر این، محبوبیت زبان و در نتیجه دسترسی به توسعه دهندگان به این معنی است که توسعه دهندگان مجبورند قیمت های بسیار رقابتی تری ارائه دهند.
چه چیزی یک زبان برنامه نویسی خوب را متفاوت می کند؟ میزان کتابخانه استاندارد آن زبان. کتابخانه ها نقش مهمی در ساده سازی و سرعت بخشیدن به توانایی پردازش داده های زبان بازی می کنند. با توجه به این که بازدیدکنندگان آنلاین در حالی که آنها در حال گشت و گذار هستند (در مرحله تحقیق اولیه «فرآیند خرید»)هیچ وقت بیش از 8 ثانیه در هر صفحه وب نیستند، زمان بارگذاری وب سایت نقش مهمی در حفظ آنها در وب سایت دارد. PHP پشتیبانی گسترده ای برای HTTP fetching، regular expressions, URL parsing و درایورهای پایگاه داده، و بسیار موارد دیگر را دارد. درست است که کتابخانه گسسته است، اما جامعه ایی از آن پشتیبانی می کند.
PHP سرعت توسعه را به اندازه سرعت اجرا افزایش می دهد. با استفاده از یک پشته قراردادی وب، PHP سرور وب آپاچی را به کار می گیرد و به برنامه ها اجازه می دهد تا پایگاه داده های MySQL را به کار گیرند و به توسعه دهندگان اجازه می دهد تا یک راه حل سفارشی و چند جانبه برای حضور آنلاین ایجاد کنند.
زمان تحویل Turnaround یکی از مهمترین عوامل افزایش عملکرد هر وب سایت است. PHP برای زمان برگشت یا تحویل سریع آن شناخته شده است. کتابخانه استاندارد بزرگ، طیف گسترده ای از افزونه ها، قابلیت پلتفرم متنوع، یکپارچگی بدون درز با سفارشی سازی CMS های مختلف و قابلیت جاسازی embed، به توسعه دهندگان باتجربه اجازه می دهد تا زمان برگشت بسیار سریع با سرعت های بسیار رقابتی ارائه دهند. علاوه بر این، هر وب سایتی که با استفاده از PHP توسعه یافته است، ویژگی های پردازش داده سریع تر را دارد و این وب سایت با سیستم عامل هایی مانند ویندوز، یونیکس و غیره سازگار است.
PHP قادر به ارائه زمان برگشت فوق العاده سریع است، زیرا دارای خانواده نسبتا بزرگی از فریمورک ها است. آنها از سطح سازمانی Zend و Yii frameworks، تا لاراول و Sympfony ، بهینه سازهای عملکردی مانند Phalcon و PHPixie برای طرح های برنامه شتابی و یا Code igniter برای طرح های منسجم تر موجود هستند.
اما قبل از اینکه به دنیای توسعه PHP بروید و یک پروژه ضربه فنی کنید، اولین و مهمترین سوالی که ممکن است به ذهن شما برسد این است که بهترین فریمورک کدام است تا لذت، جذابیت و قدرت طراحی را یکجا با هم داشته باشد.
من تصمیم گرفتم در ادامه به بهترین فریمورک های PHP نگاهی کنم و لیستی از قابلیت های آن ها تدوین کنم تا در وسط پروژه برای انتخاب خود دچار مشکل نشوید و در نهایت پروژه موفقی را به نتیجه برسد. بنابراین در اینجا به ترتیب سلسله مراتبی محبوبیت ترین شروع می کنیم. آمار مطابق با نظرسنجی اخیر درباره فریمورک PHP که توسط Sitepoint انجام شده است می باشد.
در حال حاضر Laravel محبوبترین چارچوب PHP در زرادخانه GitHub است که همیشه بنیان های خوش آتیه، تست شده و قابل اعتماد را از میان سایرین پیشنهاد می کند. دانش لازم برای استفاده از Laravel آشنایی با PHP و مفاهیم برنامه نویسی شی گرا است و برای سطح متخصصان مناسب است.
ویژگی های منحصر به فرد
Phalcon یک چارچوب کامل وب برای PHP 5 است که به عنوان یک برنامه افزودنی C نوشته شده و اجرا شده است. Phalcon اساسا با هدف ایجاد و حفظ برنامه های کاربردی وب با قابلیت تنظیم بالا و همگام سازی دستورالعمل های توسعه سازمانی ایجاد شده است. فالکن نیز برای سطح دانش متوسط مناسب است.
ویژگی های منحصر به فرد
سومین رتبه به Symfony در میان تمامی چارچوب های دیگر PHP اختصاص داده شده است. این یکی از فعال ترین چارچوبهاست که با ORM قدرتمند و مستندات عالی ارائه می شود. تطبیق پذیری مدام و سریع آن می تواند بیان این واقعیت باشد که دروپال، یکی از محبوبترین سیستم های متن باز تولید محتوا در جهان از کامپوننت های سیمفونی در آخرین نسخه خود استفاده می کند. این فریمورک برای هر دو سطوح حرفه ایی و متوسط مناسب است.
ویژگی های منحصر به فرد
Yii یک چارچوب غنی با عملکرد بالا است که عمدتا به زیبایی کد تمرکز می کند در حالی که تمام کارهای نا زیبا را کاملا پشت صحنه انجام می دهد. بسیاری از چیزها در Yii به طور خودکار اتفاق می افتد اما هنوز منحنی یادگیری کمی تند است. این فریمورک نیز برای سطح دانش متوسط مناسب است.
ویژگی های منحصر به فرد
Codeigniter برای یادگیری میکرو فریمورکی با انعطاف پذیری بی نظیر و مستندات جامع ساده می باشد. این فریمورک برای مبتدیان مناسب است.
ویژگی های منحصر به فرد
CakePHP در میان تمامی فریمورک های وب متن باز که به دنبال رویکرد Model-View-Controller (MVC) و الگوهای طراحی نرم افزار است، رتبه پنجم را داراست. برای سطح حرفه ایی مناسب می باشد.
ویژگی های منحصر به فرد
Zend یک چارچوب است که تنها برای پروژه های سازمانی مناسب است. هیچ چارچوب دیگری نمی تواند با انعطاف پذیری، مقیاس پذیری و قابلیت اطمینان آن مطابقت داشته باشد. با این حال، این چارچوب برای مبتدی ها و حتی متوسط ها مناسب نمی باشد، اما می تواند برای تنها یک گروه خاص که کاملا متخصص در برنامه نویسی PHP و مفاهیم شی گرایی هستند مناسب باشد.
ویژگی های منحصر به فرد
خوب، به نظر من، تصمیم گیری عاقلانه در انتخاب بهترین فریمورک بسیار مهم است، زیرا این تنها چیزی است که می تواند برنامه وب شما را ایجاد یا خراب کند. فقط با آنچه که دیگران انتخاب می کنند کار خود را انجام ندهید. از متخصصان مشاوره بگیرید یا زمانی برای مطالعه و بررسی نیاز های خود صرف کنید.
در زمان بررسی و مقایسه زبان های برنامه نویسی سمت سرور همیشه نام ASP.Net بعد از PHP به حافظه می آید. ASP.Net محصول میکروسافت است که سال ها در این زمینه با ورژن های مختلفی کار کرده است. در ادامه سعی می کنم که این دو زبان قدرتمند را در چند حوزه برای شما مقایسه کنم.
PHP و MySQL server, PostgreSQL server, Apache server, Linux OS رایگان هستند و به روزرسانی آنها نیز رایگان است. علاوه بر این، هزینه لایسنس اضافی برای داشتن یک سرور آماده بکار دیگر به عنوان پشتیبان یا برای اجرای چند سرور برای متعادل کردن بار یا Clustering وجود ندارد.
LAMP (لینوکس، آپاچی، MySQL و PHP) نیز در میان شرکتهای میزبانی وب بسیار محبوبتراست و محبوبیت آن در مقایسه با میزبانی ویندوز با هزینه میزبانی کمتری برای LAMP همراه است.
اگر سیستم عامل ویندوز، ASP.net و IIS رایگان هستند اما هزینه لایسنس قابل توجهی برای مایکروسافت ویندوز سرور، مایکروسافت SQL سرور و ارتقاء های آینده وجود دارد. هزینه های صدور لایسنس برای مایکروسافت می تواند بطور قابل توجهی افزایش پیدا کند، مثلا اگر سایت محبوب شود و برای اجرای سایت در سرورهای چندگانه یا ویژگی های سرور مانند متعادل سازی بار، clustering سرور، سرور پشتیبان نیاز پیدا کند پر هزینه تر می شود.
از آنجا که LAMP متن باز است، تعداد زیادی از توسعه دهندگان و داوطلبان در سراسر جهان وجود دارند که به طور مداوم آن را بهبود، به روزرسانی و بطور دوستانه پشتیبانی می کنند. علاوه بر این منابع پشتیبانی و توسعه دهندگان بیشتری برای پلتفرم PHP و LAMP در دسترس هستند.
دلیل این که من کلمه “دوستانه” را ذکر کردم این است که توسعه دهندگان متن باز در انجمن های آزاد متن باز این کار را برای سود مالی نمی کنند. اگر به دنبال یک چالش عملی هستید یک سوال در یک انجمن PHP ارسال کنید، اطلاعات مفیدی از طرف همکاران بطور دوستانه دریافت خواهید کرد.
در مقابل ASP.net بر تعداد توسعه دهندگان مایکروسافت برای ارتقاء و به روز رسانی ها متکی است. پشتیبانی کننده بسیار کمتری برای حل چالش های ASP.net وجود دارد.
مقدار بیشتری (خطوط بیشتر) کد برای انجام ویژگیهای پیچیده و عملکردها با ASP.net در مقایسه با PHP نیاز است و زمان را برای فرایند توسعه افزایش می دهد.
علاوه بر این، PHP در سرور تفسیر می شود، بنابراین هنگام تغییر قابلیت، هیچ گام اضافی برای دیدن تغییرات لازم نیست. از سوی دیگر، هر بار که کد اصلاح می شود، ASP.net باید کامپایل شود. باز هم، فرآیند توسعه وقت بیشتری را در هنگام استفاده از ASP.net در مقایسه با PHP دارد.
PHP و MySQL از ویرایشگر مستقل است. توسعه دهندگان PHP به تعدادی زیادی از ویرایشگرها دسترسی دارند. بیشتر برنامه نویسان ASP.net به ویرایشگر مایکروسافت ویژوال استودیو وابسته هستند. (بسیاری از توسعه دهندگان ASP.net مایکروسافت ویژوال استودیو را دوست دارند و به آن قسم می خورند).
این یک سبک متفاوت برنامه نویسی است – PHP و توسعه دهندگان منبع باز تمایل دارند از ویراشگران متن مانند VI، VIM، Notepad ++ استفاده کنند. VI و VIM ویرایشگران بسیار پیشرفته و مستقل هستند، و برنامه نویسانی که این ویرایشگرها را با تمام توانایی ها یاد می گیرند و از آنها استفاده می کنند، می توانند برنامه های بسیار پیچیده ای را سریع، کارآمد و مستقل توسعه دهند. این برنامه نویسان کنترل و انعطاف پذیری بیشتری دارند و هنگامی که نیاز به استفاده و ادغام سایر پلتفرم های اساسی مانند جاوا اسکریپت، Ajax، JQuery و غیره وجود دارد، توسعه دهندگان PHP به دلیل آشنایی با محیط متن باز با استفاده از VI یا VIM برتری بهتری دارند.
PHP از پلتفرم مستقل است و می تواند بر روی هر پلتفرم – Linux، Unix، Mac OS X، Windows اجرا شود. اما ASP.net برای اجرا بر روی پلتفرم ویندوز ساخته شده است. وب سایت های معروفی چون گوگل، فیسبوک، یاهو، ویکیپیدیا و وردپرس برای همین قابلیت است که از PHP نیز استفاده می کنند.
بسیاری از سوء تفاهمات و اطلاعات غلط درباره غیر دوستانه بودن لینوکس وجود دارد. این واقعا بستگی به تجربه و دانش شخص استفاده کننده از پلتفرم دارد.
با این حال، باید بگویم که من با نسخه های جدید و پیشرفته محبوب لینوکس تحت تاثیر قرار گرفته ام. این نسخه های لینوکس مانند Ubuntu, Red Hat, CentOS, openSUSE, Fedora کار بزرگی را برای سهولت نصب، راه اندازی و همچنین یک رابط گرافیکی ساده و مستقیم ارائه می دهند که باعث تنظیم و پیکربندی آسان یک سرور لینوکس می شود.
متأسفانه، به نظر من، مایکروسافت سرور با استفاده از قابلیت های خود به عقب برگشته است: با داشتن مدیریت سرور پر از ویژگی های پیچیده و غیر ضروری. این مورد نیز می تواند نسبت به پروژه شما در تصمیم گیری درباره ASP.Net تاثیر بگذارد.
در این مقاله سعی کردم تا جایی که می شود بطور دقیق PHP و فواید آن را نسبت به سایر تکنولوژی ها بررسی کنم. در هر حال این زبان با توانایی های خود همیشه می تواند گزینه مناسبی برای بسیاری از پروژه های وب باقی بماند. مهمترین ویژگی و قابلیت PHP با توجه به متن باز بودن آن طراحی سایت به صورت ارزان می باشد.