تاریخچه PHP
فکر اولیه php در پاییز سال ۱۹۹۴توسط Rasmus Lerdorf ایجاد شد و مخفف واژگان Personal Home Pages به حساب می آید. در ابتدا نگارشی از php در صفحه شخصی وی به کارگرفته شده تا اطلاعاتی از کسانی که رزومه وی را می بینند نگاه داشته شود. اکنون php4 آخرین نگارش این محصول است که درآن از موتور اسکریپت zend برای بدست آوردن قابلیت های بیشتر استفاده شده است.
هم اکنون برآورد می شود بیش از ۰۰۰/۱۰۰/۵ سایت از php استفاده کرده اند که این میزان از تمامی سایت های که ازسرورهای IIS مایکروسافت استفاده می کنند بیشتر است.
چگونه از PHP استفاده کنیم؟
PHP نرم افزاری رایگان و Open source است که می توان آنرا از سایت www.php.net دریافت کرد . در این سایت بسیاری از نرم افزارهایی که برای کار با php طراحی شده اند معرفی گردیده است . ابزارهایی مانند php traid یک بسته نرم افزاری رایگان است ودرآن علاوه بر مفسرphp , مفسر زبان perl و موتور پایگاه mysql و نسخه تحت ویندوز وب سرور apache قراردارد.
PHP چیست؟
با گسترش قابلیت ها و موارد استفاده این زبان PHP در معنای Hypertext Preprocessor به کار گرفته شد. عبارت پیش پردازشگر (Preprocessor) بدین معنی است که PHP اطلاعات را قبل از تبدیل به زبان Html پردازش می کند . بیشترترکیب ها ودستورات آن از زبانهای c,java و perl گرفته شده که قابلیت های منحصر به فردی به آن اضافه گردیده است. PHP زبان اسکریپتی سمت سرویس دهنده (server side)- Cross-Platform- Html Embeded است.
سمت سرویس دهنده بودن PHP بدین معناست که تمام پردازشهای این زبان بر روی سرویس دهنده (Server) انجام می گیرد.
منظور از Cross-Platform بودن این زبان این است که بروی هر سیستم و با هر سیستم عاملی از قبیل : Unix, Windows NT, Macintosh, Os/2 اجرا میشوند. توجه کنید که منظور از سیستم عامل، سیستم عامل هایی می باشند که بر روی سرویس دهنده نصب می شوند. PHP نه تنها قابلیت اجرا بر روی هر سیستم عاملی را دارا می باشد بلکه برای منتقل کردن برنامه های آن از یک سیستم عامل به سیستم عامل دیگر احتیاج بــه تغییرات اندکی خواهید داشت و حتی در بعضی از موارد بدون احتیاج به هیچ تغییری می توانید یک برنامه به زبان php را از یک سیستم عامل به سیستم عامل دیگر منتقل کنید.
منظور از Html embedded بودن PHP این است که دستورات این زبان در بین کدهای html قرار می گیرند. بنابراین برنامه نویسی به زبان PHP کمی پیچیده تر از برنامه نویسی به زبان Html به حساب می آید.
PHP تا چه حدی شی گرا است و آیا امکاناتی که که در زبان های برنامه نویسی شی گرای کاملی همچون Java وجود دارد، در PHP هم پشتیبانی می شود؟
تخریب کننده ها(Destractors):
نسخه فعلی PHP (با ZE 1) تابع تخریب کننده ندارد، بیشتر به این خاطر است که آزاد سازی حافظه و برگرداندن حافظه تخصیص یافته دست برنامه نویس نیست. اما نسخه های بعدی تابع تخریب کننده را دارا می باشد.
کپسوله سازی و کنترل دسترسی (Encapsulation):
هیچ پشتیبانی از کپسوله سازی در نسخه جاری PHP به عمل نیامده و تمام مشخصه ها و رفتارها Public هستند، اما در نسخه بعدی دو نوع Private و Protected افزوده شده است.
چند شکلی(Polymorphism):
PHP چند شکلی را به این صورت پشتیبانی می کند که اجازه می دهد نمونه کلاس های فرزند به جای نمونه کلاس های والد استفاده شوند.
اتصال (انقیاد )دیر یا زود (binding Early vs. late)
دو پاسخ مناسب به این موضوع به قرار ذیل است:
۱) از آنجایی که PHP یک زبان Loosely Type است، این سوال پیش می آید.
۲) تمام اتصالات Late هستند. در PHP مقادیر دارای نوع هستند ولی متغیرها بی نوع هستند، بنابراین این سوال که اگه نوع متغیر و مقدار متفاوت باشد کدام متد فراخوانی شود، به وجود نمی آید.
توابع ایستا (Static Functions):
پشتیبانی صریحی از Class Function ها وجود ندارد اما امکان دارد که با استفاده از سینتکس Classname::function تابع یک کلاس را فراخوانی کرد. این تابع تا زمانی که به یک متغیر داخلی ارجاع نکند ، به عنوان یک Class Function در نظر گرفته میشود.
درون نگری(Introspection):
در این مورد PHP با دست پر ظاهر شده و توابع متنوعی برای کسب اطلاعات در مورد یک کلاس وجود دارد، مثلا بازیایی نام کلاس، نام یک تابع، نام متغیرهای (مشخصه های) یک نمونه کلاس و …
مزایای PHP نسبت به ASP
۱٫ سرعت
سرعت PHPبه مراتب قابل مقایسه با ASP نیست علتش این است
که Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم به استفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine های خارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیارادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود
۲٫ استفاده بهینه از Memory
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و درحقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . همین امر باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده است که صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .
۳٫ خرج اضافی نداریم
مثلا در ASP اگر بخواهید از امکاناتی نظیر Encryption یا File Uploading یا ارسال نامه توسط کد برنامه استفاده کنید باید امکانات اضافی برای این کار خریداری کنید و نصب کنید تا این امکانات به IIS شما اضافه گردد . این در حالیست که در PHP همه اینها در هنگام Compile در نظر گرفته می شوند و همگی از امکانات Standard این زبان هستند و هیچ نصب یا خرج اضافی در کار نیست .
۴٫ MySQL بهترین انتخاب، بیشترین سرعت
به خاطر قدرت خارق العاده MySQL و سازگار بودن اینDBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیازبه نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است
۵٫ نزدیک بودن Syntax به ++C/C و Java
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax های این دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیری دوباره Syntax دستورات دچار مشکل نشوید.
۶٫ رفع ایرادات ، سریع ، بی دردسر
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید
۷٫ اجرا بر روی Platform های مختلف
یک مشکل اساسی برای ASP وجود دارد و آن این است کهASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که درسیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است. اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاص هیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعداد زیادی از OS ها را داراست که این یک مزیت برای برنامه نویس ها محسوب می شود
منبع: http://www.kishmehr.org