สารบัญ
นี่คือไคลเอนต์ PHP สำหรับ https://nchan.io
composer require marein/php-nchan-client
หากคุณต้องการใช้อะแดปเตอร์ PSR-18 ให้ติดตั้งไลบรารีที่ใช้ไคลเอนต์ PSR-18 http (ดูที่นี่) และไลบรารีที่ใช้โรงงาน PSR-17 http (ดูที่นี่)
หากคุณต้องการใช้ไคลเอนต์ http ในตัว (ค่าเริ่มต้นหากคุณไม่ได้ตั้งค่าอะไรเลย) ให้เปิดใช้งานการกำหนดค่า php Allow_url_fopen
ตัวอย่างโค้ดต่อไปนี้ใช้ไคลเอ็นต์ http ในตัว
<?php
namespace {
use Marein Nchan Api Model PlainTextMessage ;
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
$ nchan = new Nchan ( ' http://my-nchan-domain ' );
$ channel = $ nchan -> channel ( ' /path-to-publisher-endpoint ' );
$ channelInformation = $ channel -> publish (
new PlainTextMessage (
' my-message-name ' ,
' my message content '
)
);
// Nchan returns some channel information after publishing a message.
var_dump ( $ channelInformation );
}
<?php
namespace {
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
$ nchan = new Nchan ( ' http://my-nchan-domain ' );
$ channel = $ nchan -> channel ( ' /path-to-publisher-endpoint ' );
$ channelInformation = $ channel -> information ();
var_dump ( $ channelInformation );
}
<?php
namespace {
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
$ nchan = new Nchan ( ' http://my-nchan-domain ' );
$ channel = $ nchan -> channel ( ' /path-to-publisher-endpoint ' );
$ channel -> delete ();
}
จุดสิ้นสุดที่มีคำสั่ง nchan_stub_status
สามารถสอบถามได้ดังต่อไปนี้
<?php
namespace {
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
$ nchan = new Nchan ( ' http://my-nchan-domain ' );
$ status = $ nchan -> status ( ' /path-to-status-location ' );
$ statusInformation = $ status -> information ();
var_dump ( $ statusInformation );
}
ตำแหน่งข้อมูลที่มีคำสั่ง nchan_authorize_request
จะต้องได้รับอนุญาต ตัวสร้างของไคลเอนต์ http ในตัวรับการใช้งานประเภทหนังสือรับรอง ไลบรารีนี้มาพร้อมกับการใช้งานในตัว 2 รายการ ได้แก่ BasicAuthenticationCredentials และ BearerAuthenticationCredentials
<?php
namespace {
use Marein Nchan HttpAdapter BasicAuthenticationCredentials ;
use Marein Nchan HttpAdapter BearerAuthenticationCredentials ;
use Marein Nchan HttpAdapter HttpStreamWrapperClient ;
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
// Client with basic authentication
$ adapter = new HttpStreamWrapperClient (
new BasicAuthenticationCredentials ( ' nchan ' , ' password ' )
);
// Client with bearer authentication
$ adapter = new HttpStreamWrapperClient (
new BearerAuthenticationCredentials ( ' my-token ' )
);
$ nchan = new Nchan ( ' http://my-nchan-domain ' , $ adapter );
}
หากคุณใช้ไคลเอนต์ http อื่นผ่านอะแดปเตอร์ PSR-18 ไคลเอนต์ http ที่เกี่ยวข้องจะมีจุดส่วนขยายของตัวเองเพื่อแก้ไขคำขอก่อนที่จะส่ง
ไลบรารีนี้มาพร้อมกับอะแดปเตอร์ที่รองรับ PSR-18 มีเหตุผลที่ดีที่จะไม่ใช้ไคลเอ็นต์ที่มีอยู่แล้วภายใน ขึ้นอยู่กับ wrapper สตรีม http และ file_get_contents
นี่เป็นการปิดการเชื่อมต่อ TCP หลังจากการร้องขอแต่ละครั้ง ไคลเอนต์อื่น ๆ สามารถดูด้านล่างสามารถเปิดการเชื่อมต่อได้
ตัวอย่างต่อไปนี้ใช้ guzzlehttp/guzzle และ guzzlehttp/psr7
<?php
namespace {
use GuzzleHttp Client ;
use GuzzleHttp Psr7 HttpFactory ;
use Marein Nchan HttpAdapter Psr18ClientAdapter ;
use Marein Nchan Nchan ;
include ' /path/to/autoload.php ' ;
$ nchan = new Nchan (
' http://my-nchan-domain ' ,
new Psr18ClientAdapter (
new Client (),
new HttpFactory (),
new HttpFactory ()
)
);
}
ตัวอย่างโค้ดต่อไปนี้ใช้ symfony/http-client และ nyholm/psr7
<?php
namespace {
use Marein Nchan HttpAdapter Psr18ClientAdapter ;
use Marein Nchan Nchan ;
use Nyholm Psr7 Factory Psr17Factory ;
use Symfony Component HttpClient HttpClient ;
use Symfony Component HttpClient Psr18Client ;
include ' /path/to/autoload.php ' ;
// Symfony itself needs an adapter to be PSR-18 compliant.
$ httpClient = new Psr18Client (
HttpClient:: create (),
new Psr17Factory (),
new Psr17Factory ()
);
$ nchan = new Nchan (
' http://my-nchan-domain ' ,
new Psr18ClientAdapter (
$ httpClient ,
$ httpClient ,
$ httpClient
)
);
}