HTTP request Class V2

Door Daan , 20 jaar geleden, 6.132x bekeken

Dit script is een tweede versie van mijn eerdere classe:
http://www.phphulp.nl/php/scripts/4/1377/

De verbeterde punten zijn:

  • Alles in het Engels, in plaats van Nederlands en Engels door elkaar te gebruiken.
  • Commentaar omgezet in phpdoc.
  • Gebruik gemaakt van 'protected', in plaats van 'private', zodat deze classe eventueel als parent gebruikt kan worden door iemand.
  • Code gesplitst in meerdere classes, waardoor leesbaarheid en gebruik van de classe verbeterd zijn.
  • Foutafhandeling is sterk verbeterd, door gebruik te maken van excepties.
  • Controle op de parameters.
  • Je kunt nu gebruik maken van alle protocollen, in plaats van alleen POST.


Hoe je deze classe gebruikt, is dus ook veranderd. Een voorbeeld van hoe je het kan gebruiken, staat onder het script.

Helemaal onderaan staat hoe je de excepties kunt gebruiken.

Natuurlijk zijn, net als de vorige keer, alle opmerkingen welkom.
Deze classe is misschien wel beter, hij zal vast niet perfect zijn ;)

Veel plezier ermee!
Daan

Gesponsorde koppelingen

PHP script bestanden

  1. http-request-class-v2

 

Er zijn 11 reacties op 'Http request class v2'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
Je "arguments" kunnen nu enkel maar van het GET type zijn.
Spijtig genoeg zou het handiger zijn dat je ook POST, PUT,... argumenten zou kunnen gebruiken.
Daan
Daan
20 jaar geleden
 
0 +1 -0 -1
Correctie: Kan alleen van het type POST zijn (zie titel ;)
Ik zal eens kijken of ik dat kan aanpassen.
Daan

Edit:
Wat bedoel je eigenlijk met enz..? Ik kom niet verder dan GET, POST en PUT, wat wel nog gebruikt wordt.
Iltar van der berg
iltar van der berg
20 jaar geleden
 
0 +1 -0 -1
Nice, maar een stuk makkelijker als je curl gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
// erg basis, maar kan nog makkelijk uitgebreid worden
class Berg_Auth_Connection
{
    protected $_curl = null;
    protected $_curlOptions = array();
    
    public function __construct($hostname = '', $method = 'GET', $port = 80)
    {

        $this->_curlOptions[CURLOPT_URL] = $hostname;
        $this->_curlOptions[CURLOPT_PORT] = $port;
        
        if($method == 'POST') {
            $this->_curlOptions[CURLOPT_POST] = 1;
        }

        
        $this->_curl = curl_init();
    }

    
    public function setOption($curlOption, $optionValue = null)
    {

        if(is_array($curlOption)) {
            foreach($curlOption as $key => $value) {
                //__METHOD__ . ($key, $value);
                call_user_func(array($this, __METHOD__), $key, $value);
            }
        }
else {
            $this->_curlOptions[$curlOption] = $optionValue;
        }
    }

    
    public function sendCurl($close = true)
    {

        curl_setopt_array($this->_curl, $this->_curlOptions);
        $result = curl_exec($this->_curl);
        
        if($close !== false) {
            $this->close();
        }

        
        return $result;
    }

    
    public function close()
    {

        if(is_resource($this->_curl)) {
            curl_close($this->_curl);
        }
    }

    
    public function __destruct()
    {

        $this->close();    
    }

    
    static public function sendResponse($value)
    {

        die($value);
    }
}


?>
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
Niet overal is er cURL beschikbaar...

@Daan: idd ik keek over die execute functie. wat je nog hebt is bv. PROPFIND,MOVE,COPY,DELETE en anderen, want die horen bij het WebDAV protocol wat ook gewoon over HTTP gaat.

Dus ideaal zou zijn bij de constructor nog een type kunnen meegeven (standaard wel POST laten ofzo), dan lijkt het mij DE ideale class om te gebruiken indien er geen cURL is.

Ik maak er waarschijnlijk wel nog eens gebruik van...
Michael
michael
20 jaar geleden
 
0 +1 -0 -1
ziet er goed uit pik :)
Iltar van der berg
iltar van der berg
20 jaar geleden
 
0 +1 -0 -1
Ja, het is wel top qualiteid (zeker vergeleken bij je oude)
Lode
Lode
20 jaar geleden
 
0 +1 -0 -1
"Kwaliteit"... Iltar... Toch een beetje Turks bloed? hahaha ^.^
(Niks rasistisch ofzo, onderonsje met Iltar...)
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Eén tip; gooi je http headers die in response zitten niet in een string maar in een httpHeaders-object. Beetje raar om eerst httpHeaders-object te gebruiken (request) en dan bij je response opeens een string :)
Daan
Daan
20 jaar geleden
 
0 +1 -0 -1
Inderdaad een goeie, om een object terug te sturen.. ;)
Ben ook bezig met dat van Hipska..

Edit:

Gedaan ;)
Iltar van der berg
iltar van der berg
20 jaar geleden
 
0 +1 -0 -1
Quote:
"Kwaliteit"... Iltar... Toch een beetje Turks bloed? hahaha ^.^
(Niks rasistisch ofzo, onderonsje met Iltar...)


Hahaha kan wel ;)
Kreeg wel lekker een "borsten-taart" voor mn verjaardag van een turkse vriendin :)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
Spijtig dat de class opzich niet eens werkt he.
Ik los hier de ene fout na de andere op...
En nog steeds blijft hij fouten en exceptions gooien.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. http-request-class-v2

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.