ویژگیهای عمومی زبان برنامه نویسی PHP
هر کاربری دلایل خاص خود را برای استفاده از PHP و پیاده سازی برنامه ای حساس با آن را دارد. از جهاتی دیگر می توان نشان داد که چنین تمایلاتی به چهار گروه اصلی طبقه بندی می شوند: کاربردی بودن، قوی بودن، امکانات فراوان و هزینه مطلوب.
کاربردی بودن
از همان نسخه های اولیه، PHP با کاربردی بودن آن در ذهن، ساخته شد. هدف اولیه لردورف، طراحی زبان کاملا جدیدی نبود بلکه هدف وی، حل کردن مشکلی بود که در آن زمان، راه حل ساده برای آن وجود نداشت. بعلاوه اکثر تغییر و تحولات اولیه در این زبان، هدف اصلیشان بهبود خود زبان برنامه نویسی نبود بلکه هدف اصلی، افزودن ابزارهای جهت استفاده کاربران بود. نتیجه آن شد که زبانی بوجود آمد که به کاربران اجازه می داد حتی با کمترین دانش، برنامه هایی قدرتمند بسازند. بعنوان نمونه، یک اسکریپت مفید PHP می تواند شامل تنها یک خط PHP باشد. برخلاف C، نیازی به استفاده از اعلان برای استفاده از کتابخانه های استاندارد نیست. برای مثال، دستورات زیر، اسکریپت کالی از PHP را نشان می دهند که هدف آن، نمایش تاریخ جاری به فرمت ماه، روز، سال است:
<?php echo date("F j, Y");?>
مثالی دیگر از زیبایی این زبان در خلاصه نویسی، امکان جاسازی توابع در یکدیگر است. بعنوان نمونه، می توانید تغییرات مختلفی را با اعمال زنجیره ای توابع انجام دهید. مثال زیر رشته ای از پنج کاراکتر الفبایی نظیر a3jh8 را تولید می کند:
$randomStriong = substr(md5(microtime()), 0, 5);
PHP زبانی است که در اصطلاح برنامه نویسی به آن زبان برنامه با تایپ راحت اطلاق می شود. به این مفهوم که نیازی به بیان نوع متغیرها و یا فراخوانی نابودکننده نمی باشد، هر چند می تواند آن کارها را نیز انجام دهید. PHP این موارد را بصورت داخلی انجام می دهد، متغیرها را در مواقع لزوم و هنگامی که در اسکریپت فراخوانی می شوند می سازد و بطور خودکار از مناسبترین فرمولها استفاده میکند تا نوع متغیرها بدرستی در نظر گرفته شوند. برای نمونه، PHP دستورات زیر را کاملا معتبر می داند:
<?php
$number – "5";
$sum = 15 + $number;
$sum = "twenty";
?>
PHP بطور خودکار متغیرها را نابود می کند و منابع استفاده شده را در پایان اسکریپت، به سیستم بر می گرداند. این موارد و در موارد مشابه دیگری که PHP بصورت داخلی، مسائل مدیریتی و امنیتی برنامه نویسان را حل می کند، این امکان را به برنامه نویسان خواهد داد تا منحصرا تنها بر روی هدف نهایی خود تمرکز کنند که همان برنامه ای می باشد که تحت وب بدرستی کار کند.
قوی بودن
برنامه نویسان PHP بیش از 180 کتابخانه را در اختیار خود دارند که در مجموع چیزی بیش از 1.000 تابع را شامل می شود. اگرچه شما احتمالا از قابلیتهای PHP برای ارتباط با پایگاه های داده، تغییر در فرم اطلاعات، و ساخت دینامیک صفحات مطلع هستید، ولی ممکن است ندانید که PHP قادر است کارهای زیر را نیز انجام دهد:
- ساخت و ویرایش فایلهای در فرمت Adobe Flash و PDF
- تحلیل حتی پیچیده ترین رشته ها با استفاده از کتابخانه های POSIX و عبارات قانونمند Perl
- مجوز ورود به کاربران از طریق فایلهای خام، دیتابیس ها، و یا حتی Active Directory مایکروسافت
- امکان برقراری ارتباط با بسیاری از پروتکلهای مختلف نظیر LDAP، IMAP، POP3، NNTP، و DNS و غیره...
- امکاناتی نظیر ارتباط با بسیاری از کارتهای اعتباری
و هنوز تا به اینجا حرفی از افزونه های PHP و انبارهای برنامه نویسی Application Repository (PEAR) به میان نیاورده ایم که صدها بسته قابل نصب را برای افزایش امکانات PHP شامل می شود.
امکانات فراوان
برنامه نویسان PHP به ندرت خود را مقید به استفاده از تنها یک روش می کنند. از طرف دیگر، کاربران معمولا از امکانات و اختیارات وسیعی که این زبان به آنها می دهد، دچار وحشت می شوند. بعنوان مثال، انتخابهایی را که PHP برای پشتیبانی از پایگاه های داده، به برنامه نویسان می دهد را در نظر بگیرید. پشتیبانی که در نسخه های اصلی موجود است، شامل پشتیبانی از 25 نوع مختلف دیتابیس است. این دیتابیس ها شامل، Adabas D، dBase، Empress، FilePro، FrontBase، Hyperware، IBM DB2، Infomix، Ingres، InterBase، mSQL، Microsoft SQL Server، MySQL، Oracle، Ovrimos، PostgreSQL، Solid Sybase، Unix dbm، و Velocis می باشند. ضمن آنکه توابعی وجود دارند که امکان دسترسی به پایگاه های داده از نوع Berkeley DB را می دهند. چندین نوع دیگر از پایگاه های داده، به طریق مشابهی پشتیبانی می شوند که از مشهورترین آنها می توان به PDO و MDB2 اشاره کرد.
قابلیتهای انعطاف پذیر پردازش رشته ها در PHP، به کاربرانی با مجموعه مهارتهای متفاوت، امکاناتی را می دهد تا نه تنها خیلی سریع عملیات رشته ای پیچیده را انجام دهند بلکه به همان سرعت از برنامه هایشان در برنامه های مشابه دیگر نظیر Perl و Phyton استفاده نمایند. علاوه بر وجود بیش از 85 تابع برای ویرایش رشته ها، هر دو نوع شکل عبارات قانونمند Perl و POSIX پشتیبانی می شوند.
آیا ترجیح می دهید تا از زبانی استفاده کنید که از برنامه نویسی به شکل مرحله ای (Procedural programming) پشتیبانی کند؟ و همچنین از شی گرایی؟ در اینصورت PHP برای هر دوی آنها، پشتیبانی کاملی را ارائه می کند. اگرچه PHP در ابتدا زبانی کاملا متکی بر توابع بود، ولی توسعه دهندگان آن خیلی زود متوجه اهمیت شی گرایی شدند و گامهایی مناسب برای پیاده سازی آن برداشتند.
PHP به شما اجازه خواهد داد تا به سرعت و در کمترین زمان، از توانایی های فعلی خود استفاده کنید.
هزینه مطلوب
PHP بصورت رایگان در اختیار همگان قرار دارد. از زمان اولین نسخه آن تا به امروز، PHP هیچگونه محدودیتی را در استفاده، ویرایش، و توزیع مجدد آن نداشته است. در سالهای اخیر، برنامه هایی که چنین شرایطی را داشته اند، بعنوان نرم افزارهای سورس باز نام بـرده شده اند. پروژه های سورس باز نظیر Sendmail، Bind، Linux، و Apache همه آنها نقش بسیار بزرگی را در روند توسعه اینترنت در مقیاس وسیع داشته اند. اگرچه رایگان بودن نرم افزارهای سورس بار، مهمترین خواسته مردم است ولی چندین مشخصه دیگر نیز به همان میزان از اهمییت برخوردارند:
عدم محدودیتهایی که اکثر محصولات تجاری برای کاربران خود اعمال می کنند: کاربرانی که از نرم افزارهای سورس باز استفاده می کنند، در اکثر محدودیتهایی که با استفاده از برنامه های تجاری ملزم به رعایت آن هستند آزادی عمل بیشتری خواهند داشت. اگرچه برخی تفاوتها نیز میان مجوزهای داده شده به کاربران از برنامه ای به برنامه دیگر وجود دارد، ولی کاربران بسیار آزادی عمل دارند تا برنامه را با ویرایش و توزیع مجدد به محصول دیگری تبدیل کنند.
توسعه همگانی و فرایند رفع ایرادات: اگرچه اتفاقی نیست، ولی نرم افزارهای سورس باز، از امنیت بالاتر برخوردار می باشند. چنین استاندارد کیفی، نتیجه توسعه همگانی و فرایند رفع ایرادات است. از آنجاییکه سورس نرم افزار بطور رایگان در اختیار همگان قرار دارد تا آن را مورد بررسی قرار دهد، در نتیجه ایرادات امنیتی و مسائل آن خیلی سریع پیدا و تعمیر خواهند شد. این مزیت شاید به بهترین نحو توسط اریک س. ریموند نوشته شده باشد. وی می نویسد: "چشمان کافی در اختیار من بگذارید تا تمام باگها را بگیرم".
تشویق به مشارکت: تیمهای توسعه دهنده، به سازمان خاصی مربوط نیستند. هر کسی علاقه دارد و توانایی آن را در خود می بیند می تواند در این پروژه شرکت کند. عدم اعمال محدودیت برای اعضا، بطور وحشتناکی اعضای نخبه در یک پروژه را افزایش می دهد که در نهایت منجر به ایجاد محصولی با کیفیتی بالا خواهد شد.