Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Новые возможности РНР 5

 

Новые возможности РНР 5

 

 

Недавно группа разработчиков языка РНР (PHP team) объявила о выходе финальной версии РНР – РНР 5. Язык PHP очень популярен среди веб-программистов, по данным исследования Netcraft (/redir.php?url=www.netcraft.com%2FSurvey%2F%3C%2Fa%3E%29 PHP применяется на 16,251,453 доменах. Выпуск новой версии языка ознаменовал переход РНР на новый уровень – анализируя нововведения видно, что разработчики взяли курс на применения РНР в проектах корпоративного уровня, с применением самых современных технологий (XML, SOAP, web-service) и полноценного объектно-ориентированного подхода.

На большинстве веб-серверов хостинговые компании предлагают еще РНР 4.х версии, только некоторые хостеры начали предоставлять хостинг с использованием новой, 5-й версии. Массовой миграции кончено, ждать не стоит, процесс будет идти медленно, тем более, что ветка 4.3.х все еще развивается и пока обеспечивает большую стабильность, хоть и меньше функциональности.

загрузка...

 

 

Стоит ли сейчас переходить на новую версию РНР? Однозначного ответа на этот вопрос нет, но для начала надо познакомится с нововведениями и изменениями, чтобы ясно представлять возможности новой платформы.

Скачать РНР 5.0 можно с этой страницы: /redir.php?url=www.php.net%2Fdownloads.php%23v5%3C%2Fa%3E Если вы разрабатываете сайт на локальном веб-сервере под Windows, то закачивайте бинарную версию под win32 – она занимает 7,5 Мб. Сразу же рекомендуется скачать набор дополнительных библиотек (скомпилированных модулей расширения) PECL /redir.php?url=www.php.net%2Fget%2Fpecl-5.0.0-Win32.zip%2Ffrom%2Fa%2Fmirror%3C%2Fa%3E%2C по объему это всего 1 Мб, но там много очень полезных библиотек, которые не входят в основной дистрибутив.

Появился интерпретатор для работы из коммандной строки WindowsУже после инсталляции нововведения бросаются в глаз — полностью изменилась даже структура каталогов, теперь весь дистрибутив устанавливается в три каталога, все нужные для работы файлы находятся сразу в корневом каталоге, а остальные подкаталоги предназначены для расширений (каталоги /ext, /extras и /pear). Самих исполняемых файлов уже стало целых три – php.exe, php-cgi.exe и php-win.exe. Два из них – php.exe и php-win.exe одинаковые и представляют из себя командный интерпретатор скриптов на РНР, который можно применять в Windows для работы с командной строки (можно ассоциировать двойной клик по файлам с расширением *php с файлом php-win.exe). В таком режиме скрипт работает в фоновом режиме, ничего не выводя в консоль или иным способом, для работы доступны почти все модули и возможности (кроме тех, которые ориентированы на работу в окружении веб-сервера). Для тех, кто любит/хочет поэкспериментировать: если получится установить интерпретатор РНР как системный сервис в Win2000/XP, то можно писать довольно сложные скрипты, которые могу, к примеру, заниматься мониторингом системы или удаленных узлов, обрабатывать статистику и тому подобное.

Большинство попробовавших новый релиз РНР сходятся во мнении, что основные нововведения качаются измененной объектной модели, позволяя теперь полноценно использовать мощь обьектно-ориентированного программирования, создавая конкуренцию тому же ASP.NET.

В качестве интерпретатора РНР используется ядро компании Zend, в РНР 5 применяется ядро Zend 2, которое и реализует новые ООП функции. Что же нового в объектной модели РНР 5?

Поддержка модификаторов для членов класса — private, protected, public, которые ограничивают доступ к переменным и функциям члена класса. Пример:

class TestClass
{
private $hello = 'тестовая переменная';
}

Теперь нельзя обратиться непосредственно к переменной класса TestClass, с ней могут работать только функции-члены этого класса. Модификатор protected позволит обращаться к функции или переменной из любого производного класса, а public объявляет общедоступную переменную или метод.

Появились унифицированные конструкторы и деструкторы для классовПоявились унифицированные конструкторы и деструкторы для классов. Ранее конструктор назывался так же, как и класс, теперь у каждого класса есть конструктор __construct() и __destructor(), вызываемые при создании и уничтожении объекта класса. Также теперь можно принудительно удалять объект, даже если он еще используется в других местах программы – это делается через вызов оператора delete, который уже сам вызывает деструктор для объекта. Но дальше уже сам программист должен следить за использованием ссылок на удаленный объект – при их использовании будет генерироваться ошибка. Правило простое – сам удалил, сам и следи за целостностью.

Для явного клонирования объекта появилась функция __clone(). Причем, теперь можно гибко управлять клонированием – если разработчик реализует функцию __clone(), то он может задавать какие из свойств объекта и как будут клонироваться, а если нет, то вызываемый обработчик по умолчанию создает точную копию объекта.

Для обхода ограничения на наследования применяется концепция интерфейсовОграничение на наследование только от одного класса теперь преодолевается концепцией интерфейсов – класс может наследовать любое количество интерфейсов (это аналогично языку C#, вообще, РНР версии 5 начинает сильно напоминать по функциональным возможностям C#). Интерфейс – это именованный набор абстрактных членов, это значит, что любой класс, наследующий интерфейс, должен сам заботится о конкретной реализации функций – абстрактных членов наследуемого интерфейса. Пример:

// объявляем интерфейс
interface company_info {
function write_company_tytle();
function write_company_location();
}

// мы объявили интерфейс company_info и две функции, но за их
// реализацию отвечает класс, который будет наследовать этот интерфейс!

Class my_company implements company_info {
// реализуем функции, определенные в интерфейсе
function write_company_tytle()
{
echo 'ООО «моя компания»';
}

function write_company_location();
{
echo 'Россия, г. Москва';
}
}

Абстрактные методы класса теперь также доступны РНР-программисту (объявляется с помощью ключевого слова abstract, причем абстрактными могут быть как методы, так и целые классы), они аналогичны методам интерфейсов – заботу о реализации берет на себя наследуемый класс.

Оригинальная функция __autoload(class_name) теперь избавляет программиста от необходимости вручную отслеживать все используемые в скрипте классы и подключать файлы с их реализацией вручную.

теперь доступны статические методы и члены класовОбъектная модель в РНР 5 расширена такими нововведениями как статические члены и методы класса, а также константы класса. Это значит, что свойство (член) или метод класса доступно без создания объекта класса, то есть они хранят данные и методы на уровне класса, а не конкретного объекта этого класса. Хотя при вызове статического метода надо явно указывать класс, в котором он определен, но объекта этого класса не создается. Пример:

class my_company {
// объявляем статический метод
static function write_company_tytle ()
{
echo 'ООО «моя компания»';
}

// еще одно нововведение – константы класса
const COMPANY_FOUNDED = '2004';
}

// вызываем метод без создания объекта класса.
my_company::write_company_tytle();

// выводим константу
echo my_company::COMPANY_FOUNDED

Если интерфейсы, статические и абстрактные методы используются для расширения возможностей наследования, то ключевое слово final имеет обратную функцию – класс или метод, помеченный как final нельзя наследовать или перегружать. Пример:

// определяем класс как final
final class my_company {
}

// пытаемся унаследовать класс от my_company class my_corporation extends my_company {
}

// интерпретатор выдаст ошибку! Так делать нельзя.

Еще полезные изменения затронули такой оператор, как is_a() из РНР 4, теперь для определения принадлежности объекта к конкретному классу используется оператор instanceof. Также теперь можно для функций, которые принимают объекты как параметры явно указывать, объекты каких классов они могут принимать. Если попытаться передать такой функции объект другого класса, будет сгенерирована ошибка. Кстати, об ошибках. Теперь есть мощные возможности по отлавливанию и обработке ошибочных ситуаций (исключений). Для создания обработчика исключений нужно наследовать класс Exception, а в коде применять конструкции try/throw/catch для перехвата ошибочных ситуаций в блоках кода. Пока, правда, модули в целях совместимости с предыдущими версиями интерпретатора не используют механизм исключений, но уже новые расширения ее используют.

Выше были описаны лишь основные нововведения, причем внимание было сосредоточено на описании новой объектной модели. «За кадром» остались изменения в механизме работы с XML, веб-сервисами, базами данных и другие изменения. Пробуя ответить на вопрос в начале статьи – стоит ли уже сейчас переходить на РНР 5, можно сказать – если планируется реализация сложно бизнес-логики, или много работы с XML, интенсивно используются возможности последних версий СУБД MySQL (4.x и 5.0) или вы хотите попробовать создавать веб-сервисы с поддержкой SOAP 1.2 и WSDL 1.1 – тогда да, проще и выгоднее будет попробовать разработать проект, использую новую версию РНР.

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "Новые возможности РНР 5":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Новые возможности с Nissan Quest

Первое поколение минивэна Nissan Quest дебютировало в 2003 году и вот, ему на смену пришел обновленный Quest 2007 модельного года. Новинка отличается перепроектированным интерьером, обновленным дизайном и множеством современных дополнительных опций. Работая над внешностью нового Nissan Quest, дизайнеры стремились сделать его более современным, но в тоже время не отпугнуть консервативных клиентов, и им это удалось.

» Японские автомобили - 2617 - читать


Mercedes-Benz ML 500: старое имя, новые возможности

Второе поколение Mercedes-Benz M-класса стало еще больше, мощнее и роскошнее. Это прекрасный автомобиль на каждый день, но далеко не для каждого кошелька. Под капотом Mercedes-Benz ML 500 скрывается V-образная «восьмерка» мощностью 306 л.с., ее максимальный крутящий момент составляет 460 Нм уже с 2 700 об/мин.

» Немецкие автомобили - 2773 - читать


VW Golf 2007: новые возможности старого знакомого

Компания Volkswagen решила обновить и подогреть интерес к пятому поколению Golf, которое выпускается без изменений больше двух лет. В Европе продажи Golf и Golf Plus 2007 модельного года начнутся уже ближайшие дни. Бензиновый двигатель VW Golf 2007 объемом 1,4 литра с будет развивать 80 л.с. против 75 л.с. у предшественника.

» Разное - 2110 - читать


Социальные сети: новые возможности для бизнеса

Социальные сети — одни из самых популярных современных интернет-ресурсов, и популярность эта вполне заслуженна. Во-первых, удобный и интуитивно понятный интерфейс, во-вторых, наиширочайший охват интересов потребителя — на том же MySpace, например, можно найти что угодно: от талантливого домашнего видео до блогов мировых звезд. Однако один вопрос волновал общественность уже давно: а можно ли на социальных сетях заработать?

» Интересное в сети - 3195 - читать


Липоскульптура - новые возможности!

Сильная, уверенная в себе, привыкшая быть в центре внимания, привлекательная и ухоженная - вот как выглядит успешная женщина начала XXI века. Но наряду с большими запросами жизнь дает нам массу возможностей быть именно такой, как хочется, по крайне мере внешне. В этом нам помогают разнообразные косметологические центры и клиники пластической хирургии.

» Здоровый образ жизни - 2688 - читать



Статья на тему Интернет » Интересное в сети » Новые возможности РНР 5

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru