BTC: BC1Q9N0V6L3CH2PJFHLD4RJ9Y2EPH3M9WL9XPMZNLX
Es ist jetzt möglich, zwischen Seife über HTTPS oder einem TCP -Stream (Standard) für die Interaktion mit der Broadworks -API zu wählen. Grundlegende Benchmarks empfehlen 15/Anfragen/Sekunde mit SOAP und 150/Anfragen/Sekunde für TCP -Stream. UserGetRequest17SP4 wurde für den Benchmark verwendet.
Sitzungen können aus und in den Client exportiert werden. Dies wurde hinzugefügt, damit Broadworks OCI-P-Skripte, die mit Methoden wie Cronjobs ausgelöst werden, mithilfe externer Sitzungsdaten ausgeführt werden können. Porting -Sitzungen sind eine sichere Möglichkeit, Befehle als Benutzer auszuführen, der es angefordert hat, da das Kennwort nicht gespeichert wird. Cookies/SessionID werden zur Authentifizierung verwendet.
Alle Elemente des Frameworks wurden mit Blick auf die IDE -Autoperation erstellt, sodass sich die Details eines Datentyps nicht erinnern müssen. Im Folgenden ist ein Beispiel für die Deaktivierung von CallForwardingalways für alle Benutzer innerhalb einer Gruppe.
Eine interagierende CLI ist darin eingebaut, die keine Programmierkenntnisse erfordert. Der Benutzer navigiert das Schema auf die gleiche Weise wie Verzeichnisse und Dateien in einem Linux -Dateisystem. Befehle können in der CLI mit den auf den Bildschirm gedruckten Ergebnissen ausgeführt werden. Autokaponetion funktioniert - (in der letzten Veröffentlichung unterbrochen)
Die Objekte unterstützen die Serialisierung, um das Speichern von Nachrichten im Klartextformat zu ermöglichen, die nicht in Datentypen, die das Framework verstehen kann
$ composer require lukebeer/broadworks-ocip
$ composer require lukebeer/broadworks-ocip:development
<?php
require_once ' vendor/autoload.php ' ;
// Use the ComplexType required for this example.
use Broadworks_OCIP api Rel_17_sp4_1_197_OCISchemaAS OCISchemaUser UserServiceGetAssignmentListRequest ;
// Create a Client and login. CoreFactory also has getSOAPClient()
$ client = BroadworksOCIP Factory:: getTCPClient ( ' ocip.example.com ' );
$ client -> login ( ' user ' , ' pass ' );
// Generate a request, send and assign the response to $response
$ request = new UserServiceGetAssignmentListRequest ( ' [email protected] ' );
$ response = $ request -> get ( $ client );
// This response type returns a TableType object, getValue() renders a table.
echo $ response -> getServicePacksAssignmentTable ()-> getValue ();
?>
/* Spits out:
+--------------------------------------------------+----------+
| Service Name | Assigned |
+--------------------------------------------------+----------+
| Anonymous Call Rejection | true |
| Authentication | true |
| Call Forwarding Always | true |
| Call Forwarding Busy | true |
| Call Forwarding No Answer | true |
| Call Notify | false |
| Calling Line ID Delivery Blocking | true |
| CommPilot Express | true |
| CommPilot Call Manager | true |
| Do Not Disturb | true |
| Intercept User | true |
| Last Number Redial | true |
| Sequential Ring | true |
+--------------------------------------------------+----------+
*/Komplextypen wie UserGetRequest17SP4 sind Typen, die eine Mischung von Elementtypen einschließlich Komplextypen enthalten können. Stellen Sie sich sie als XML mit verschachtelten Kindern vor.
Wenn eines der zu festen Elemente ein Komplextyp ist, muss der Komplextyp erstellt werden, bevor sie in das übergeordnete Objekt festgelegt werden. Zum Beispiel ist StreetAddress ein Komplextyp:
<?php
$ address = new StreetAddress ();
$ address -> setAddressLine1 ( ' 1337 Street ' );
$ address -> setCountry ( ' England ' );
$ request = new UserAddRequest17sp4 ();
$ request -> setStreetAddress ( $ address ); Broadworks_OCIPapiRel_17_sp4_1_197_OCISchemaASOCISchemaDataTypesStreetAddress Object
(
[elementName] => StreetAddress
[addressLine1:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 80
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] => 1337 Street
[elementName:protected] => addressLine1
)
[addressLine2:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 80
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] =>
[elementName:protected] => addressLine2
)
[city:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 50
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] =>
[elementName:protected] => city
)
[stateOrProvince:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 50
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] =>
[elementName:protected] => stateOrProvince
)
[stateOrProvinceDisplayName:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 50
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] =>
[elementName:protected] => stateOrProvinceDisplayName
)
[zipOrPostalCode:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 50
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] =>
[elementName:protected] => zipOrPostalCode
)
[country:protected] => Broadworks_OCIPcoreBuilderTypesSimpleContent Object
(
[annontation:protected] =>
[attributes:protected] =>
[restrictions:protected] => Array
(
[0] => Broadworks_OCIPcoreBuilderRestrictionsMinLength Object
(
[value:protected] => 1
[detail:protected] =>
)
[1] => Broadworks_OCIPcoreBuilderRestrictionsMaxLength Object
(
[value:protected] => 50
[detail:protected] =>
)
)
[errors:protected] =>
[elementValue:protected] => Enngland
[elementName:protected] => country
)
[elements:protected] => Array
(
)
[responseType:protected] =>
[errors:protected] =>
[params:protected] => Array
(
)
[args:protected] =>
[elementValue:protected] =>
)
Tabletypen werden zum Umgang mit okable Daten verwendet. Ein einzelnes Dimensionsarray wird für Säulenüberschriften übergeben, und Daten werden unter Verwendung von Addrow oder Addrows mit einzelnen oder mehreren Dimensionsarrays eingestellt.
Es ist möglich, eine hübsche ASCII-Tabelle mit echo $table->getValue() mit den Daten zu rendern und auch mit $table->findRow('something') zu suchen
Wenn nur eine einzelne Spalte erforderlich ist, gibt Methode $table->getColumn($id) eine bestimmte Datenspalte aus allen Zeilen im Datensatz zurück. Ein Wert kann für Tasten und einen anderen für Werte verwendet werden.
<?php
$ data = $ table -> getColummn ( 0 , 3 );
$ newTable = new TableType ([ ' User Id ' , ' Phone Number ' );
$ newTable -> addRows ( $ data );
echo $ newTable -> getValue ();Rückgaben:
+------------------------+---------------+
| User Id | Phone Number |
+------------------------+---------------+
| [email protected] | 01234123456 |
| [email protected] | 01234123456 |
| [email protected] | 01234123456 |
| [email protected] | 01234123456 |
| [email protected] | 01234123456 |
| [email protected] | 01234123456 |
+------------------------+---------------+
Bitte verwenden Sie den Ausgabe -Tracker, um Fehler oder Dateifunktionsanforderungen zu melden.
PRs sind willkommen. Um sich zu entwickeln, tun Sie dies:
$ curl -X POST -u " GITHUB_USERNAME:GITHUB_PASSWORD " https://api.github.com/repos/lukebeer/broadworks-ocip/forks && history -c
$ git clone github:GITHUB_USERNAME/broadworks-ocip &&
$ cd broadworks-ocip Builder
Builder.php # Takes a ComplexType and converts to XML or XML string then wraps it in an envelope ready for shipping.
Restrictions
Enumeration.php # Defines a list of acceptable values.
Length.php # Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero.
MaxExclusive.php # Specifies the upper bounds for numeric values (the value must be less than this value).
MaxInclusive.php # Specifies the upper bounds for numeric values (the value must be less than or equal to this value).
MaxLength.php # Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero.
MinExclusive.php # Specifies the lower bounds for numeric values (the value must be greater than this value).
MinInclusive.php # Specifies the lower bounds for numeric values (the value must be greater than or equal to this value).
MinLength.php # Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero.
Pattern.php # Defines the exact sequence of characters that are acceptable.
Restriction.php # Abstract base class all restrictions must extend.
RestrictionInterface.php # Interface all Restrictins must implement.
Types
ComplexInterface.php # Interface all ComplexTypes must implement.
ComplexType.php # Defines a complex type element.
PrimitiveType.php # Primitive type such as bool/int/string.
SimpleContent.php # Contains extensions or restrictions on a text-only complex type or on a simple type as content and contains no elements.
SimpleInterface.php # Interface all SimpleTypes must implement.
SimpleType.php # Defines a simple type and specifies the constraints and information about the values of attributes or text-only elements.
TableType.php # Used for OCITable responses only, never in requests.
TypeCheck.php # Not implemented yet.
TypeMap.php # Converts xs types to PHP types.
TypeTrait.php # Common trait all types have.
Client
Client.php # Main controller for the whole framework exposing methods for requests and responses.
Transport
SOAPTransport.php # Communicates with Broadworks via http(s), this is the slowest but most robust transport type.
TCPTransport.php # Communicates with Broadworks via a TCPStream on port 2208, this is the fastest transport type.
TransportInterface.php # Interface all Transport types must implement.
Console
Console.php # Generates an array of commands for the interactive console.
Logging
ErrorControl.php # Crappy logging object, needs nuking and starting again.
Output
ConsoleOutput.php # Output type for the interactive console.
JSONOutput.php # Generates and echos JSON.
OutputInterface.php # Output interface all Outputs must implement.
Response
Response.php # Takes XML input and returns response object specified or false if error.
ResponseOutput.php # Convenience class for selecting response output format.
Serializer
SerializerInterface.php # Interface all Serializers must implement.
XMLSerializer.php # Converts XML into the requested object type automatically, very much the brain of this.
Session
Session.php # Portable Session object used to store details of the current authenticated session.