Negotiation เป็นไลบรารีแบบสแตนด์อโลนที่ไม่มีการขึ้นต่อกันใดๆ ซึ่งช่วยให้คุณสามารถใช้การเจรจาต่อรองเนื้อหาในแอปพลิเคชันของคุณได้ ไม่ว่าคุณจะใช้เฟรมเวิร์กใดก็ตาม ไลบรารีนี้อิงตาม RFC 7231 การเจรจาต่อรองใช้งานง่ายและมีการทดสอบหน่วยอย่างกว้างขวาง!
ข้อสำคัญ: คุณกำลังดูเอกสารประกอบของ Negotiation 3.x +
เอกสารประกอบสำหรับเวอร์ชัน 1.x มีอยู่ที่นี่: เอกสารการเจรจาต่อรอง 1.x
เอกสารประกอบสำหรับเวอร์ชัน 2.x มีอยู่ที่นี่: เอกสารประกอบการเจรจา 2.x
วิธีที่แนะนำในการติดตั้ง Negotiation คือผ่าน Composer:
$ composer require willdurand/negotiation $ negotiator = new Negotiation Negotiator ();
$ acceptHeader = ' text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8 ' ;
$ priorities = array ( ' text/html; charset=UTF-8 ' , ' application/json ' , ' application/xml;q=0.5 ' );
$ mediaType = $ negotiator -> getBest ( $ acceptHeader , $ priorities );
$ value = $ mediaType -> getValue ();
// $value == 'text/html; charset=UTF-8' Negotiator ส่งคืนอินสแตนซ์ของ Accept หรือ null หากการเจรจาประเภทสื่อที่ดีที่สุดล้มเหลว
<?php
$ negotiator = new Negotiation LanguageNegotiator ();
$ acceptLanguageHeader = ' en; q=0.1, fr; q=0.4, fu; q=0.9, de; q=0.2 ' ;
$ priorities = array ( ' de ' , ' fu ' , ' en ' );
$ bestLanguage = $ negotiator -> getBest ( $ acceptLanguageHeader , $ priorities );
$ type = $ bestLanguage -> getType ();
// $type == 'fu';
$ quality = $ bestLanguage -> getQuality ();
// $quality == 0.9 LanguageNegotiator ส่งคืนอินสแตนซ์ของ AcceptLanguage
<?php
$ negotiator = new Negotiation EncodingNegotiator ();
$ encoding = $ negotiator -> getBest ( $ acceptHeader , $ priorities ); EncodingNegotiator ส่งคืนอินสแตนซ์ของ AcceptEncoding
<?php
$ negotiator = new Negotiation CharsetNegotiator ();
$ acceptCharsetHeader = ' ISO-8859-1, UTF-8; q=0.9 ' ;
$ priorities = array ( ' iso-8859-1;q=0.3 ' , ' utf-8;q=0.9 ' , ' utf-16;q=1.0 ' );
$ bestCharset = $ negotiator -> getBest ( $ acceptCharsetHeader , $ priorities );
$ type = $ bestCharset -> getType ();
// $type == 'utf-8';
$ quality = $ bestCharset -> getQuality ();
// $quality == 0.81 CharsetNegotiator ส่งคืนอินสแตนซ์ของ AcceptCharset
Accept* ชั้นเรียน คลาส Accept และ Accept* มีวิธีการร่วมกันเช่น:
getValue() ส่งกลับค่าที่ยอมรับ (เช่น text/html; z=y; a=b; c=d )getNormalizedValue() ส่งกลับค่าที่มีการเรียงลำดับพารามิเตอร์ (เช่น text/html; a=b; c=d; z=y )getQuality() ส่งคืนคุณภาพหากมี (พารามิเตอร์ q )getType() ส่งคืนประเภทการยอมรับ (เช่น text/html )getParameters() ส่งคืนชุดพารามิเตอร์ (ไม่รวมพารามิเตอร์ q หากมีให้)getParameter() อนุญาตให้ดึงพารามิเตอร์ที่กำหนดตามชื่อของมัน ถอยกลับไปเป็นค่า $default (nullable) มิฉะนั้นhasParameter() ระบุว่ามีพารามิเตอร์อยู่หรือไม่ การเจรจาเป็นไปตามการกำหนดเวอร์ชันเชิงความหมาย
ณ เดือนตุลาคม 2559 ระบบไม่รองรับสาขา 1.x อีกต่อไป หมายความว่าเวอร์ชันหลัก 1 หมดอายุการใช้งานแล้ว เวอร์ชันล่าสุดคือ: 1.5.0
ณ เดือนพฤศจิกายน 2020 ระบบไม่รองรับสาขา 2.x อีกต่อไป ซึ่งหมายความว่าเวอร์ชันหลัก 2 หมดอายุการใช้งานแล้ว เวอร์ชันล่าสุดคือ: 2.3.1
dev-master ) Negotiation 3.0 เปิดตัวเมื่อวันที่ 26 พฤศจิกายน 2020 นี่เป็น เวอร์ชันเสถียรในปัจจุบัน และซิงค์กับสาขาหลัก (หรือที่เรียกว่า master )
ตั้งค่าชุดทดสอบโดยใช้ Composer:
$ composer install --dev
รันโดยใช้ PHPUnit:
$ phpunit
ดูไฟล์ที่มีส่วนร่วม
บางส่วนของห้องสมุดนี้ได้รับแรงบันดาลใจจาก:
วิลเลียม ดูแรนด์
@ประสาท-wetware
การเจรจาต่อรองได้รับการปล่อยตัวภายใต้ใบอนุญาต MIT ดูรายละเอียดในไฟล์ LICENSE ที่ให้มา