| PHP چیست ؟ - معرفی PHP |
|
|
| نوشته شده توسط امید کوثری | ||||||
| 03/04/2007 18:02:05 | ||||||
صفحه 3 از 4 نسخه اصلی PHP در اواسط دهه 90 توسط Rasmus Lerdorf با هدف انجام آسان تر کارهای معمول وب و جلوگیری از کارهای تکراری طراحی و ایجاد شد . بعد از آن هدف اصلی حداقل دخالت دادن تکنیک برای بدست آوردن نتایج دلخواه بود و این امر با قابلیت HTML-centric به دست می آمد . HTML-centric یعنی قرار دادن کد های PHP لابه لای کد های HTML ( درست بر عکس نقطه ضعف زبان برنامه نویسی پرل یعنی Perl-centric ) . اولين نسخه معروف PHP با عنوان PHP/FI 2.0 بر گرفته از Personal Home Page / Form Interpreter بود . مشکل اصلي PHP/FI اين بود که بسيار دست نويس بود و کاربران اغلب دچار خطا هاي برنامه نويسي مي شدند که در واقع خطاهاي تکنيکي نبودند بلکه فقط حاصل پيچيدگي هاي بيش از حد دست و پا گير PHP/FI بودند . به علاوه اينکه اين نسخه مطلقا وابسته به وب سرور Apache بود و تحت تاثير شهرت و سرعت آن قرار داشت . بعضي از اين مشکلات در نسخه 3 وقتي که Zeev Suraski و Andi Gutmans زبان PHP را از اول با ابزار هايي نظير Flex و Bison و با استفاده از استاندارد "compiler compiler" بازنويسي کردند ، حل شدند . اين تغييرات باعث قدرتمندي زياد PHP و اميدواري مجدد کاربران به اين زبان گرديد . همچنين PHP 3 بالاخره قابليت توسعه پذيري را به خود اضافه کرد . چيزي که فقدان آن در نسخه هاي قبلي شديدا به چشم مي خورد . توسعه دهندگان زيرک و مشتاق قادر بودند کارايي هاي مورد نظر خود را حتي در سطح هسته به آن اضافه کنند . با اين حال PHP همچنان به آپاچي وابسته بود و اگر چه در زمينه سرعت پيشرفت قابل ملاحظه اي داشت ولي هنوز چيزي نبود که بتوان در موردش ادعايي داشت . تنها نقطه ضعف موجود براي ارتقا به نسخه PHP 3 سخت گير تر شدن اين نسخه بود و بعضي از کد هايي که در PHP/FI به درستي کار مي کردند اکنون با مشکل مواجه مي شدند . اگر چه اين زبان هنوز جوان بود پس افراد زيادي دچار اين مشکلات و تغييرات نشدند . پيشرفت ها و بهبودي هاي همه جانبه باعث اشتياق کاربران جديد زياد براي انتقال از Perl به سيستمي شد که استفاده از آن بسيار راحت تر بود . در آن زمان هيچ شکي در سرعت بيشتر Perl در زمان اجرا نبود به غير از بعضي از افراد متعصب به PHP ، ولي PHP همچنان به سرعت در حال پيشرفت و توسعه بود و رمز موفقيتش هم در همين بود . PHP 3 پشتيباني محدود از شي گرايي را افزايش داد و اين مقداري سوخت اضافي براي آتش رو به گسترش رشد PHP بود . زماني که PHP 3 به طور کامل جايگزين نسخه قبل شد يعني در اواسط سال 2000 ، بر روي بيش از 2,500,000 دامنه اينترنتي نصب شده بود در حالي که اين مقدار در 18 ماه قبل حدود 250,000 بود !! در اواسط سال 2000 PHP 4 همراه با تغييرات اساسي از همه زوايا ، به دنيا معرفي شد . کارهاي وسيعي براي اطمينان از سازگاري آن با برنامه هاي تحت نسخه قبل انجام شده بود و ارتقا از PHP 3 به PHP 4 به مراتب راحت تر از PHP/FI به PHP 3 بود . مي توان گفت که مهم ترين تغيير به وجود آمده در PHP 4 چيزي به نام Zend Engine بود . Zend شرکتي بود که توسط Zeev Suraski و Andi Gutmans ( نام Zend برگرفته از ZEev و aNDi ) با هدف آماده ساختن PHP براي محيط تجاري به وجود آمده بود و انعطاف پذيري قابل ملاحظه اي را در PHP به وجود آورد که قبلا در آن وجود نداشت . موتور Zend بر روي هسته PHP سوار شده و منابعي مثل ارتباط با پايگاه اطلاعاتي ، فايل ها و ساير مواردي را که PHP براي اجرا از آن ها استفاده مي کند را پي گيري و شمارش مي کند و از رها شدن آن ها بعد از اجراي قطعه برنامه اطمينان حاصل مي کند تا در حافظه باقي نمانند و سبب اتلاف بيهوده منابع نشوند . همچنين PHP 4 به طور کامل از وب سرور مستقل شد يعني مي توانست به خوبي بر روي Apache 1.3.x, Apache 2, Microsoft IIS, Zeus, AOLserver و غيره اجرا شود . اين خاصيت راه را براي نفوذ PHP به 40% از دنيا که از Apache استفاده نمي کردند هموار ساخت . کارايي PHP به دو دليل جهش خارق العاده اي داشت . اولا اينکه روش اجرا در PHP 4 نسبت به نسخه قبل تغيير کرده بود . PHP 3 و ماقبل آن از روش "اجرا هنگام تفسير" استفاده مي کردند يعني PHP يک خط از کد را مي خواند ، آن را تفسير مي کرد ، آن را اجرا مي کرد ، خط بعد را مي خواند ، آن را تفسير مي کرد ، اجرا مي کرد ، خط بعدي را مي خواند و الي آخر . آن به اين معني بود که کد ها معمولا بار ها دوباره خواني و تفسير مجدد مي شدند که کلا غير ضروري بود . PHP 4 روش "اول کامپايل ، بعد اجرا" را در پيش گرفت يعني اول همه کد شما را مي خواند و آن را قبل از اجرا به Byte Code تبديل مي کرد و بعد آن را اجرا مي کرد . نتيجه افزايش بسيار زياد سرعت ( به طور متوسط 100% ) حتي در بعضي از آزمايش ها تا 5 برابر بود . Byte Code زبان داخلي است که PHP کد هاي شما را براي قابل درک بودن براي خود ، به آن تبديل مي کند و معمولا بسيار حجيم تر از کدي است که شما نوشته ايد مثلا هر قطعه کدي که شما مي نويسيد تبديل به چندين قطعه کد کوچک تر و ساده تر مي شود . به علاوه چون PHP 4 همه کد را قبل از اجرا کامپايل کرده بود ، اين امکان را فراهم مي کرد که کد ها قبل از اجرا بهينه سازي و Cache شوند . دوما PHP 4 قابليت Multi-Threading را در خود جاي داد که به طور خاص براي توابع طولاني و غير حساس اين امکان را فراهم مي کرد تا در يک پروسه جدا از پروسه اصلي PHP اجرا شوند . |
||||||
| آخرين بروز رساني ( 18/06/2007 14:37:01 ) | ||||||



