Реальні проекти на php і mysql

Головною перевагою технології SOAP передтехнологією XML-RPC є підтримка типів даних, які можуть визначатися користувачем. Ці типи даних можуть бути описані і перевірені за допомогою XML-схеми. Наприклад, реалізація PEAR SOAP забезпечує автоматичне перетворення користувальницьких типів в класи PHP.

У даній статті розглядаються питання звернення до Web-службам по протоколу SOAP з PHP-додатків і кешування інформації, отриманої в результаті цих запитів.

Робота з SOAP в PHP

SOAP неявно використовує мову XML-схеми (XML Schema), що представляє собою мову для визначення і перевірки структур даних на основі XML. Відповідно до стандарту простір імен для елементів XML-документа описується в окремому файлі, що містить XML-схему і також є XML-документом. У лістингу 1 представлений приклад реалізації SOAP-клієнта, призначеного для роботи з Web-службами компанії Amazon.

Лістинг 1. Виклик Web-служби за допомогою SOAP

Протокол SOAP доповнюється мовою WSDL (Web Service Definition Language - мова визначення Web-служб). Технологія WSDL також є мова, заснований на XML, і використовується для опису функціональності і способів взаємодії з Web-службами. Мова WSDL також інтенсивно використовує простору імен.

У PEAR, офіційному сховище пакетів для PHP, можна знайти розширення для SOAP. SOAP-розширення для PHP залежить від інших пакетів, тому потрібно встановити і які він використовував пакети. У лістингу 2 наведено приклад реалізації Web-служби (саме самої Web-служби, а не використовує її клієнта) з використанням PEAR :: SOAP

Лістинг 2. Реалізація Web-служби за допомогою PEAR :: SOAP

Слід зазначити, що для практичної реалізації Web-служби до класу, який реалізує Web-службу (клас SOAP_SERVER), зазвичай потрібно додати код для установки значень параметрів і реалізацію бізнес-логіки, як показано в лістингу 2.

Використання SOAP для виклику Web-служб

У лістингу 3 розглядається фрагмент функції browseNodeSearch. використовує протокол SOAP для виклику Web-служби компанії Amazon.

Лістинг 3. Фрагмент функції browseNodeSearch для роботи з SOAP

створюється проксі-клас для виклику Web-служби на основі інформації, що зберігається в WSDL-документі. Цей клас буде містити методи, які відповідають методам Web-служби, після чого з Web-службою можна буде взаємодіяти так, як якщо б вона була локальним класом PHP. Далі визначається масив параметрів, які будуть передаватися в запиті.

Викликати Web-службу можна, просто використовуючи проксі-клас і передавши йому масив параметрів, як показано нижче.

При цьому дані, що зберігаються в змінної result. являють собою масив, записи з якого можна перетворити в об'єкти типу Product і, в свою чергу, зберегти в масиві products класу AmazonResultSet.

кешування даних

В даному розділі розглядаються аспекти програми, пов'язані з кешуванню даних. У лістингу 4 представлений вихідний код функції getARS (). відповідає за кешування.

Лістинг 4. Функціональність для кешування інформації

Варто відзначити, що файли з кешуватися запитами отримують імена, засновані на значеннях параметрів, присутніх в запиті. При такій реалізації витяг результуючого набору даних з кешу зажадає частки секунди, а для реального виконання запиту до віддаленого Web-сайту потрібно було б близько 10-12 секунд.

Кешування початкової сторінки

Лістинг 5. Організація кешування для навантажених Web-сайтів

У представленому лістингу HTML-сторінка являє собою шаблон, в який поміщаються докладні дані про проект. Це дозволяє легко забезпечити стандартне відображення для всіх сторінок Web-сайту, що позитивно позначається на масштабованості. Ім'я проекту передається на сторінку у вигляді GET-параметра, а потім використовується при генерації вмісту сторінки, як показано в лістингу 6.

висновок

У даній статті були розглянуті питання, пов'язані з реалізації SOAP-клієнта на основі бібліотеки PEAR :: SOAP для виклику Web-служб компанії Amazon, а також продемонстровані кілька підходів до організації кешування інформації - як для результатів запитів, отриманих від Web-служб, так і для простих HTML-сторінок з динамічним вмістом, що використовуються в додатках з високим рівнем навантаження.

  • Візьміть участь в обговоренні матеріалу на форумі.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 1 .
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 2 .
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 3.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 4.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 5.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 6.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 7.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 8.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 9.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 10.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 11.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 12.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 13.
  • Програмування з використанням PHP і MySQL в розробці Web-додатків. Частина 14.
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 1 .
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 2 .
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 3.
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 4.
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 5.
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 6.
  • Реальні проекти на PHP і MySQL. Робота з Web-службами за допомогою XML і SOAP. Частина 7.

Схожі статті