دوره آموزش رایگان زبان برنامه نویسی مقدماتی پی اچ پی (PHP)- جلسه سوم

آشنایی با تاریخچه ی شکل گیری زبان برنامه نویسی پی اچ پی

اولین نسخه از زبان PHP در سال ۱۹۹۴ توسط Rasmus Lerdorf نوشته شد (در ابتدا PHP مخفف واژگان Personal Home Page به معنی «صفحه ی شخصی» بود.) در واقع این برنامه نویس دانمارکی یکسری CGI ها را با استفاده از زبان Perl نوشت که این وظیفه را داشتند تا رزومه او را در وب سایت شخص اش در معرض دید دیگران قرار داده و همچنین ترافیک وب سایت شخصی او را نمایش دهند که بعدها این دستورات با استفاده از زبان C بازنویسی شدند (البته نسخه یی که امروزه ما استفاده می‌کنیم با آنچه در سال ۱۹۹۴ طراحی شده بود کاملاً متفاوت است.)

 نکته

اصطلاح CGI مخفف واژگان Common Gateway Interface است. در واقع CGI ها به منزله استانداردی هستند که با استفاده از آن ها، وب سرورها -که در آموزش‌های آتی بیشتر با آن‌ها آشنا می شویم- می توانند ایجاد محتوای صفحات وب را مدیریت کنند.

اطلاعیه ی شماره یک انتشار زبان پی اچ پی در سال ۱۹۹۵ در گروه خبری یوزنت به شرح زیر است:

From: rasmus@io.org (Rasmus Lerdorf)
Subject: Announce: Personal Home Page Tools (PHP Tools)
Date: 1995/06/08
Message-ID: <3r7pgp$aa1@ionews.io.org>#1/1
organization: none
newsgroups: comp.infosystems.www.authoring.cgi
Announcing the Personal Home Page Tools (PHP Tools) version 1.0.
These tools are a set of small tight cgi binaries written in C.
They perform a number of functions including:
. Logging accesses to your pages in your own private log files
. Real-time viewing of log information
. Providing a nice interface to this log information
. Displaying last access information right on your pages
. Full daily and total access counters
. Banning access to users based on their domain
. Password protecting pages based on users' domains
. Tracking accesses ** based on users' e-mail addresses **
. Tracking referring URL's - HTTP_REFERER support
. Performing server-side includes without needing server support for it
. Ability to not log accesses from certain domains (ie. your own)
. Easily create and display forms
. Ability to use form information in following documents

Here is what you don't need to use these tools:
. You do not need root access - install in your ~/public_html dir
. You do not need server-side includes enabled in your server
. You do not need access to Perl or Tcl or any other script interpreter
. You do not need access to the httpd log files

The only requirement for these tools to work is that you have the ability to execute your own cgi programs. Ask your system administrator if you are not sure what this means.

The tools also allow you to implement a guestbook or any other form that needs to write information and display it to users later in about 2 minutes.

The tools are in the public domain distributed under the GNU Public License. Yes, that means they are free!

For a complete demonstration of these tools, point your browser at: http://www.io.org/~rasmus

--
Rasmus Lerdorf
rasmus@io.org
http://www.io.org/~rasmus

آنچه از اطلاعیه ی فوق هویدا می باشد این است که توسعه دهندگان در آن سال‌ها چه دغدغه هایی داشته اند؛ چیزهایی همچون صفحاتی برای عرضه به گروه‌های خاصی از کاربران، ساخت فرم ها، دسترسی به دیتای ذخیره شده در دیتابیس و نمایش آن در صفحات و … جزو مسائلی بوده‌اند که آقای Lerdorf را متقاعده کرده بود تا این زبان را پایه ریزی کند.

همان طور که پیش از این هم اشاره یی کردیم، Business Logic یا «منطق» این زبان با استفاده از زبان برنامه نویسی C نوشته شده اما ساختار زبان به گونه یی است که توسعه دهندگان قادر به توسعه ی این زبان با نوشتن ماژول هایی به زبان C می باشند.

در تکمیل تاریخچه ی نسخه اول این زبان، بایستی گفت که آقای Lerdorf روی پروژه ی نسبتاً بزرگی برای دانشگاه تورنتو کار می‌کرد که این پروژه نیاز به ابزارهایی داشت تا بتوانند داده‌ها را از جاهای مختلفی جمع آوری کرده سپس در قالب یک صفحه ی تحت وب نمایش دهد. او از همان نسخه های ابتدایی زبان پی اچ پی برای این پروژه استفاده کرد اما باتوجه به این که این نسخه از زبان پی اچ پی برای پروژه ی نسبتاً بزرگی همچون پروژه ی دانشگاه تورنتو آن طور که باید و شاید کارآمد نبود، تغییراتی می بایست در وب سرور صورت می پذیرفت (وب سرور نام نرم افزاری است که ارتباط مابین کاربر و سرور را برقرار می سازد.)

وب سروری که در آن زمان برای این پروژه استفاده شده بود NCSA نام داشت و تغییرات صورت گرفته در آن مشکلات این زبان را رفع کرده بود اما این کار یک مشکل بزرگ داشت؛ اگر کسی می‌خواست از این زبان برای طراحی صفحات وب استفاده کند، حتماً می بایست از نسخه ی تغییر پیدا کرده این وب سرور استفاده کند.

در همین اثنی، وب سروری به نام Apache (آپاچی) داشت در میان توسعه دهندگان محبوبیت پیدا می‌کرد و نکته ی جالب این که این نرم‌افزار دست توسعه دهندگان را باز می گذاشت تا راحت‌تر بتوانند زبان پی اچ پی را روی سرور اجرا کنند.

آقای Lerdorf سپس قابلیت های کار با فرم ها در صفحات وب و ارتباط با پایگاه داده را نیز به این زبان اضافه نمود که در نهایت چیزی تحت عنوان Personal Home Page/Forms Interpreter یا به طور خلاصه PHP/FI نام گرفت که چنانچه بخواهیم آن را ترجمه کنیم می توانیم معادلی همچون «تحلیلگر فرم ها و صفحات وب سایت شخصی» برای آن در نظر بگیریم. در حقیقت او به دنبال این مسئله بود تا بتواند به راحتی وب سایت شخصی خود را به صورت دینامیک آپدیت نگاه دارد. با تغییراتی که در این زبان صورت گرفت، در نهایت در سال ۱۹۹۶ نسخه ی (PHP 2.0 (PHP/FI با اطلاعیه یی به شرح زیر به دنیا عرضه شد:

From: rasmus@madhaus.utcs.utoronto.ca (Rasmus Lerdorf)
Subject: ANNOUNCE: PHP/FI Server-side HTML-Embedded Scripting Language
Date: 1996/04/16
Newsgroups: comp.infosystems.www.authoring.cgi

PHP/FI is a server-side HTML embedded scripting language. It has built-in access logging and access restriction features and also support for embedded SQL queries to mSQL and/or Postgres95 backend databases.

It is most likely the fastest and simplest tool available for creating database-enabled web sites.

It will work with any UNIX-based web server on every UNIX flavour out
there. The package is completely free of charge for all uses including
commercial.

Feature List:
. Access Logging
 Log every hit to your pages in either a dbm or an mSQL database.
 Having hit information in a database format makes later analysis easier.
. Access Restriction
 Password protect your pages, or restrict access based on the refering URL plus many other options.
. mSQL Support
  Embed mSQL queries right in your HTML source files
. Postgres95 Support
  Embed Postgres95 queries right in your HTML source files
. DBM Support
  DB, DBM, NDBM and GDBM are all supported
. RFC-1867 File Upload Support
  Create file upload forms
. Variables, Arrays, Associative Arrays
. User-Defined Functions with static variables + recursion
. Conditionals and While loops
  Writing conditional dynamic web pages could not be easier than with the PHP/FI conditionals and looping support
. Extended Regular Expressions
  Powerful string manipulation support through full regexp support
. Raw HTTP Header Control
  Lets you send customized HTTP headers to the browser for advanced features such as cookies.
. Dynamic GIF Image Creation
  Thomas Boutell's GD library is supported through an easy-to-use set of tags.

It can be downloaded from the File Archive at: <URL:http://www.vex.net/php>
--
Rasmus Lerdorf
rasmus@vex.net

این اولین باری بود که اصطلاح Scripting Language مورد استفاده قرار گرفت. زبان‌های Scripting با زبان‌های Programming تاحدودی فرق دارند. زبان‌های برنامه نویسی -مثل جاوا- فضایی برای برنامه نویس ایجاد می‌کنند که یک برنامه را با سینتکسی شبیه به زبان انگلیسی نوشته سپس سورس کد اصطلاحاً کامپایل می‌شود یعنی از کدها به زبان ماشین -یا همان ۰ و ۱ که توسط سیستم قابل فهم هستند- تبدیل می‌شوند و در نهایت برنامه اجرا می شود. اما برنامه‌های نوشته شده با زبان‌های اسکریپتینگ هیچ نیازی به کامپایل شدن ندارند. برنامه به محض اجرا خط به خط اصطلاحاً Interprete (اینترپریت یا تفسیر) می شود (برای کسب اطلاعات بیشتر در این باره، به آموزش قبل مراجعه نمایید.)

در اواسط سال ۱۹۹۷ نسخه ی دوم زبان پی اچ پی توانسته بود توسعه دهندگان قابل توجهی را به خود جلب کند اما کماکان مشکلاتی در زمینه ی Parsing Engine یا «موتور پردازشگر» این زبان وجود داشت. علاوه بر این، این زبان صرفاً توسط یک نفر توسعه می یافت و فقط چند نفری بودند که در افزودن بخش‌هایی به این زبان مشارکت داشتند.

در همین زمان بود که Zeev Suraski و Andi Gutmans در تلاویو اسرائیل داوطلب شدند تا Parsing Engine این زبان را بازنویسی کنند که در نهایت قرار شد این تغییرات در نسخه ی ۳ اعمال شوند و در سال ۱۹۹۸ بخش هایی از این زبان را بازنویسی کرده و آن را تحت عنوان PHP عرضه کردند با این تفاوت که PHP مخفف واژگان PHP: Hypertext Preprocessor شد که حرف P اول به همان واژگان Personal Home Page اشاره دارد، حرف H به واژه ی Hypertext و حرف P آخر هم به Preprocessor. به طور کلی منظور از Hypertext Preprocessor این است که زبان پی اچ پی دیتا را پیش از آن که در قالب اچ تی ام ال در معرض دید کاربر قرار بگیرد پردازش می کند. به عبارت دیگر نام جدید این زبان PHP: Hypertext Preprocessor شد:

barnamenevis

تصویر سمت چپ مربوط به Rasmus Lerdorf، تصویر وسط مربوط به Andi Gutmans و تصویر سمت راست مربوط به Zeev Suraski است.

علاوه بر این دو توسعه دهنده، افراد دیگری هم پیدا شدند که تمایل خود را برای مشارکت در توسعه بخش‌های دیگر زبان پی اچ پی نشان دادند و این شد که زبان برنامه نویسی پی اچ پی از یک پروژه ی تک نفره،‌ به یک پروژه ی اپن سورس واقعی با چندین نفر توسعه‌دهنده از سراسر دنیا مبدل شد. در سال ۱۹۹۸ بیانیه یی برای انتشار نسخه ی PHP 3.0 منتشر شد که متن آن به این شرح است:

June 6, 1998 -- The PHP Development Team announced the release of PHP 3.0, the latest release of the server-side scripting solution already in use on over 70,000 World Wide Web sites.

This all-new version of the popular scripting language includes support for all major operating systems (Windows 95/NT, most versions of Unix, and Macintosh) and web servers (including Apache, Netscape servers, WebSite Pro, and Microsoft Internet Information Server).

PHP 3.0 also supports a wide range of databases, including Oracle, Sybase, Solid, MySQ, mSQL, and PostgreSQL, as well as ODBC data sources.

New features include persistent database connections, support for the SNMP and IMAP protocols, and a revamped C API for extending the language with new features.

"PHP is a very programmer-friendly scripting language suitable for
people with little or no programming experience as well as the
seasoned web developer who needs to get things done quickly. The
best thing about PHP is that you get results quickly," said Rasmus Lerdorf, one of the developers of the language.

"Version 3 provides a much more powerful, reliable, and efficient
implementation of the language, while maintaining the ease of use and
rapid development that were the key to PHP's success in the past,"
added Andi Gutmans, one of the implementors of the new language core.

"At Circle Net we have found PHP to be the most robust platform for
rapid web-based application development available today," said Troy
Cobb, Chief Technology Officer at Circle Net, Inc. "Our use of PHP
has cut our development time in half, and more than doubled our client
satisfaction. PHP has enabled us to provide database-driven dynamic
solutions which perform at phenomenal speeds."

PHP 3.0 is available for free download in source form and binaries for
several platforms at http://www.php.net/.

The PHP Development Team is an international group of programmers who
lead the open development of PHP and related projects.

For more information, the PHP Development Team can be contacted at
core@php.net.

در سال ۲۰۰۰ آقایان Zeev Suraski و Andi Gutmans شرکتی تحت عنوان Zend تاسیس کردند و در آن شرکت هسته اصلی پی اچ پی را بازنویسی کرده و تغییرات گسترده ای در آن ایجاد کردند که این تغییرات در قالب چیزی به نام Zend Engine شکل گرفت و آن را در همین سال در قالب نسخه ۴.۰ روانه بازار کردند. نسخه ی PHP 4.0 در ۲۲ ماه مه سال ۲۰۰۰ با تلاش توسعه دهندگان بسیاری و صرف زمان قابل توجهی به دنیا عرضه شد.

در سال ۲۰۰۴ نسخه ۵ از این زبان به دنیا عرضه شد که دارای ویژگی های بسیاری می باشد که از آن جمله می توان به برنامه نویسی شیئ گرایی و ارتباط بهتر با پایگاه داده ها اشاره کرد (در واقع هر کدام از نسخه های پی اچ پی دارای آپدیت هایی هم می باشند مثلا نسخه ۵.۲ اما با توجه به این که توضیح پیرامون این آپدیت ها صرفاً به طولانی تر شدن تاریخچه منجر خواهد شد، از توضیح پیرامون این مسئله خودداری خواهیم کرد.)

یکی از چیزهای جالب در مورد نسخه های مختلف زبان پی اچ پی این است که نسخه ی PHP 6.0 این زبان هرگز عرضه نشد و به یکباره پس از نسخه ی PHP 5.6، نسخه ی PHP 7.0 به بازار عرضه شد. یکی از خصیصه های اصلی PHP 6.0، پشتیبانی از Unicode بود. به عبارت دیگر، این نسخه از پی اچ پی قرار بود تا کاراکترهای کلیه ی زبان‌های زنده ی دنیا را ساپورت کند اما طراحان این زبان نتوانستند آن طور که باید و شاید این نوع پشتیبانی را به زبان پی اچ پی بیفزایند و تا حدودی به برند این نسخه از زبان برنامه نویسی پی اچ پی لطمه خورد و از همین روی توسعه ی PHP 6.0 متوقف شد!

در دسامبر سال ۲۰۱۵ نسخه ی PHP 7.0.0 به دنیا عرضه شد. پس از عرضه ی PHP 5 در سال ۲۰۰۴، نسخه ی ۷ زبان برنامه نویسی پی اچ پی دربرگیرنده ی مهم ترین تغییرات اعمال شده در این زبان است که از آن جمله می توان به عملکرد بسیار بالا، کاهش استفاده از حافظه و بسیاری ویژگی های جدید اشاره کرد. به یمن استفاده از Zend Engine 3.0، وب اپلیکیشن های نوشته شده با پی اچ پی نسخه ی ۷ از سرعتی تا ۲x و کاهش استفاده از حافظه به میزان ۵۰% خواهیم بود که در نهایت این امکان در اختیار توسعه دهندگان قرار می گیرد تا بدون ارتقاء سخت افزار، بتوانند تعداد کاربران به مراتب بیشتری را پوشش دهند.

PHP-GTK چیست؟
به طور کلی، GTK یک Library (لایبرری یا کتابخانه) برای طراحی GUI یا «رابط های گرافیکی کاربری» است. این لایبرری زمانی شکل گرفت که توسعه دهندگان نرم‌افزار GIMP که برای ویرایش تصاویر استفاده می‌شود، آن را با زبان C نوشتند لذا به آن GIMP Toolkit هم گفته می شود. از آن زمان به بعد، جی تی کی به عنوان یکی از مشهورترین ابزارهای طراحی رابط کاربری شناخته می‌شود و در دنیای اپن سورس بسیاری از رابط های گرافیکی نرم‌افزارها با استفاده از آن طراحی می شود.

PHP-GTK هم مجموعه یی از Binding ها برای زبان برنامه نویسی پی اچ پی است که این امکان را به توسعه دهندگان می‌دهد تا با استفاده از این زبان، اقدام به طراحی نرم افزارهای دسکتاپ کنند.

به خاطر داشته باشید
در دنیای برنامه نویسی، منظور از Binding یک زبان برنامه نویسی به یک لایبرری این است که یک API طراحی شده که با استفاده از آن می‌توان از کدهای قرار گرفته در لایبرری در زبان برنامه نویسی مد نظر خود استفاده کرد (API مخفف واژگان Application Programming Interface به معنی «رابط های برنامه نویسی اپلیکیشن» می باشد. به طور خلاصه، ای پی آی به راحتی این امکان را در اختیار یک برنامه نویس می‌دهد تا به‌ برخی یا تمامی قابلیت‌های یک نرم‌افزار دیگر دسترسی پیدا کند.)
PHP-GTK توسط توسعه‌دهنده یی به نام Andrei Zmievski ابداع شد که به عنوان یکی از توسعه دهندگان اصلی زبان PHP و Zend Engine است و اولین نسخه از PHP-GTK در ماه مارس سال ۲۰۰۱ به دنیا عرضه شد.
221

اسماعیلی هستم مدیر عصر فنون. فارغ التحصیل مقطع کارشناسی ارشد رشته مهندسی فناوری اطلاعات (IT)

پیشنهاد لحظه ای
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

توسط
تومان