
ویژگیهای عمومی زبان برنامه نویسی 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 قادر است کارهای زیر را نیز انجام دهد:
1) ساخت و ویرایش فایلهای در فرمت Adobe Flash و PDF
2) تحلیل حتی پیچیده ترین رشتهها با استفاده از کتابخانه های POSIX و عبارات قانونمند Perl
3) مجوز ورود به کاربران از طریق فایلهای خام، دیتابیسها، و یا حتی Active Directory مایکروسافت
4) امکان برقراری ارتباط با بسیاری از پروتکلهای مختلف نظیر LDAP، IMAP، POP3، NNTP، و DNS و غیره...
5) امکاناتی نظیر ارتباط با بسیاری از کارتهای اعتباری
و هنوز تا به اینجا حرفی از افزونههای 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 همه آنها نقش بسیار بزرگی را در روند توسعه اینترنت در مقیاس وسیع داشته اند. اگرچه رایگان بودن نرم افزارهای سورس بار، مهمترین خواسته مردم است ولی چندین مشخصه دیگر نیز به همان میزان از اهمییت برخوردارند:
عدم محدودیتهایی که اکثر محصولات تجاری برای کاربران خود اعمال می کنند: کاربرانی که از نرم افزارهای سورس باز استفاده میکنند، در اکثر محدودیتهایی که با استفاده از برنامههای تجاری ملزم به رعایت آن هستند آزادی عمل بیشتری خواهند داشت. اگرچه برخی تفاوتها نیز میان مجوزهای داده شده به کاربران از برنامه ای به برنامه دیگر وجود دارد، ولی کاربران بسیار آزادی عمل دارند تا برنامه را با ویرایش و توزیع مجدد به محصول دیگری تبدیل کنند.
توسعه همگانی و فرایند رفع ایرادات: اگرچه اتفاقی نیست، ولی نرم افزارهای سورس باز، از امنیت بالاتر برخوردار میباشند. چنین استاندارد کیفی، نتیجه توسعه همگانی و فرایند رفع ایرادات است. از آنجاییکه سورس نرم افزار بطور رایگان در اختیار همگان قرار دارد تا آن را مورد بررسی قرار دهد، در نتیجه ایرادات امنیتی و مسائل آن خیلی سریع پیدا و تعمیر خواهند شد. این مزیت شاید به بهترین نحو توسط اریک س. ریموند نوشته شده باشد. وی مینویسد: "چشمان کافی در اختیار من بگذارید تا تمام باگها را بگیرم".
تشویق به مشارکت: تیمهای توسعه دهنده، به سازمان خاصی مربوط نیستند. هر کسی علاقه دارد و توانایی آن را در خود میبیند می تواند در این پروژه شرکت کند. عدم اعمال محدودیت برای اعضا، بطور وحشتناکی اعضای نخبه در یک پروژه را افزایش میدهد که در نهایت منجر به ایجاد محصولی با کیفیتی بالا خواهد شد.