home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / php / PEAR / Services / Yahoo / ContentAnalysis / AbstractContentAnalysis.php next >
Encoding:
PHP Script  |  2008-07-02  |  3.8 KB  |  115 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * Abstract search class
  6.  *
  7.  * Copyright 2005-2006 Martin Jansen
  8.  *
  9.  * Licensed under the Apache License, Version 2.0 (the "License");
  10.  * you may not use this file except in compliance with the License.
  11.  * You may obtain a copy of the License at
  12.  *
  13.  *     http://www.apache.org/licenses/LICENSE-2.0
  14.  *
  15.  * Unless required by applicable law or agreed to in writing, software
  16.  * distributed under the License is distributed on an "AS IS" BASIS,
  17.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  * See the License for the specific language governing permissions and
  19.  * limitations under the License.
  20.  *
  21.  * @category   Services
  22.  * @package    Services_Yahoo
  23.  * @author     Martin Jansen <mj@php.net>
  24.  * @copyright  2005-2006 Martin Jansen
  25.  * @license    http://www.apache.org/licenses/LICENSE-2.0  Apache License, Version 2.0
  26.  * @version    CVS: $Id: AbstractContentAnalysis.php,v 1.2 2006/10/02 12:53:33 mj Exp $
  27.  * @link       http://pear.php.net/package/Services_Yahoo
  28.  */
  29.  
  30. require_once "Services/Yahoo/ContentAnalysis/Response.php";
  31. require_once "HTTP/Request.php";
  32.  
  33. /**
  34.  * Abstract search class
  35.  *
  36.  * This abstract class serves as the base class for all different
  37.  * types of searches that available through Services_Yahoo.
  38.  *
  39.  * @category   Services
  40.  * @package    Services_Yahoo
  41.  * @author     Martin Jansen <mj@php.net>
  42.  * @copyright  2005-2006 Martin Jansen
  43.  * @license    http://www.apache.org/licenses/LICENSE-2.0  Apache License, Version 2.0
  44.  * @version    CVS: $Id: AbstractContentAnalysis.php,v 1.2 2006/10/02 12:53:33 mj Exp $
  45.  * @link       http://pear.php.net/package/Services_Yahoo
  46.  */
  47. abstract class Services_Yahoo_ContentAnalysis_AbstractContentAnalysis {
  48.  
  49.     protected $parameters = array("appid" => "PEAR_Services_Yahoo");
  50.  
  51.     /**
  52.      * Submits the search
  53.      *
  54.      * This method submits the search and handles the response.  It
  55.      * returns an instance of Services_Yahoo_Result which may be used
  56.      * to further make use of the result.
  57.      *
  58.      * @access public
  59.      * @return object Services_Yahoo_Response Search result
  60.      * @throws Services_Yahoo_Exception
  61.      */
  62.     public function submit()
  63.     {
  64.         $request = new HTTP_Request($this->requestURL);
  65.  
  66.         foreach ($this->parameters as $key => $value) {
  67.             $request->addQueryString($key, $value);
  68.         }
  69.  
  70.         $result = $request->sendRequest();
  71.         if (PEAR::isError($result)) {
  72.             throw new Services_Yahoo_Exception($result->getMessage());
  73.         }
  74.  
  75.         return new Services_Yahoo_ContentAnalysis_Response($request);
  76.     }
  77.  
  78.     /**
  79.      * Set Application ID for the content analysis
  80.      *
  81.      * An Application ID is a string that uniquely identifies your 
  82.      * application. Think of it as like a User-Agent string. If you 
  83.      * have multiple applications, you should use a different ID for 
  84.      * each one. You can register your ID and make sure nobody is 
  85.      * already using your ID on Yahoo's Application ID registration 
  86.      * page.
  87.      *
  88.      * The ID defaults to "PEAR_Services_Yahoo", but you are free to
  89.      * change it to whatever you want.  Please note that the access
  90.      * to the Yahoo API is not limited via the Application ID but via
  91.      * the IP address of the host where the package is used.
  92.      *
  93.      * @link   http://api.search.yahoo.com/webservices/register_application
  94.      * @link   http://developer.yahoo.net/documentation/rate.html
  95.      * @access public
  96.      * @param  string Application ID
  97.      * @return void
  98.      */
  99.     public function setAppID($id)
  100.     {
  101.         $this->parameters['appid'] = $id;
  102.     }
  103.  
  104.     /**
  105.      * Set the query for the content analysis
  106.      *
  107.      * @access public
  108.      * @param  string Query for the content analysis
  109.      */
  110.     public function setQuery($query)
  111.     {
  112.         $this->parameters['query'] = $query;
  113.     }
  114. }
  115.