|
||||
PHP5: Новые библиотеки и другие нововведения
25.05.04 15:11 |
Даниил Кальченко
Помимо новых объектно-ориентированных возможностей в PHP5 появились и другие нововведения. Среди которых обработка исключений. Было так же добавлено несколько новых библиотек, которые будут полезны разработчикам. Обработка исключенийВ PHP5 появился механизм создания обработки исключений, который реализуется с помощью новых ключевых слов try, throw и catch. Благодаря этому нововведению обработка ошибок станет более простой и «аккуратной». Код, в котором может произойти ошибка, заключается в блок try. Для генерации и исключения используется ключевое слово throw. А перехватываются и обрабатываются исключения в блоках catch, которых может быть несколько. Следующий пример демонстрирует использование механизма обработки исключений.
Код:
Вывод: Во втором примере показано, как можно создать свои собственные классы исключений и как их при этом необходимо перехватывать.
Код:
Вывод: В настоящее время в целях обратной совместимости большинство библиотечных функций не использует исключения. Однако все новые расширения будут их поддерживать. Кроме того, можно использовать функцию set_exception_handler(), чтобы перехватить необработанные исключения до завершения работы скрипта. Работа foreach со ссылкамиВ PHP4 нельзя было пройтись по массиву с помощью цикла foreach, изменяя его значения. В PHP5 разрешено использовать этот цикл, используя выбираемые из массива элементы по ссылке, добавив перед соответствующей переменной символ «&». Таким образом, появилась возможность изменять элементы исходного массива, меняя переменную текущего элемента.
Код:
Вывод: Значения по умолчанию, передаваемые по ссылкеВ PHP4 задать значение по умолчанию можно было только для параметров, которые передаются по значению. В PHP5 появилась возможность установки значений по умолчанию для параметров, передаваемых по ссылке.
Код:
Вывод: XML и Web ServicesПоддержка XML в PHP4 базировалась на разнообразных библиотеках XML. Поддержка SAX осуществлялась старой библиотекой Expat, для использования XSLT необходима была библиотека Sablotron, для DOM использовалась более мощная libxml2 – библиотека проекта GNOME. В PHP5 все расширения XML были переписаны, чтобы использовать отличный набор инструментов, предоставляемый libxml2. Это библиотека богатая возможностями, отлично сопровождаемая и эффективно реализующая стандарты XML, предоставляющая передовые возможности технологий XML в PHP. Все вышеупомянутые расширения: SAX, DOM и XSLT теперь используют libxml2, включая такие новые расширения, как SimpleXML и SOAP. SAXSAX является простым интерфейсом API для XML, предназначенным для обеспечения доступа к нужной информации без необходимости самомостоятельного создания специальных синтаксических анализаторов. Новая реализация SAX в PHP5 переведена от использования Expat к libxml2. Хотя новое расширение должно быть совместимо, могут быть некоторые тонкие различия. DOMDOM предоставляет программам доступ к хранящейся в XML-документе информации, как к иерархической объектной модели. Расширение DOM было полностью переписано для PHP5. Теперь оно соответствует рекомендациям W3C. Например, названия функций теперь используют нотацию studlyCaps (присваивание имен со смешанным употреблением заглавных и строчных букв) как предписано по стандарту W3C, Кроме того, новое расширение DOM поддерживает три вида схем для валидации XML документов – DTD, XML Schema и RelaxNG. В результате этих изменений код, написанный для PHP 4 с использованием DOM, не всегда будет выполняться в PHP 5. Однако простая корректировка названий функций к новому стандарту в большинстве случаев должна решить проблему. XSLTXSLT является языком написания сценариев, оптимизированных для преобразования XML-документов. В PHP4, было два расширения, которые поддерживали XSL-преобразования. Первое использовало Sablotron, а второе – поддержку XSLT в расширении DOM. В PHP5 новое расширение XSL основано на использовании библиотеки libxml2. SimpleXMLРасширение SimpleXML позволяет представить XML-документ как встроенный объект PHP. Благодаря этому можно читать, писать или организовывать циклы по XML-документу, получать доступ к элементам и атрибутам так же легко, как это осуществляется при работе с массивами PHP.
simplexml.xml:
Код:
Вывод: В том случае, если есть необходимость сделать что-то, что невозможно выполнить в рамках SimpleXML, можно преобразовать объект SimpleXML в дерево DOM, вызвав функцию dom_import_simplexml(), выполнить необходимое, и вернуться назад к SimpleXML, используя simplexml_import_dom(). SOAPSOAP (Simple Object Access Protocol) – это Простой Объектный Протокол Доступа, позволяющий объектам и web-сервисам взаимодействовать друг с другом в распределенной, децентрализованной web-среде. Приложение, которое хочет работать с некоторым web-сервисом, настраивается на него при помощи WSDL (Web Services Definition Language – язык описания Web-сервисов), который предоставляет низкоуровневую техническую информацию о желаемом сервисе, допускает обращение приложений к информации XML Schema для кодировки данных и гарантирует, что правильные операции будут осуществлены по правильным протоколам. Поддержка SOAP в PHP4 реализовывалась с помощью ряда библиотек, написанных на PHP. Поддержка SOAP в PHP5 была полностью переписана как С-расширение и, хотя на текущий момент находится на последней стадии бета-тестирования, было решено включить в его стандартный дистрибутив, поскольку оно практически полностью реализует стандарт SOAP. Следующий код показывает насколько просто работать с SOAP в PHP5 и демонстрирует вызов функции SomeFunction(), определенной в WSDL-файле.
Код: MySQLi (MySQL Improved)В PHP5 для MySQL было написано новое расширение, которое позволяет полностью использовать преимущества новых функциональных возможностей в MySQL 4.1 и более новых версий. Новые возможности, поддерживаемые этим расширением, включают контроль транзакций, поддержку репликаций и SSL. MySQLi дает возможность использовать для работы с MySQL оба интерфейса: функциональный и объектно-ориентированный. SQLiteSQLite – это встроенная библиотека SQL, которая не требует SQL сервера и подходит для приложений, которые не требуют масштабируемых SQL-серверов. Новая библиотека обладает значительным числом возможностей, среди которых поддержка транзакций, вложенные выборки, представления (view) и большие DB-файлы. Все данные одной базы данных SQLite хранятся в одном файле. Следующий фрагмент кода демонстрирует создание такой базы данных и выбор из созданной в ней таблицы помещенного в нее значения.
Код:
Вывод: Поддержка SQLite появилась еще в PHP 4.3.x, но у библиотеки SQLite в PHP5 появился новый объектно-ориентированный интерфейс и поддержка итераторов. TidyPHP 5 включает поддержку очень полезной библиотеки Tidy. Она позволяет разбирать, диагностировать, чистить и восстанавливать документы HTML. Tidy расширение поддерживает как функциональный, так и объектно-ориентированный интерфейс, и ее API использует механизм исключений, появившийся в РНР5. Следующий пример демонстрирует восстановление некорректного HTML кода с помощью библиотеки Tidy с использованием функционального интерфейса.
Код:
Вывод: PerlРасширение Perl позволяет вызывать Perl-скрипты, использовать объекты Perl и использовать другие функциональные возможности Perl-а прямо из кода PHP. По умолчанию оно не включено в PHP5. Это новое расширение можно найти в репозитории PECL.
Перепечатка материалов на других сайтах или в бумажных изданиях допускается исключительно после согласовании с автором. При цитировании и использовании материалов – ссылка на источник обязательна.
|
|
|||