пятница, 1 октября 2010 г.

создание абстрактных запрос HTTP обработчик класса в PHP

 Резюме: В этой второй части серии, я разрабатываю конкретного класса PHP, производный от абстрактного родителей определены в предыдущем уроке. Этот новый класс реализует некоторые изощренные методы, которые позволяют вам взаимодействовать "лицом к лицу" с Закрытие компилятора компании Google API службы в довольно простым способом.

Закрытие в Google компилятора Service API: Основы

(2010-09-27)

Установка Google Инструментарий веб

(2010-09-24)

Консультации по ASP.Net MVC, с AJAX

(2010-09-29)

Того, в график, используя API в Windows Silverlight развития телефон

(2010-09-15)

Использование Google `ы Libraries API Ajax

(2008-12-27)

PHP Excel: работа с книги и PDF-файлов

(2010-09-19)

Ajax для "чайников"

(2006-05-21)

Использование MVC парадигма с Zend Framework

(2010-09-17)
Закрытие в Google компилятора Service API: Разговор с API с помощью PHP класс
(Страница 1 из 2)


Если когда-либо увеличением размеров пользовательских файлов JavaScript есть Вы отчаянно ищет приложение, которое позволяет оптимизировать их через несколько простых вариантов, то вы должны внимательно посмотреть на закрытие компилятора компании Google API службы . Это веб-сервис выпустила недавно компания поиска (по крайней мере на момент написания этого документа) позволят вам выполнить весь процесс оптимизации либо вручную с помощью графического интерфейса пользователя, или программно через POST HTTP-запросов.

Если вы читали вводный учебник этой серии, вы знакомы в общих чертах с возможностями, которые Closure Compiler API предлагает. В этой части я дал краткий обзор основных функций API, в том числе возможность задавать уровень оптимизации, который будет применяться к целевой файлов, и формат (текст, XML или JSON), в которой файлы будут направлены клиента.

Это действительно бы напомнить, что основная цель этой серии заключается в демонстрации, в шаг за шагом образом, как взаимодействовать с Closure Compiler API службы использованием PHP. Этот процесс может быть портирована на другие языки программирования с небольшими усилиями. В соответствии с этим помещение, в предыдущей статье я прошел через развитие абстрактного класса PHP, который инкапсулируется большинство функций, необходимых для выполнения HTTP-запросов данного хоста и порта TCP с помощью набора простых методов.

С этим абстрактным родителей уже определены, следующим шагом является создание конкретного подкласса, способный говорить <a href="http://seo-miheeff.ru/vybor_fraz_i_slov.php">Выбор ключевых фраз и слов</a>  непосредственно Closure Compiler API службы. Этот подкласс позволит автоматически оптимизировать нескольких JavaScript файлов легко, без необходимости явно использовании интерфейс компилятора.

С учетом сказанного, пришло время приступить к строительству вышеупомянутой конкретного класса PHP. Хотите посмотреть, как это будет сделано? Просто продолжайте чтение.

Создание бэкэнд взаимодействовать с Closure Compiler API службы: создание абстрактных запрос HTTP обработчик класса в PHP

Как я только что объяснил, моей целью является просто показать, как использовать Google, Closure Compiler API службы использованием объектно-ориентированного бэкэнд состоит из нескольких образцов классов PHP. Чтобы достичь этого, я впервые разработана абстрактный класс, который ничего, кроме расширения обертку "fsockopen ()" PHP функции. Полный исходный код класса выглядит следующим образом:

(HttpRequestHandlerAbstract.php)

<? PHP

Аннотация HttpRequestHandlerAbstract класса
(
охраняемых $ _data = Array ();
охраняемых $ _url;
охраняемых $ _port;
охраняемых $ _method;
охраняемых $ _headers = Array ();
охраняемых $ _responseHeader;
охраняемых $ _responseContent;

/ / Конструктор
публичную функцию __construct (массив $ данных, массив $ Настройки = Array ())
(
$ Этом-> SetData ($ данных);
если (array_key_exists ('URL', $ настройки)) (
$ Этом-> setUrl ($ настройки ['URL']);
)
если (array_key_exists ('Порт', $ настройки)) (
$ Этом-> setPort ($ настройки ['Порт']);
)
если (array_key_exists ("метод", $ настройки)) (
$ Этом-> setMethod ($ ['методом'] настройки);
)
)

/ / Множество данных, которые будут переданы с просьбой
общественного SetData функции (массив $ данные)
(
если (пусто ($ данных)) (
бросать новые HttpRequestHandlerException ("запрос аргументы не действуют. ');
)
$ Этом-> _data = $ данных;
вернуть $ это;
)

/ / Получить указанный запрос данных
общественные функции GetData ()
(
геЬигп $ ЬЫз-> _data;
)

/ / Установка URL запроса будут направлены на (осуществляется подклассы)
Аннотация общественного setUrl функции ($ URL);

/ / Получить данный URL
общественного getUrl функции ()
(
геЬигп $ ЬЫз-> _url;
)

/ / Устанавливаем порт TCP запрос будет сделан на (осуществляется подклассы)
Аннотация общественного setPort функции ($ порт);

/ / Получить данный порт
общественного getPort функции ()
(
геЬигп $ ЬЫз-> _port;
)

/ / Установить метод запроса (GET или POST)
общественного setMethod функции ($ метод = 'GET')
(
$ Метод = strtoupper ($ метод);
если (! in_array ($ метод, массив ('GET', 'POST'), TRUE)) (
бросать новые HttpRequestHandlerException ("метод запроса является недопустимым. ');
)
$ Этом-> _method = $ методом;
вернуть $ это;
)

/ / Получаем метод запроса
общественного GetMethod функции ()
(
геЬигп $ ЬЫз-> _method;
)

/ / Добавить новый заголовок запроса
общественного AddHeader функции ($ ключ, $ заголовке)
(
$ Ключ = strtolower ($ ключ);
если (! array_key_exists ($ ключ, $ ЬЫз-> _headers)) (
$ Этом-> _headers [$ ключевых] = $ заголовок;
)
вернуть $ это;
)

/ / Удалить указанный заголовок запроса
общественного removeHeader функции ($ ключ)
(
$ Ключ = strtolower ($ ключ);
если (array_key_exists ($ ключ, $ ЬЫз-> _headers)) (
отключенное ($ ЬЫз-> _headers [$ ключевых]);
)
вернуть $ это;
)

/ / Получить указанный заголовок запроса
общественного GetHeader функции ($ ключ)
(
$ Ключ = strtolower ($ ключ);
если (array_key_exists ($ ключ, $ ЬЫз-> _headers)) (
геЬигп $ ЬЫз-> _headers [$ ключевых];
)
)

/ / Получаем заголовок включен в ответ
общественного getResponseHeader функции ()
(
геЬигп $ ЬЫз-> _responseHeader;
)

/ / Получаем содержимое включены в ответ
общественного getReponseContent функции ()
(
геЬигп $ ЬЫз-> _responseContent;
)

/ / Отправить запрос HTTP к указанному URL и TCP-порт
общественного SendRequest функции ()
(
/ / Разбора и urlencode запрос данных
$''Данных =;
Еогеасп ($ этом-> _data при $ ключ => значение $) (
$ Данных .= '&'. $ Ключ. '='. urlencode ($ стоимость);
)
$ Данных = TRIM ($ данных,'&');
/ / Разбор данного URL
$ URL = parse_url ($ этом-> _url);
если (! isset ($ ['хозяин'] URL) или! isset ($ URL ['путь'])) (
бросать новые HttpRequestHandlerException ("Нет хозяина или указан путь. ');
)
$ Host = $ ['хозяин'] URL;
$ PATH = $ ['путь'] URL;
/ / Открываем сокет-соединение на указанный порт TCP
если (! $ / р = fsockopen ($ хозяин, $ ЬЫз-> _port)) (
бросать новые HttpRequestHandlerException ("Ошибка открытия сокета соединения с URL '$ этом-> _url" на порт.' $ этом-> _port...);
)
ЕриЕз ($ / р, "$ этом-> _method $ PATH HTTP/1.0rn");
ЕриЕз ($ / р, "Ведущий: $ hostrn");
ЕриЕз ($ / р, "Content-Type: применение / х-WWW-форма-urlencodedrn");
ЕриЕз ($ / р, "Content-Length:" StrLen ($ данные) "р"..);
ЕриЕз ($ / р, "О связи: closernrn");
ЕриЕз ($ р, $ данные);
/ / Получить ответ из запроса
$''Ответ =;
в то время как (! feof ($ / р)) (
$ Ответ .= ЕдеЬз ($ / р, 128);
)
/ / Закрываем сокет-соединение:
fclose ($ FP);
/ / Процесс ответ
$ Ответ = взорваться ("rnrn", $ ответ, 2);
$ Этом-> _responseHeader = $ ответа [0];
$ Этом-> _responseContent = $ ответа [1];
геЬигп $ ЬЫз-> _responseContent;
)

/ / Отправить указанный заголовок
общественного sendHeader функции ($ ключ)
(
если ($ заголовок = $ этом-> GetHeader ($ ключ)) (
заголовка ($ заголовка);
)
)
)


(HttpRequestHandlerException.php)

<? PHP

Класс HttpRequestHandlerException распространяется исключение ()

Если вы еще не работали с сокетами в PHP раньше, не волнуйтесь, предыдущий класс обрабатывает процесс прозрачным позади сцены через свою "SendRequest ()" методом. Кроме того, класс реализует некоторые методы получения и мутатор методов, позволяющих, среди прочего, установить URL и TCP порт, на котором HTTP запросы будут сделаны, которые довольно легко понять.

Пока все идет хорошо. Определив абстрактного родителя, который вызывает HTTP запросы на конкретные URL на порт TCP, мы теперь должны начать строить конкретные класс, отвечающий за связь непосредственно с Closure Compiler API службы. Как вы увидите в момент вождения логику этого класса будет очень легко понять, но чтобы узнать, как она будет создана вы должны нажать на следующую ссылку и продолжайте чтение

Комментариев нет:

Отправить комментарий