Четверг, 2025-01-23, 0:00 AM
Статьи - PHP
Приветствую Вас Гость | RSS
Главная страница Каталог статей Регистрация Вход
Меню сайта

Категории каталога
PHP [158]
Статьи по PHP

Наш опрос
Какую технологию вы предпочитаете?
Всего ответов: 250

Начало » Статьи » PHP » PHP

Взгляд в будущее PHP
Введение
Аудитория

Данная статья, прежде всего, предназначена для программистов на PHP, которые интересуются самыми последними усовершенствованиями языка.
О чем статья?

В этой статье я прослежу историю языка PHP с самого начала до текущего состояния дел. И приведу свое мнение о будущем развитии этого языка программирования.
История PHP
PHP/FI: история с ископаемых времен

Первая версия PHP называлась PHP/FI и была создана Расмусом Лердорфом в далеком 1995 году. Это был еще не язык программирования, а всего лишь набор скриптов на языке Perl. Расмус Лердорфм использовал PHP/FI для сбора статистики посещаемости своей домашней страницы, на которой находилось его резюме. Как это обычно бывает, требовалась все большая функциональность, и Расмус пишет (уже на языке С) новую версию, которую можно использовать для разработки более серьезных веб-приложений. С этих самых пор PHP становится "Open source"-проектом.

PHP/FI расшифровывается как Personal Home Page / Forms Interpreter, что можно перевести, как "интерпретатор форм для домашних страниц". Уже в этой версии PHP имел много общего с сегодняшней версией: переменные в стиле Perl, автоматическую интерпретацию форм, возможность встраиваться в HTML код. Язык, как не трудно догадаться, был похож на Perl, хотя синтаксис стал более понятным (да простят меня поклонники Perl'а) и менее гибким.

Вторая версия PHP/FI выходит в 1997 году. Число пользователей значительно выросло по сравнению с предыдущей версией. К тому же разработкой уже занимается не один человек. Но вторую версию нельзя назвать слишком удачной, так как...
PHP3: прорыв

... в этом же году выходит третья версия PHP. Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) полностью переписали интерпретатор и назвали свой язык просто PHP. Аббревиатура PHP содержит рекурсивный акроним, и расшифровывается, как "PHP: Hypertext Preprocessor", то есть "препроцессор гипертекста". Изначально PHP3 разрабатывался для электронной торговли, но стал использоваться и в других веб-приложениях. Официальный релиз третей версии был выпущен в 1998 году, когда он пользовались на сотнях тысячах веб-сайтов, и был установлен приблизительно на 10% Интернет-серверов.
PHP4: следующий шаг к успеху
Сразу после выхода PHP3, Энди Гутманс и Зив Сураски стали работать над четвертой версией языка. Прежде всего, было переработано ядро, в результате чего был создан новый движок, который получил название Zend Engine (от слияния имен Zeev и Andi). Официальная версия PHP4 вышла в 2000 году и включала ряд существенных доработок. Прежде всего, это полноценная поддержка сессий, безопасные способы получение данных от пользователя, буферизация вывода и нововведения в самом языке. PHP4 пользуются уже несколько миллионов сайтов, что составляет более 20% доменов Интернета.

В четвертой версии появилась поддержка объектно-ориентированного программирования (поддержку ООП в PHP3 трудно назвать даже поддержкой). Я употребляю термин поддержка, потому что назвать PHP4 полностью объектно-ориентированным языком программирования трудно. Но даже такую примитивную реализацию основных концепций ООП разработчики с удовольствием использовали.
PHP5: продолжение следует?
Сейчас набирает обороты пятая версия PHP. В этой версии язык стал по настоящему объектно-ориентированным и стал более похожем на Java, чем на Perl. Позволю себе кратко перечислить новые возможности в этой области:

* Конструкторы и деструкторы
* Исключения
* Абстрактные классы и методы
* Интерфейсы
* Области видимости членов класса
* Статические члены класса
* Константные члены класса и классы
* Не переопределяемые члены класса и классы
* Параметры с типом

Разумеется, в PHP5 поддерживаются различные передовые технологии, такие как XML и SOAP. Не осталась в стороне и работа с базами данных: появилось новое расширение MySQLi, которое поддерживает все последние "навороты" MySQL 4.1.
PHP6: нет предела совершенству
В жесткой схватке со своими конкурентами (Perl, ASP) язык PHP должен постоянно совершенствоваться. Что же можно сделать, чтобы еще улучшить язык?
Стандартная библиотека
Каждый язык программирования состоит собственно из самого языка и стандартной библиотеки. Существуют тысячи различных нестандартных библиотек для PHP, но есть и пару стандартных вроде PEAR и PECL. Очень бы хотелось иметь одну стандартную объектно-ориентированную библиотеку, которая бы распространялась вместе с PHP. В такую библиотеку должны входить как различные классы для работы с БД, XML и так далее, так и классы для простого создания сайтов, например, гостевые, форумы, ... В последней версии PHP уже появились стандартные классы для работы БД, но это только первый шаг.
Типизированные переменные
Сейчас принято считать язык полностью объектно-ориентированным, если все переменные являются объектами, например C#. В PHP тип переменной вообще определяется интерпретатором, а приведение типов осуществляется автоматически. Для языка, основной задачей которого является вывод текста, это, конечно, плюс, ведь любую переменную можно легко привести к строковому типу. ООП предлагает другое решение: каждый тип, который нужно представить в виде строки, должен иметь метод для явного преобразования типов. В PHP такой метод называется __tostring():
class String
{
private $S = '';
public function __construct($S = '')
{
$this->S = $S;
}
public function __tostring()
{
return $this->S;
}
}
$S = new String("Hello, world!");
echo $S;

В данном примере я показал, как может выглядеть простейшая реализация класса для работы со строками. Конечно, сюда надо добавить методы для различных операций со строками: сложение, поиск и тому подобные.
Производительность
Для интерпретируемых языков производительность всегда больная тема. Создатели PHP прикладывают максимум усилий для увеличения производительности своего детища. Надеюсь, они не оставят своих усилий в этом направлении, и когда-нибудь библиотеку языка PHP напишут не на C, а на самом PHP.
Свойства
Во всех объектно-ориентированных языках программирования имеются, так называемые, "умные поля" - свойства. В PHP есть возможности для косвенной реализации полей при помощи методов __set и __get:
class Foo
{
private $a = '';
function __set($Name, $Value)
{
if ($Name == 'A')
$this->a = $Value;
}
function __get($Name)
{
if ($Name == 'A')
return $this->a;
else
return '';
}
}
$Object = new Foo();
$Object->A = 'Hello, world!';
echo
$Object->A;

Методы __set и __get вызываются при обращении к полю класса, которого не существует. Это обращение можно перехватить и подставить нужное поле.
Псевдо-недостатки

Есть вещи, которые некоторые относят к недостаткам, но именно они и являются достоинствами, которые надо сохранить в следующих версиях.
$this->...

Для обращения к любому члену класса необходимо использовать конструкцию "$this->". Это поначалу ставит новичков в тупик, и раздаются крики "кто это придумал!?", "почему программа не работает", особенно, если на отлов ошибки уходит довольно много времени. Признаюсь, я был одним из таких кричащих. По собственному опыту скажу, как этого избежать: в файле php.ini нужно прописать следующую строку:

error_reporting = E_ALL|E_STRICT

Теперь при попытке использовать любую необъявленную переменную вам будет выдано предупреждение.
global
Использование глобальных переменных в функциях из той же оперы, что и предыдущий псевдо-недостаток. В идеальном мире функция не должна обращаться к глобальным переменным (которых также не должно быть), а реальности, если уж приходится это делать, то это надо четко указывать с помощью директивы global.
Заключение
Очень бы хотелось, чтобы пятая версия была не последний, а вышла бы шестая и седьмая версии с гордым рекурсивным именем.

Категория: PHP | Добавил: webmaster (2006-11-25)
Просмотров: 382 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Сервисы

Поиск по каталогу

Друзья сайта

| Ссылки 1 | Ссылки 2 | Ссылки 3 |
www.webmaster.clan.su Каталог+поисковая система be number one Bakililar.az Top Sites Сервис авто регистрации в
каталогах, статьи про раскрутку сайтов, web дизайн, flash, 
photoshop, хостинг, рассылки; форум, баннерная сеть, каталог 
сайтов, услуги продвижения и рекламы сайтов Скрипт для определения тиц (Яндекс CY: индекс цитирования). Определение pr (Google Pagerank). Проверить тиц pr сайта.
Copyright WebMaster.Clan © 2006 Бесплатный хостинг uCoz