定制 kajna/purli 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kajna/purli

最新稳定版本:1.0.0

Composer 安装命令:

composer require kajna/purli

包简介

Lightweight library with Object-Oriented interface for sending HTTP requests

README 文档

README

DUB Version

Purli (PHP Url Interface) is the lightweight library with the object-oriented interface for sending HTTP requests.

Installing

This package is available via Composer:

{
  "require": {
    "kajna/purli": "dev-master"
  }
}

Usage examples

Fetching data using GET method and CURL handler

Minimal example, Purli by default uses CURL handler if available otherwise fallback to the socket.

try {
    $purli = (new \Purli\Purli())
        ->get('http://www.example.com')
        ->close();

    $response = $purli->response();

    echo $response->asText();
} catch(\Exception $e) {
    echo $e->getMessage();
}

Fetching data using GET method and socket handler

If explicitly set Purli will use PHP sockets to make requests regardless if CURL is installed or not

try {
    $purli = (new \Purli\Purli(\Purli\Purli::SOCKET))
            ->get('http://example.com')
            ->close();
    
    $response = $purli->response();
    
    echo $response->asText();
} catch(\Exception $e) {
	echo $e->getMessage();
}

Fetching data using POST method

try {
    $data = array('foo' => 'bar');

    $purli = (new \Purli\Purli())
        ->setParams($data)
        ->post('http://www.example.com')
        ->close();

    $response = $purli->response();

    print_r($response->asText());
} catch(\Exception $e) {
    echo $e->getMessage();
}

Sending and receiving XML data using POST method

try {
    $data = '<root><foo>bar</foo></root>';

    $purli = (new \Purli\Purli())
        ->setUserAgent('curl 7.16.1 (i386-portbld-freebsd6.2) libcurl/7.16.1 OpenSSL/0.9.7m zlib/1.2.3')
        ->setHeader('Content-Type', 'text/xml')
        ->setParams($data)
        ->post('http://www.example.com')
        ->close();

    $response = $purli->response();

    print_r($response->asArray());
} catch(\Exception $e) {
    echo $e->getMessage();
}

Sending and receiving JSON data using PUT method

try {
    $data = array('foo' => 'bar');
    $json = json_encode($data);
    
    $purli = (new \Purli\Purli(\Purli\Purli::SOCKET))
            ->setConnectionTimeout(3)
            ->setHeader('Content-Type', 'application/json')
            ->setParams($json)
            ->put('http://www.example.com')
            ->close();
    
    $response = $purli->response();
    
    print_r($response->asObject());
} catch(\Exception $e) {
	echo $e->getMessage();
}

Using proxy server to make request

try {
    $purli = (new \Purli\Purli());
    
    $purli
        ->setProxy(PROXY_ADDRESS, PROXY_PORT)
        ->get('http://www.example.com')
        ->close();

    $response = $purli->response();

    echo $response->asText();
} catch(\Exception $e) {
    echo $e->getMessage();
}

Setting custom CURL option

If CURL extension is installed by default Purli will use it, you can always get CURL handler object and set custom option if more flexibility is needed

try {
    $purli = (new \Purli\Purli());
    
    if ($purli->getHandlerType() === \Purli\Purli::CURL) {
        curl_setopt($purli->getHandler(), CURLOPT_TIMEOUT, 10);
    }
    
    $purli
        ->get('http://www.example.com')
        ->close();

    $response = $purli->response();

    echo $response->asText();
} catch(\Exception $e) {
    echo $e->getMessage();
}

Running tests

Purli uses PHPUnit for testing, navigate to project root directory and run command:

cd tests
phpunit

Author

Milos Kajnaco milos@caenazzo.com

Contributors

Nemanja Nikolic nemanja@massvision.net

Licence

Purli is released under the MIT public license.

统计信息

  • 总下载量: 5.02k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-09-25