[PHP] One2xs API class

Gestart doorJenner3 reacties48 weergaven

4 berichten · pagina 1 van 1

Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo,

Ik heb gisteravond snel eventjes een PHP class in elkaar gefrutseld en deze wil ik graag met jullie delen.

Groeten,
Jan Erik

VOORBEELD:

[COLOR= #0000BB]<?php
$api[/COLOR] [COLOR= #007700]= new[/COLOR] One2xs_API[COLOR= #007700]([/COLOR][COLOR= #DD0000]jenner[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]KEY[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/print_r"]print_r[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$api[/COLOR][COLOR= #007700]->[/COLOR]call[COLOR= #007700]([/COLOR][COLOR= #DD0000]user[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]countmessages[/COLOR][COLOR= #007700]));[/COLOR] [COLOR= #FF8000]//Haalt de userinfo op en het aantal ongelezen prive berichten.[/COLOR]
[URL="http://www.php.net/print_r"]print_r[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$api[/COLOR][COLOR= #007700]->[/COLOR]callUser[COLOR= #007700]());[/COLOR] [COLOR= #FF8000]//Haalt de userinfo op.[/COLOR]
?>


CLASS:
Spoiler tonen
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
 * A One2xs class to simply create calls for the one2xs API.
 *
 * @package  One2xs
 * @version  1.0.0
 * @author   Jan Erik van Woerden <info@janerik.eu>
 * @link     http://ijanerik.nl/
 */[/COLOR]
[URL="http://www.php.net/class"]class[/URL] One2xs_API
[COLOR= #007700]{[/COLOR]
    [COLOR= #FF8000]/**
     * Default API URL
     */[/COLOR]
    const API_URL [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]http://www.one2xs.com/api/leden/handle?[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]/**
     * Saved username
     * @var string
     */[/COLOR]
    [URL="http://www.php.net/protected"]protected[/URL] [COLOR= #0000BB]$user[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]/**
     * Saved API key from the user
     * @var string
     */[/COLOR]
    [URL="http://www.php.net/protected"]protected[/URL] [COLOR= #0000BB]$key[/COLOR][COLOR= #007700];[/COLOR]

    [COLOR= #FF8000]/**
     * Shorter names of API methods
     * @var array
     */[/COLOR]
    [URL="http://www.php.net/protected"]protected[/URL] [URL="http://www.php.net/static"]static[/URL] [COLOR= #0000BB]$shorter[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
        [COLOR= #DD0000]countmessages[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]nwpriveberichtenaantal[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]newmessages[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]nwpriveberichtenuitgebreid[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]user[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]userinfo[/COLOR][COLOR= #007700],[/COLOR]
        [COLOR= #DD0000]transactions[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]transacties[/COLOR]
    [COLOR= #007700]);[/COLOR]

    [COLOR= #FF8000]/**
     * Construct the class
     * @param string $user
     * @param string $key
     */[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] __construct[COLOR= #007700]([/COLOR][COLOR= #0000BB]$user[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$key[/COLOR][COLOR= #007700])
    {[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/is_string"]is_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$user[/COLOR][COLOR= #007700]))[/COLOR]
            throw [COLOR= #007700]new[/COLOR] Exception[COLOR= #007700]([/COLOR][COLOR= #DD0000]User is not a correct string.[/COLOR][COLOR= #007700]);[/COLOR]

        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/is_string"]is_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$key[/COLOR][COLOR= #007700]))[/COLOR]
            throw [COLOR= #007700]new[/COLOR] Exception[COLOR= #007700]([/COLOR][COLOR= #DD0000]Key is not a correct string.[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]user [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$user[/COLOR][COLOR= #007700];[/COLOR]
        [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR][URL="http://www.php.net/key"]key[/URL] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$key[/COLOR][COLOR= #007700];
    }[/COLOR]

    [COLOR= #FF8000]/**
     * Call cURL and place the good arguments
     * @param  array|string $methods
     * @return stdObject
     */[/COLOR]
    [URL="http://www.php.net/protected"]protected[/URL] [COLOR= #007700]function[/COLOR] callCurl[COLOR= #007700]([/COLOR][COLOR= #0000BB]$methods[/COLOR][COLOR= #007700])
    {[/COLOR]
        [COLOR= #0000BB]$data[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
            [COLOR= #DD0000]user[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]user[COLOR= #007700],[/COLOR]
            [COLOR= #DD0000]key[/COLOR] [COLOR= #007700]=>[/COLOR] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR][URL="http://www.php.net/key"]key[/URL][COLOR= #007700]),[/COLOR]
            [COLOR= #DD0000]json[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000][/COLOR]
        [COLOR= #007700]);[/COLOR]

        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/is_array"]is_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$methods[/COLOR][COLOR= #007700]))[/COLOR]
            [COLOR= #0000BB]$methods[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$methods[/COLOR][COLOR= #007700]);[/COLOR]

        [URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$methods[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$method[/COLOR][COLOR= #007700])
        {[/COLOR]
            [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR]self[COLOR= #007700]:[/COLOR][COLOR= #007700]:[/COLOR][COLOR= #0000BB]$shorter[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]]))[/COLOR]
                [COLOR= #0000BB]$methods[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]] =[/COLOR] self[COLOR= #007700]:[/COLOR][COLOR= #007700]:[/COLOR][COLOR= #0000BB]$shorter[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]];
        }[/COLOR]

        [COLOR= #0000BB]$data[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]info[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000],[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$methods[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$url[/COLOR] [COLOR= #007700]=[/COLOR] self[COLOR= #007700]::[/COLOR]API_URL[COLOR= #007700].[/COLOR]http_build_query[COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);[/COLOR]

        [COLOR= #0000BB]$curl[/COLOR] [COLOR= #007700]=[/COLOR] curl_init[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
        curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$curl[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_RETURNTRANSFER[COLOR= #007700],[/COLOR] true[COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$content[/COLOR] [COLOR= #007700]=[/COLOR] curl_exec[COLOR= #007700]([/COLOR][COLOR= #0000BB]$curl[/COLOR][COLOR= #007700]);[/COLOR]
        [COLOR= #0000BB]$content[/COLOR] [COLOR= #007700]=[/COLOR] json_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]);[/COLOR]

        [URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$info[/COLOR][COLOR= #007700])
        {[/COLOR]
            [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/in_array"]in_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700],[/COLOR] self[COLOR= #007700]:[/COLOR][COLOR= #007700]:[/COLOR][COLOR= #0000BB]$shorter[/COLOR][COLOR= #007700]))
            {[/COLOR]
                [URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]->[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_search"]array_search[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700],[/COLOR] self[COLOR= #007700]:[/COLOR][COLOR= #007700]:[/COLOR][COLOR= #0000BB]$shorter[/COLOR][COLOR= #007700]);[/COLOR]
                [COLOR= #0000BB]$content[/COLOR][COLOR= #007700]->[/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$info[/COLOR][COLOR= #007700];
            }
        }[/COLOR]

        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR]curl_getinfo[COLOR= #007700]([/COLOR][COLOR= #0000BB]$curl[/COLOR][COLOR= #007700],[/COLOR] CURLINFO_HTTP_CODE[COLOR= #007700]) !=[/COLOR] [COLOR= #0000BB]200[/COLOR][COLOR= #007700])[/COLOR]
            throw [COLOR= #007700]new[/COLOR] Exception[COLOR= #007700]([/COLOR][COLOR= #DD0000]Website not found![/COLOR][COLOR= #007700]);[/COLOR]

        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$content[/COLOR][COLOR= #007700];
    }[/COLOR]

    [COLOR= #FF8000]/**
     * Call the callCurl method and every argument is a new API method
     * @return stdObject
     */[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] call[COLOR= #007700]()
    {[/COLOR]
        [COLOR= #0000BB]$arguments[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/func_get_args"]func_get_args[/URL][COLOR= #007700]();[/COLOR]

        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]callCurl[COLOR= #007700]([/COLOR][COLOR= #0000BB]$arguments[/COLOR][COLOR= #007700]);
    }[/COLOR]

    [COLOR= #FF8000]/**
     * Shortcut for a single API method
     * @param  string $method
     * @param  array $arguments
     * @return stdObject
     */[/COLOR]
    [URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] __call[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$arguments[/COLOR][COLOR= #007700])
    {[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) ==[/COLOR] [COLOR= #DD0000]call[/COLOR][COLOR= #007700])
        {[/COLOR]
            [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]call[COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtolower"]strtolower[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));
        }
    }
}[/COLOR]
?>
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nice, hou van je classes biggrin
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Thanks smile Moeten wel eens wat dingetjes voor de leuk gemaakt worden smile
0
Jvdw

Lid

Berichten
4.321
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Handig hoorbiggrin Bedanktthumbsup
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren