source: extensions/Google2Piwigo/include/Zend/Gdata/App/LoggingHttpClientAdapterSocket.php @ 17475

Last change on this file since 17475 was 17475, checked in by mistic100, 12 years ago

new extension: Google2Piwigo

File size: 3.3 KB
Line 
1<?php
2
3/**
4 * Zend Framework
5 *
6 * LICENSE
7 *
8 * This source file is subject to the new BSD license that is bundled
9 * with this package in the file LICENSE.txt.
10 * It is also available through the world-wide-web at this URL:
11 * http://framework.zend.com/license/new-bsd
12 * If you did not receive a copy of the license and are unable to
13 * obtain it through the world-wide-web, please send an email
14 * to license@zend.com so we can send you a copy immediately.
15 *
16 * @category   Zend
17 * @package    Zend_Gdata
18 * @subpackage App
19 * @version    $Id: LoggingHttpClientAdapterSocket.php 24594 2012-01-05 21:27:01Z matthew $
20 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
21 * @license    http://framework.zend.com/license/new-bsd     New BSD License
22 */
23
24/**
25 * @see Zend_Http_Client_Adapter_Socket
26 */
27require_once 'Zend/Http/Client/Adapter/Socket.php';
28
29/**
30 * Overrides the traditional socket-based adapter class for Zend_Http_Client to
31 * enable logging of requests.  All requests are logged to a location specified
32 * in the config as $config['logfile'].  Requests and responses are logged after
33 * they are sent and received/processed, thus an error could prevent logging.
34 *
35 * @category   Zend
36 * @package    Zend_Gdata
37 * @subpackage App
38 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
39 * @license    http://framework.zend.com/license/new-bsd     New BSD License
40 */
41class Zend_Gdata_App_LoggingHttpClientAdapterSocket extends Zend_Http_Client_Adapter_Socket
42{
43
44    /**
45     * The file handle for writing logs
46     *
47     * @var resource|null
48     */
49    protected $log_handle = null;
50
51    /**
52     * Log the given message to the log file.  The log file is configured
53     * as the config param 'logfile'.  This method opens the file for
54     * writing if necessary.
55     *
56     * @param string $message The message to log
57     */
58    protected function log($message)
59    {
60        if ($this->log_handle == null) {
61            $this->log_handle = fopen($this->config['logfile'], 'a');
62        }
63        fwrite($this->log_handle, $message);
64    }
65
66    /**
67     * Connect to the remote server
68     *
69     * @param string  $host
70     * @param int     $port
71     * @param boolean $secure
72     * @param int     $timeout
73     */
74    public function connect($host, $port = 80, $secure = false)
75    {
76        $this->log("Connecting to: ${host}:${port}");
77        return parent::connect($host, $port, $secure);
78    }
79
80    /**
81     * Send request to the remote server
82     *
83     * @param string        $method
84     * @param Zend_Uri_Http $uri
85     * @param string        $http_ver
86     * @param array         $headers
87     * @param string        $body
88     * @return string Request as string
89     */
90    public function write($method, $uri, $http_ver = '1.1', $headers = array(), $body = '')
91    {
92        $request = parent::write($method, $uri, $http_ver, $headers, $body);
93        $this->log("\n\n" . $request);
94        return $request;
95    }
96
97    /**
98     * Read response from server
99     *
100     * @return string
101     */
102    public function read()
103    {
104        $response = parent::read();
105        $this->log("${response}\n\n");
106        return $response;
107    }
108
109    /**
110     * Close the connection to the server
111     *
112     */
113    public function close()
114    {
115        $this->log("Closing socket\n\n");
116        parent::close();
117    }
118
119}
Note: See TracBrowser for help on using the repository browser.