Dependency Injection Container Documentation

Size: px
Start display at page:

Download "Dependency Injection Container Documentation"

Transcription

1 Dependency Injection Container Documentation Release v1.0.0 Filipe Silva Dec 08, 2017

2

3 Contents 1 Getting started Introduction Basic usage Installation Definitions What s a definition? Value definition Factory definition Alias definition Object definition Container usage Building a container Constructor injection Constructor auto-injection Factory method API reference Container class Container Injection interface ObjectDefinition class Contributing Pull requests Running tests Security License 19 PHP Namespace Index 21 i

4 ii

5 slick/di is an easy dependency injection container for PHP It aims to be very lightweight and tries to remove a lot of the guessing and magic stuff that dependency containers use those days. It also allows you to nest containers witch can become very useful if you have several packages that you reuse in your applications, allowing you to define containers with default dependencies in those packages for later override and usage them in your application. There are a lot of implementations of a dependency injection container out there and some of them are really good. Some examples are the Symfony Dependency Injection Component, Zend 2 Dependency Injection, The PHP league container, or PHP-DI just to name a few. This implementation is a result of what we thought it was the best to have in a dependency injection container. Contents 1

6 2 Contents

7 CHAPTER 1 Getting started Introduction Dependency injection is a concept that has been talked about all over the web. You probably have done it without knowing that is called dependency injection. Simply put the next line of code can describe what it is: $volvo = new Car(new Engine()); Above, Engine is a dependency of Car, and Engine was injected into Car. If you are not familiar with Dependency Injection please read this Fabien Pontencier s great series about Dependency injection. Dependency injection and dependency injection containers are tow different things. Dependency injection is a design pattern that implements inversion of control for resolving dependencies. On the other hand Dependency Injection Container is a tool that will help you create, reuse and inject dependencies. A dependency container can also be used to store object instances that you create and values that you may need to use repeatedly. A good example of this are configuration settings. Basic usage To create a dependency container we need to create at least a services.php file with all our dependency definitions: use Slick\Configuration\Configuration: use Slick\Di\Definition\ObjectDefinition; /** * Dependency injection object definition example */ return [ 'config' => function() { return Configuration::get('config'); }, 'engineservice' => ObjectDefinition::create(Engine::class) 3

8 ]; ->call('setmode')->with('simple') Now to build the dependency container we need to use the ContainerBuilder factory class like this: use Slick\Di\ContainerBuilder; $definitionsfile = DIR. '/services.php'; $container = (new ContainerBuilder($definitionsFile))->getContainer(); With that, we are ready to create and inject dependencies with our container: class Car { /** EngineInterface */ protected $engine; } public function construct(engineinterface $engine) { $this->engine = $engine; } $mycar = $container->make(car::class); Installation slick/di is a php 5.6+ library that you ll have in your project development environment. Before you begin, ensure that you have PHP 5.6 or higher installed. You can install slick/di with all its dependencies through Composer. Follow instructions on the composer website if you don t have it installed yet. You can use this Composer command to install slick/di: $ composer require slick/di 4 Chapter 1. Getting started

9 CHAPTER 2 Definitions What s a definition? Definitions are entries in an array that instruct the container on how to create the correspondent object instance or value. Attention: Every container MUST have a definition list (associative array) in order to be created and you SHOULD always use the Slick\Di\ContainerBuilder to create your container. Lets create our dependencies.php file that will contain our dependencies definitions: /** * Dependency injection definitions file */ $services['timezone'] = 'UTC'; $services['config'] = function() { return Configuration::get('config'); }; return $services; Note: Why use PHP arrays? This question has a very simple answer. If you use other markup/style to create the container definitions file, for example.ini or.yml you will need to parse those settings and then apply them. If you use PHP arrays there is no need to parse it and the code can be directly executed, enhancing performance. 5

10 Value definition A value or scalar definition is used as is. The following example is a value definition: /** * Dependency injection value definition example */ $services['timezone'] = 'UTC'; return $services; Value definitions are good to store application wide constants. Factory definition With factory definition we can compute and/or control the object or value creation: /** * Dependency injection callable definition example */ $services['general.config'] = function() { return Configuration::get('config'); } return $services; It is possible to have the container instance available in the closure by defining an input argument. See the following example: /** * Dependency injection callable definition example */ $services['general.config'] = function(containerinterface $container) { $foo = $container->get('foo'); return Configuration::get('config')->get('bar', $foo); } return $services; Alias definition Alias definition is a shortcut for another defined entry: /** * Dependency injection alias definition example */ $services['config'] = '@general.config'; return $services; The alias points to an entry key and is always prefixed with 6 Chapter 2. Definitions

11 Object definition Objects are what makes dependency containers very handy, and fun! Lets have a look at an object definition inside our dependencies.php file: namespace Services; use Services\SearchService; use Slick\Configuration\Configuration: use Slick\Di\Definition\ObjectDefinition; /** * Dependency injection object definition example */ $services['sitename'] => 'Example site'; $services['config'] => function() { return Configuration::get('config'); }; // Object definition $services['search.service'] = ObjectDefinition::create(SearchService::class) ->with('@config') ->call('setmode')->with('simple') ->call('setsitename')->with('@sitename') ->assign(20)->to('rowsperpage') ; return $services; Defining how an object is instantiated is the most important feature of a dependency container. 'search.service' is an object definition on how to instantiate a SearchService. It uses a fluent api that can easily describe the necessary steps to create a service or object. Tip: If you want to reference the container itself you can use tag in the object definition file. Please check the ObjectDefinition API for a better understanding of all methods on ObjectDefinition definition Object definition 7

12 8 Chapter 2. Definitions

13 CHAPTER 3 Container usage Now that we have defined all of our dependencies its time to create a container that will use them. Building a container Even though Container can be instantiated as normal PHP objects do, it is advisable to use the ContainerBuilder factory to do so. It translates the definitions file(s) into DefinitionInterface objects that dependency container uses to resolve its dependencies. It also chains all the created container so that if you try to get an entry it will search over all containers in the chain. This is a very handy feature if you want, for example, to create a package that you will reuse in your applications and in that package you define a container with default dependencies and later on your application also defines a dependency container. Definitions can be overridden and the entries from your package are also available in your application container. Now lets create our container: use Slick\Di\ContainerBuilder; $container = (new ContainerBuilder( DIR. '/dependencies.php'))->getcontainer(); That s it! We now have a new created dependency container ready to create objects and inject their dependencies. Constructor injection Constructor dependency injection is considered the way we should do dependency injection and it is just passing the dependencies as arguments in the constructor. With this you do not need to created setters and your object is ready to be used right away. You can also test it in isolation by passing mocks of those dependencies. Consider the following class: class Car { 9

14 /** EngineInterface */ private $engine; } public function construct(engineinterface $engine) { $this->engine = $engine; } This is a basic class. The car needs an engine to work, right!? Tip: In constructor dependency injection and in dependency injection in general, it is a good practice to type hint your arguments. This practice guarantees that the arguments are from that given type and PHP s core will trigger a fatal error if they are not. Now that we have a container with all its dependency definitions lets create the car using and engine that is store in the container under the diesel.engine name: $dieselcar = $container->make(car::class, '@diesel.engine'); This line of code is instructing the container that it should instantiate a Car object and it will inject the dependency that was stored under the diesel.engine name in its constructor. Take a look at Container class reference page for more information on Container::make() method. Constructor auto-injection It is also possible to have dependencies injected on objects created by Container::make() only by type hinting the parameters in the constructor: public function construct(engineinterface $engine) $dieselcar = $container->make(car::class);... // As construct(engineinterface $engine) is type hinted the container will look // for '@EngineInterface::class' definition and inject it. You can mix the arguments sent on Container::make() second parameter with constructor auto-injection. In this case the arguments used in this late array will override the ones container has figure out. Important: Since v2.3.0 this is the behavior of Container::make() method and an exception will be thrown whenever a parameter hint results in a missing definition, otherwise why should you create object with the dependency container? Factory method one other possibility to create classes that the container can instantiate is by implementing the ContainerInjectionInterface interface. This is a simple interface that forces the creation of the 10 Chapter 3. Container usage

15 object trough a factory method. Take a look at the Car class with dependency injection implementation: use Slick\Di\ContainerInjectionInterface; use slick\di\containerinterface; class Car implements ContainerInjectionInterface { /** EngineInterface */ private $engine; public function construct(engineinterface $engine) { $this->engine = $engine; } /** * Creates a diesel car * ContainerInterface $container Car */ public static function create(containerinterface $container) { $car = new Car($container->get('diesel.engine')); return $car; } } Creating the car: $dieselcar = $container->make(car::class); The container will call the ContainerInjectionInterface::create() method passing itself as argument. Note that the responsibility for object creation is on the class itself. Form more information check the Container Injection Interface reference page Factory method 11

16 12 Chapter 3. Container usage

17 CHAPTER 4 API reference Container class class Slick\Di\Container Container is where your dependencies live. It holds a list of DefinitionInterface objects that can be resolved into objects or values. Slick\Di\Container::get($id) Finds an entry of the container by its identifier and returns it. $id (string) Identifier of the entry to look for. Throws NotFoundException No entry was found for this identifier. Returns An object or value that was stored or has its definition under the provided $id identifier. Slick\Di\Container::has($id) Returns true if the container can return an entry for the given identifier $id (string) Identifier of the entry to look for. Returns True if container can return an entry or false otherwise. Slick\Di\Container::register($name, $definition[, $scope, $params]) Adds a definition or a value to the container with the $name as identifier. $name (string) Identifier where the entry will be stored in. $definition (mixed) The definition or value to store. $scope (string Scope) The resolution scope. Please see Definitions page for details. Defaults to Scope::SINGLETON. 13

18 $params (array) An array of arguments to pass to callable (Factory) definitions. Defaults to an empty array. Returns Container itself. Useful for chaining more container calls. Tip: $definition can be any value and the container will evaluate it in order to determine what strategy it will use to resolve it latter on. The possibilities are: scalar objects: scalar values or objects are store as Value this is an Alias definition that will point to the definition stored under the identifier name; callable: a callable is stored as Factory definition. It will be executed when Container::get() is called for the first time and the result value will be returned in the subsequent calls. $params will be passed when executing the callable; Slick\Di\DefinitionInterface: Definition interface handle the entry resolution. In this case the container will return the resolved value of the definition. Slick\Di\Container::make($className[,...$arguments]) Creates an instance of provided class injecting its dependencies. $classname (string) The class name that the container will use to create the object. $arguments (array) An optional list of arguments to pass to the constructor. Returns An object from the type passed in the $classname argument. Tip: If you create a class that implements the Slick\Di\ContainerInjectionInterface all the $arguments that you may pass to this method will be ignored as the container will call the create() method and pass himself as an argument to that method. Please see ContainerInjectionInterface reference Container Injection interface interface Slick\Di\ContainerInjectionInterface This is an easy way of creating a class that the dependency container will know how to instantiate. It has a single method and it enforces the constructor dependency injection pattern. static create($container) Instantiates a new instance of this class. $container (Interop\Container\ContainerInterface) The service container this instance should use. Returns A new instance of this class. Tip: This is a factory method that returns a new instance of this class. The factory should pass any needed dependencies into the constructor of this class, but not the container itself. Every call to this method must return a new instance of this class; that is, it may not implement a singleton. 14 Chapter 4. API reference

19 ObjectDefinition class class Slick\Di\Definition\ObjectDefinition An object instantiation definition that wraps the necessary steps so that a dependency container can instantiate a given class. construct($classname) Creates a definition for provided class name. $classname (string) The class name that will be instantiated. static create($classname) Factory method to create an object definition. $classname (string) The class name that will be instantiated. Returns ObjectDefinition definition object with(...$arguments) Set the arguments for the last defined method call. constructor argument list $arguments (array) Arguments passed to object constructor Returns The object definition itself. Useful for other method calls. withconstructorargument(...$arguments) Set the arguments used to create the object. $arguments (array) Arguments passed to object constructor. Returns The object definition itself. Useful for other method calls. call($methodname) Define a method call in the freshly created object. $methodname (string) The method name to call. Returns The object definition itself. Useful for other method calls. assign($value) Set the value that will be assigned to a property. $value (mixed) The value to be assigned. Returns The object definition itself. Useful for other method calls. If no method call was defined yet it will set the to($propertyname) Assign the last defined value to the provided property. The value will be reset after its assigned. $property (string) The property name where last value will be assigned. Returns The object definition itself. Useful for other method calls ObjectDefinition class 15

20 callmethod($methodname,...$arguments) Define a method call to the method with provided name. $methodname (string) The method name to call. $arguments (array) The list of arguments to use when calling the method. Throws Slick\Exception\MethodNotFoundException if called method does not exists. Returns The object definition itself. Useful for other method calls. assignproperty($name, $value) Assigns a value to the property with provided name. $name (string) The property name. $value (mixed) The value to assign to the property. Returns The object definition itself. Useful for other method calls. resolve() Resolves the definition into an object. Returns The object as described in the definition 16 Chapter 4. API reference

21 CHAPTER 5 Contributing Contributions are welcome and will be fully credited. We accept contributions via Pull Requests on Github. Pull requests PSR-2 Coding Standard - The easiest way to apply the conventions is to install PHP Code Sniffer. Add tests! - Your patch won t be accepted if it doesn t have tests. Document any change in behaviour - Make sure the README.md and any other relevant documentation are kept up-to-date. Consider our release cycle - We try to follow SemVer v Randomly breaking public APIs is not an option. Create feature branches - Don t ask us to pull from your master branch. One pull request per feature - If you want to do more than one thing, send multiple pull requests. Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting. Running tests We use Behat to describe features and and for acceptance tests and PHPUnit for integration and unit testing. # unit tests $ vendor/bin/phpspec run # acceptance tests $ vendor/bin/behat 17

22 Security If you discover any security related issues, please instead of using the issue tracker. 18 Chapter 5. Contributing

23 CHAPTER 6 License Licensed using the MIT license. Copyright (c) The Slick Team < Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software ), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARIS- ING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19

24 20 Chapter 6. License

25 PHP Namespace Index s Slick\Di, 14 Slick\Di\Definition, 15 21

26 Index Symbols construct() (Slick\Di\Definition\ObjectDefinition method), 15 A assign() (Slick\Di\Definition\ObjectDefinition method), 15 assignproperty() (Slick\Di\Definition\ObjectDefinition method), 16 C call() (Slick\Di\Definition\ObjectDefinition method), 15 callmethod() (Slick\Di\Definition\ObjectDefinition method), 15 Container (class in Slick\Di), 13 ContainerInjectionInterface (interface in Slick\Di), 14 create() (Slick\Di\ContainerInjectionInterface method), 14 create() (Slick\Di\Definition\ObjectDefinition method), 15 G get() (Slick\Di\Container method), 13 H has() (Slick\Di\Container method), 13 M make() (Slick\Di\Container method), 14 O ObjectDefinition (class in Slick\Di\Definition), 15 R register() (Slick\Di\Container method), 13 resolve() (Slick\Di\Definition\ObjectDefinition method), 16 S Slick\Di (namespace), 13, 14 Slick\Di\Definition (namespace), 15 T to() (Slick\Di\Definition\ObjectDefinition method), 15 W with() (Slick\Di\Definition\ObjectDefinition method), 15 withconstructorargument() (Slick\Di\Definition\ObjectDefinition method), 15 22

git-pr Release dev2+ng5b0396a

git-pr Release dev2+ng5b0396a git-pr Release 0.2.1.dev2+ng5b0396a Mar 20, 2017 Contents 1 Table Of Contents 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

CuteFlow-V4 Documentation

CuteFlow-V4 Documentation CuteFlow-V4 Documentation Release 4.0.0 Timo Haberkern Nov 15, 2017 Contents 1 Contributing 3 1.1 Contributing Code............................................ 3 1.2 Contributing Documentation.......................................

More information

aiounittest Documentation

aiounittest Documentation aiounittest Documentation Release 1.1.0 Krzysztof Warunek Sep 23, 2017 Contents 1 What? Why? Next? 1 1.1 What?................................................... 1 1.2 Why?...................................................

More information

Instagram PHP Documentation

Instagram PHP Documentation Instagram PHP Documentation Release 0.1.0 Marvin Osswald Feb 12, 2018 Contents 1 Overview 3 1.1 Requirements............................................... 3 1.2 Installation................................................

More information

Sensor-fusion Demo Documentation

Sensor-fusion Demo Documentation Sensor-fusion Demo Documentation Release 1.2 Alexander Pacha Aug 13, 2018 Contents: 1 Euler Angles 3 2 Installation 5 3 Contribute 7 4 License 9 i ii Sensor-fusion Demo Documentation, Release 1.2 This

More information

delegator Documentation

delegator Documentation delegator Documentation Release 1.0.1 Daniel Knell August 25, 2014 Contents 1 Getting Started 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

Firebase PHP SDK. Release

Firebase PHP SDK. Release Firebase PHP SDK Release Jul 16, 2016 Contents 1 User Guide 3 1.1 Overview................................................. 3 1.2 Authentication.............................................. 3 1.3 Retrieving

More information

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1. License The MIT License (MIT) Copyright (c) 2018 gamedna Ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),

More information

Elegans Documentation

Elegans Documentation Elegans Documentation Release 0.1.0 Naoki Nishida April 29, 2014 Contents i ii CHAPTER 1 Description Elegans is a 3D plotting library written in JavaScript. With Elegans, you can generate charts in JavaScript,

More information

PHP-FCM Documentation

PHP-FCM Documentation PHP-FCM Documentation Release 0.0.1 Edwin Hoksberg Apr 09, 2018 Contents 1 Overview 3 1.1 Requirements............................................... 3 1.2 Running the tests.............................................

More information

Feed Cache for Umbraco Version 2.0

Feed Cache for Umbraco Version 2.0 Feed Cache for Umbraco Version 2.0 Copyright 2010, Ferguson Moriyama Limited. All rights reserved Feed Cache for Umbraco 2.0 Page 1 Introduction... 3 Prerequisites... 3 Requirements... 3 Downloading...

More information

X Generic Event Extension. Peter Hutterer

X Generic Event Extension. Peter Hutterer X Generic Event Extension Peter Hutterer X Generic Event Extension Peter Hutterer X Version 11, Release 7.7 Version 1.0 Copyright 2007 Peter Hutterer Permission is hereby granted, free of charge, to any

More information

dublincore Documentation

dublincore Documentation dublincore Documentation Release 0.1.1 CERN Mar 25, 2018 Contents 1 User s Guide 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

Imagination Documentation

Imagination Documentation Imagination Documentation Release 1.5 Juti Noppornpitak July 01, 2013 CONTENTS i ii Copyright Juti Noppornpitak Author Juti Noppornpitak License MIT Imagination

More information

agate-sql Documentation

agate-sql Documentation agate-sql Documentation Release 0.5.3 (beta) Christopher Groskopf Aug 10, 2017 Contents 1 Install 3 2 Usage 5 3 API 7 3.1 Authors.................................................. 8 3.2 Changelog................................................

More information

XStatic Documentation

XStatic Documentation XStatic Documentation Release 1.0.1 Thomas Waldmann Sep 18, 2018 Contents 1 What is XStatic 1 1.1 The Idea................................................. 1 1.2 Pros....................................................

More information

inflection Documentation

inflection Documentation inflection Documentation Release 0.3.1 Janne Vanhala Oct 29, 2018 Contents 1 Installation 3 2 Contributing 5 3 API Documentation 7 4 Changelog 11 4.1 0.3.1 (May 3, 2015)...........................................

More information

Statsd Metrics Documentation

Statsd Metrics Documentation Statsd Metrics Documentation Release 1.0.0 Farzad Ghanei Aug 05, 2018 Contents 1 Metrics 3 1.1 metrics Metric classes and helper functions............................ 4 2 Client 7 2.1 client Statsd client.........................................

More information

PyCon APAC 2014 Documentation

PyCon APAC 2014 Documentation PyCon APAC 2014 Documentation Release 2014-01-12 Keith Yang July 06, 2014 Contents 1 PyCon APAC 2014 3 1.1 Getting Started.............................................. 3 1.2 Setting up the database..........................................

More information

utidylib Documentation Release 0.4

utidylib Documentation Release 0.4 utidylib Documentation Release 0.4 Michal Čihař Nov 01, 2018 Contents 1 Installing 3 2 Contributing 5 3 Running testsuite 7 4 Building documentation 9 5 License 11 6 Changes 13 6.1 0.5....................................................

More information

Tailor Documentation. Release 0.1. Derek Stegelman, Garrett Pennington, and Jon Faustman

Tailor Documentation. Release 0.1. Derek Stegelman, Garrett Pennington, and Jon Faustman Tailor Documentation Release 0.1 Derek Stegelman, Garrett Pennington, and Jon Faustman August 15, 2012 CONTENTS 1 Quick Start 3 1.1 Requirements............................................... 3 1.2 Installation................................................

More information

josync Documentation Release 1.0 Joel Goop and Jonas Einarsson

josync Documentation Release 1.0 Joel Goop and Jonas Einarsson josync Documentation Release 1.0 Joel Goop and Jonas Einarsson May 10, 2014 Contents 1 Contents 3 1.1 Getting started.............................................. 3 1.2 Jobs....................................................

More information

pydocstyle Documentation

pydocstyle Documentation pydocstyle Documentation Release 1.0.0 Amir Rachum Oct 14, 2018 Contents 1 Quick Start 3 1.1 Usage................................................... 3 1.2 Error Codes................................................

More information

Magento Technical Guidelines

Magento Technical Guidelines Magento Technical Guidelines Eugene Shakhsuvarov, Software Engineer @ Magento 2018 Magento, Inc. Page 1 Magento 2 Technical Guidelines Document which describes the desired technical state of Magento 2

More information

XEP-0099: IQ Query Action Protocol

XEP-0099: IQ Query Action Protocol XEP-0099: IQ Query Action Protocol Iain Shigeoka mailto:iain@jivesoftware.com xmpp:smirk@jabber.com 2018-11-03 Version 0.1.1 Status Type Short Name Deferred Standards Track Not yet assigned Standardizes

More information

Java Relying Party API v1.0 Programmer s Guide

Java Relying Party API v1.0 Programmer s Guide Java Relying Party API v1.0 Programmer s Guide 4 June 2018 Authors: Peter Höbel peter.hoebel@open-xchange.com Vittorio Bertola vittorio.bertola@open-xchange.com This document is copyrighted by the ID4me

More information

TWO-FACTOR AUTHENTICATION Version 1.1.0

TWO-FACTOR AUTHENTICATION Version 1.1.0 TWO-FACTOR AUTHENTICATION Version 1.1.0 User Guide for Magento 1.9 Table of Contents 1..................... The MIT License 2.................... About JetRails 2FA 4................. Installing JetRails

More information

XEP-0087: Stream Initiation

XEP-0087: Stream Initiation XEP-0087: Stream Initiation Thomas Muldowney mailto:temas@jabber.org xmpp:temas@jabber.org 2003-05-22 Version 0.1 Status Type Short Name Retracted Standards Track si A common method to initiate a stream

More information

MCAFEE THREAT INTELLIGENCE EXCHANGE RESILIENT THREAT SERVICE INTEGRATION GUIDE V1.0

MCAFEE THREAT INTELLIGENCE EXCHANGE RESILIENT THREAT SERVICE INTEGRATION GUIDE V1.0 MCAFEE THREAT INTELLIGENCE EXCHANGE RESILIENT THREAT SERVICE INTEGRATION GUIDE V1.0 Copyright IBM Corporation 2018 Permission is hereby granted, free of charge, to any person obtaining a copy of this software

More information

Open Source Used In Cisco Configuration Professional for Catalyst 1.0

Open Source Used In Cisco Configuration Professional for Catalyst 1.0 Open Source Used In Cisco Configuration Professional for Catalyst 1.0 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on

More information

Daedalus Documentation

Daedalus Documentation Daedalus Documentation Release 0.1.0 Joshua Estes Sep 27, 2017 Contents 1 Installation 3 1.1 With Composer.............................................. 3 1.2 Global Install with Composer......................................

More information

Testworks User Guide. Release 1.0. Dylan Hackers

Testworks User Guide. Release 1.0. Dylan Hackers Testworks User Guide Release 1.0 Dylan Hackers April 10, 2019 CONTENTS 1 Testworks Usage 1 1.1 Quick Start................................................ 1 1.2 Defining Tests..............................................

More information

Asthma Eliminator MicroMedic Competition Entry

Asthma Eliminator MicroMedic Competition Entry Asthma Eliminator 2013 MicroMedic Competition Entry Overview: Our project helps people with asthma to avoid having asthma attacks. It does this by monitoring breath pressure and alerting the user if the

More information

Imagination Documentation

Imagination Documentation Imagination Documentation Release 1.9 Juti Noppornpitak August 26, 2016 Contents 1 How to Install 3 2 Architecture 5 3 Release Notes 7 4 MIT License 9 5 Reference 11 5.1 Getting Started..............................................

More information

mp3fm Documentation Release Akshit Agarwal

mp3fm Documentation Release Akshit Agarwal mp3fm Documentation Release 1.0.1 Akshit Agarwal July 27, 2013 CONTENTS 1 Introduction to MP3fm 3 1.1 Features.................................................. 3 2 Libraries Used and Install 5 2.1 Libraries

More information

disspcap Documentation

disspcap Documentation disspcap Documentation Release 0.0.1 Daniel Uhricek Dec 12, 2018 Installation 1 Requirements 3 1.1 Build depedencies............................................ 3 1.2 Python depedencies...........................................

More information

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework Consent Manager Provider JS API v1.0 Table of Contents Introduction... 2 About the Transparency & Consent Framework... 2 About the Transparency & Consent Standard... 3

More information

mqtt-broker Documentation

mqtt-broker Documentation mqtt-broker Documentation Release 1 Tegris April 09, 2016 Contents 1 Table of Contents 3 1.1 Getting Started.............................................. 4 1.2 Frontend Console.............................................

More information

Spotter Documentation Version 0.5, Released 4/12/2010

Spotter Documentation Version 0.5, Released 4/12/2010 Spotter Documentation Version 0.5, Released 4/12/2010 Purpose Spotter is a program for delineating an association signal from a genome wide association study using features such as recombination rates,

More information

retask Documentation Release 1.0 Kushal Das

retask Documentation Release 1.0 Kushal Das retask Documentation Release 1.0 Kushal Das February 12, 2016 Contents 1 Dependencies 3 2 Testimonial(s) 5 3 User Guide 7 3.1 Introduction............................................... 7 3.2 Setting

More information

deepatari Documentation

deepatari Documentation deepatari Documentation Release Ruben Glatt July 29, 2016 Contents 1 Help 3 1.1 Installation guide............................................. 3 2 API reference 5 2.1 Experiment Classes........................................

More information

SopaJS JavaScript library package

SopaJS JavaScript library package SopaJS JavaScript library package https://staff.aist.go.jp/ashihara-k/sopajs.html AIST August 31, 2016 1 Introduction SopaJS is a JavaScript library package for reproducing panoramic sounds on the Web

More information

Industries Package. TARMS Inc.

Industries Package. TARMS Inc. Industries Package TARMS Inc. September 07, 2000 TARMS Inc. http://www.tarms.com Copyright cfl2000 TARMS Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this model

More information

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Simple Robot Simulator 2010 (SRS10) Written by Walter O. Krawec Copyright (c) 2013 Walter O. Krawec Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated

More information

Firebase Admin SDK for PHP. Release

Firebase Admin SDK for PHP. Release Firebase Admin SDK for PHP Release Nov 25, 2017 Contents 1 User Guide 3 1.1 Overview................................................. 3 1.1.1 Requirements.......................................... 3 1.1.2

More information

twstock Documentation

twstock Documentation twstock Documentation 1.0.1 Louie Lu 2018 03 26 Contents 1 twstock - 1 1.1 - User s Guide.............................................. 1 1.2 API - API Reference...........................................

More information

jumpssh Documentation

jumpssh Documentation jumpssh Documentation Release 1.0.1 Thibaud Castaing Dec 18, 2017 Contents 1 Introduction 1 2 Api reference 5 3 Changes 15 4 License 17 5 Indices and tables 19 Python Module Index 21 i ii CHAPTER 1 Introduction

More information

Dellve CuDNN Documentation

Dellve CuDNN Documentation Dellve CuDNN Documentation Release 1.0.0 DELLveTeam May 02, 2017 Contents 1 Install Requirements 3 2 Dellve CuDNN Framework 5 3 Dellve CuDNN Operations 7 4 API Reference 11 5 Contributing 13 6 Licensing

More information

invenio-formatter Documentation

invenio-formatter Documentation invenio-formatter Documentation Release 1.0.0 CERN Mar 25, 2018 Contents 1 User s Guide 3 1.1 Installation................................................ 3 1.2 Configuration...............................................

More information

XEP-0363: HTTP File Upload

XEP-0363: HTTP File Upload XEP-0363: HTTP File Upload Daniel Gultsch mailto:daniel@gultsch.de xmpp:daniel@gultsch.de 2018-04-21 Version 0.6.0 Status Type Short Name Proposed Standards Track NOT_YET_ASSIGNED This specification defines

More information

GearmanBundle. Release

GearmanBundle. Release GearmanBundle Release Nov 28, 2017 Contents 1 User Documentation 3 1.1 Installing/Configuring.......................................... 3 1.2 Configuration...............................................

More information

sensor-documentation Documentation

sensor-documentation Documentation sensor-documentation Documentation Release 0.0.1 Apoorv Jagtap October 15, 2016 Contents 1 Contents: 1 1.1 Introduction............................................... 1 1.2 Velodyne VLP - 16............................................

More information

Colgate, WI

Colgate, WI Lions International District 27-A2 Technology Chair Lion Bill Meyers W290N9516 Deer Lane, Colgate, WI 53017 262.628.2940 27A2Tech@gmail.com Following is an explanation of the design basic of the free Lions

More information

DATAGATE MK2. Box Contents. Additional Features (licenses) Features. Safety

DATAGATE MK2. Box Contents. Additional Features (licenses) Features. Safety DATAGATE MK2 Box Contents Datagate Mk2 (pn: 70044) Straight connect Ethernet lead (pn:79102) IEC power cord (country dependent plug) This User manual Features 8 DMX ports isolated up to 1500V Gigabit Ethernet

More information

NDIS Implementation Guide

NDIS Implementation Guide NDIS Implementation Guide Last Update: February 2016 Interactive Reporting Pty Ltd ABN 68 128 589 266 8/248 Miller Street NORTH SYDNEY NSW 2060 Ph: (61 2) 8011 1511 Email: info@bi4cloud.com Website: www.bi4cloud.com

More information

docxtemplater Documentation

docxtemplater Documentation docxtemplater Documentation Release Edgar Hipp August 30, 2015 Contents 1 Goals 3 1.1 Why you should use a library for this.................................. 3 2 Platform Support 5 3 Dependencies 7 4

More information

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4, RT5 or RT6 phonebook, on PC.

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4, RT5 or RT6 phonebook, on PC. RTXAGENDA v01.08 Use Manual A program, free and easy to use, to modify your RT4, RT5 or RT6 phonebook, on PC. mira308sw 18/04/2013 Summary Introduction... 3 Installation... 3 What it need, how use it...

More information

LANDISVIEW Beta v1.0-user Guide

LANDISVIEW Beta v1.0-user Guide LANDISVIEW Beta v1.0 User Guide Andrew G. Birt Lei Wang Weimin Xi Knowledge Engineering Laboratory (KEL) Texas A&M University Last Revised: November 27, 2006 1 Table of Contents 1. Introduction 2. Installation

More information

Bldr.io Documentation

Bldr.io Documentation Bldr.io Documentation Release 0.0.2 Aaron Scherer February 10, 2017 Contents 1 Content 5 1.1 Installation................................................ 5 1.2 Usage...................................................

More information

Navigator Documentation

Navigator Documentation Navigator Documentation Release 1.0.0 Simon Holywell February 18, 2016 Contents 1 Installation 3 1.1 Packagist with Composer........................................ 3 1.2 git Clone or Zip Package.........................................

More information

Quality of Service (QOS) With Tintri VM-Aware Storage

Quality of Service (QOS) With Tintri VM-Aware Storage TECHNICAL WHITE PAPER Quality of Service (QOS) With Tintri VM-Aware Storage Dominic Cheah Technical Marketing Engineer (TME) Oct 2015 www.tintri.com Contents Intended Audience... 3 Consolidated List of

More information

Inptools Manual. Steffen Macke

Inptools Manual. Steffen Macke Inptools Manual Steffen Macke Inptools Manual Steffen Macke Publication date 2014-01-28 Copyright 2008, 2009, 2011, 2012, 2013, 2014 Steffen Macke Permission is granted to copy, distribute and/or modify

More information

RTI Connext DDS Core Libraries

RTI Connext DDS Core Libraries RTI Connext DDS Core Libraries Getting Started Guide Addendum for Database Setup Version 5.3.1 2018 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. February 2018. Trademarks

More information

ZSI: The Zolera Soap Infrastructure User s Guide. Release 2.0.0

ZSI: The Zolera Soap Infrastructure User s Guide. Release 2.0.0 ZSI: The Zolera Soap Infrastructure User s Guide Release 2.0.0 July 31, 2006 Copyright c 2001, Zolera Systems, Inc. All Rights Reserved. Copyright c 2002-2003, Rich Salz. All Rights Reserved. COPYRIGHT

More information

BME280 Documentation. Release Richard Hull

BME280 Documentation. Release Richard Hull BME280 Documentation Release 0.2.1 Richard Hull Mar 18, 2018 Contents 1 GPIO pin-outs 3 1.1 P1 Header................................................ 3 2 Pre-requisites 5 3 Installing the Python Package

More information

Tenable Hardware Appliance Upgrade Guide

Tenable Hardware Appliance Upgrade Guide Tenable Hardware Appliance Upgrade Guide June 4, 2012 (Revision 3) The newest version of this document is available at the following URL: http://static.tenable.com/prod_docs/tenable_hardware_appliance_upgrade.pdf

More information

ProFont began life as a better version of Monaco 9 which is especially good for programmers. It was created circa 1987 by Andrew Welch.

ProFont began life as a better version of Monaco 9 which is especially good for programmers. It was created circa 1987 by Andrew Welch. Important Note This is the original readme file of the ProFont distribution for Apple Macintosh. If you re using ProFont on Windows or Unix, or downloaded any other ProFont package than»profont Distribution

More information

Bluetooth Low Energy in C++ for nrfx Microcontrollers

Bluetooth Low Energy in C++ for nrfx Microcontrollers Bluetooth Low Energy in C++ for nrfx Microcontrollers 1st Edition Tony Gaitatzis BackupBrain Publishing, 2017 ISBN: 978-1-7751280-7-6 backupbrain.co i Bluetooth Low Energy in C++ for nrfx Microcontrollers

More information

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4 phonebook, on PC.

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4 phonebook, on PC. RTXAGENDA v01.05 Use Manual A program, free and easy to use, to modify your RT4 phonebook, on PC. mira308sw 15/05/2011 Summary Introduction... 3 Installation... 3 What it need, how use it... 3 WARNING...

More information

openresty / encrypted-session-nginx-module

openresty / encrypted-session-nginx-module 1 of 13 2/5/2017 1:47 PM Pull requests Issues Gist openresty / encrypted-session-nginx-module Watch 26 127 26 Code Issues 7 Pull requests 1 Projects 0 Wiki Pulse Graphs encrypt and decrypt nginx variable

More information

webbot Documentation Release Natesh M Bhat

webbot Documentation Release Natesh M Bhat webbot Documentation Release 0.0.1 Natesh M Bhat Oct 06, 2018 Contents: 1 Quick demo code ^_^ 3 1.1 Installation................................................ 3 1.2 License..................................................

More information

Getting started with Dependency Injection. Rob Allen May 2015

Getting started with Dependency Injection. Rob Allen May 2015 Getting started with Dependency Injection Rob Allen May 2015 Dependency Injection enables loose coupling and loose coupling makes code more maintainable Mark Seemann We're actually talking about loose

More information

MEAS HTU21D PERIPHERAL MODULE

MEAS HTU21D PERIPHERAL MODULE MEAS HTU21D PERIPHERAL MODULE Digital Humidity and Temperature Digital Component Sensor (DCS) Development Tools The HTU21D peripheral module provides the necessary hardware to interface the HTU21D digital

More information

MatPlotTheme Documentation

MatPlotTheme Documentation MatPlotTheme Documentation Release 0.1.2 James Yu July 31, 2014 Contents 1 Contents 3 1.1 Overview................................................. 3 1.2 Gallery..................................................

More information

clipbit Release 0.1 David Fraser

clipbit Release 0.1 David Fraser clipbit Release 0.1 David Fraser Sep 27, 2017 Contents 1 Introduction to ClipBit 1 1.1 Typing in Programs........................................... 1 2 ClipBit Programs 2 2.1 Secret Codes...............................................

More information

HCP Chargeback Collector Documentation

HCP Chargeback Collector Documentation HCP Chargeback Collector Documentation Release 2.2.1 Thorsten Simons Jun 27, 2017 Contents 1 Setup 2 1.1 Pre-requisites........................................... 2 1.2 Dependencies...........................................

More information

Django Mail Queue Documentation

Django Mail Queue Documentation Django Mail Queue Documentation Release 3.1.0 Derek Stegelman Jan 27, 2018 Contents 1 Quick Start Guide 3 1.1 Requirements............................................... 3 1.2 Installation................................................

More information

Build & Launch Tools (BLT) Automating best practices for enterprise sites

Build & Launch Tools (BLT) Automating best practices for enterprise sites Build & Launch Tools (BLT) Automating best practices for enterprise sites Who are you? Matthew Grasmick @grasmash on Drupal.org, twitter, etc. Acquia Professional Services, 4yrs Drupalist, 9yrs Maintainer

More information

XTEST Extension Library

XTEST Extension Library Version 2.2 XConsortium Standard Kieron Drake UniSoft Ltd. Copyright 1992 by UniSoft Group Ltd. Permission to use, copy, modify, and distribute this documentation for any purpose and without fee is hereby

More information

XEP-0146: Remote Controlling Clients

XEP-0146: Remote Controlling Clients XEP-0146: Remote Controlling Clients Remko Tronçon http://el-tramo.be/ Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2017-11-07 Version 1.1 Status Type Short Name Obsolete

More information

ExaFMM. Fast multipole method software aiming for exascale systems. User's Manual. Rio Yokota, L. A. Barba. November Revision 1

ExaFMM. Fast multipole method software aiming for exascale systems. User's Manual. Rio Yokota, L. A. Barba. November Revision 1 ExaFMM Fast multipole method software aiming for exascale systems User's Manual Rio Yokota, L. A. Barba November 2011 --- Revision 1 ExaFMM User's Manual i Revision History Name Date Notes Rio Yokota,

More information

Guest Book. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Guest Book. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. License Guest Book Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,

More information

XEP-0133: Service Administration

XEP-0133: Service Administration XEP-0133: Service Administration Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2017-07-15 Version 1.2 Status Type Short Name Active Informational admin This document

More information

Compound Text Encoding

Compound Text Encoding Compound Text Encoding Version 1.1.xf86.1 XFree86 4.0.2 XFree86, Inc. based on Version 1.1 XConsortium Standard XVersion 11, Release 6.4 Robert W. Scheifler Copyright 1989 by X Consortium Permission is

More information

XEP-0104: HTTP Scheme for URL Data

XEP-0104: HTTP Scheme for URL Data XEP-0104: HTTP Scheme for URL Data Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2004-01-20 Version 0.3 Status Type Short Name Deferred Standards Track N/A This document

More information

MIT-SHM The MIT Shared Memory Extension

MIT-SHM The MIT Shared Memory Extension MIT-SHM The MIT Shared Memory Extension How the shared memory extension works Jonathan Corbet Atmospheric Technology Division National Center for Atmospheric Research corbet@ncar.ucar.edu Formatted and

More information

XEP-0042: Jabber OOB Broadcast Service (JOBS)

XEP-0042: Jabber OOB Broadcast Service (JOBS) XEP-0042: Jabber OOB Broadcast Service (JOBS) Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2003-04-11 Version 0.5 Status Type Short Name Retracted Standards Track JOBS

More information

XEP-0399: Client Key Support

XEP-0399: Client Key Support XEP-0399: Client Key Support Dave Cridland mailto:dave.c@threadsstyling.com xmpp:dwd@dave.cridland.net 2018-01-25 Version 0.1.0 Status Type Short Name Experimental Standards Track client-key This specification

More information

withenv Documentation

withenv Documentation withenv Documentation Release 0.7.0 Eric Larson Aug 02, 2017 Contents 1 withenv 3 2 Installation 5 3 Usage 7 3.1 YAML Format.............................................. 7 3.2 Command Substitutions.........................................

More information

MEAS TEMPERATURE SYSTEM SENSOR (TSYS01) XPLAINED PRO BOARD

MEAS TEMPERATURE SYSTEM SENSOR (TSYS01) XPLAINED PRO BOARD MEAS TEMPERATURE SYSTEM SENSOR (TSYS01) XPLAINED PRO BOARD Digital Temperature Digital Component Sensor (DCS) Development Tools Performance -5 C to 50 C accuracy: 0.1 C -40 C to 125 C accuracy: 0.5 C Very

More information

The RX Document Version 1.0 X11 Release 6.4

The RX Document Version 1.0 X11 Release 6.4 Version 1.0 X11 Release 6.4 Arnaud Le Hors lehors@x.org X Consortium, Inc. Abstract This document describes the RX MIME type and how it can be used to provide a means to execute remote applications, such

More information

Paris Documentation. Release. Jamie Matthews and Simon Holywell

Paris Documentation. Release. Jamie Matthews and Simon Holywell Paris Documentation Release Jamie Matthews and Simon Holywell Mar 21, 2017 Contents 1 Philosophy 3 2 Installation 5 2.1 Packagist................................................. 5 2.2 Download.................................................

More information

XEP-0361: Zero Handshake Server to Server Protocol

XEP-0361: Zero Handshake Server to Server Protocol XEP-0361: Zero Handshake Server to Server Protocol Steve Kille mailto:steve.kille@isode.com xmpp:steve.kille@isode.com 2017-09-11 Version 0.3 Status Type Short Name Deferred Informational X2X This specification

More information

HTNG Web Services Product Specification. Version 2011A

HTNG Web Services Product Specification. Version 2011A HTNG Web Services Product Specification Version 2011A About HTNG Hotel Technology Next Generation ( HTNG ) is a nonprofit organization with global scope, formed in 2002 to facilitate the development of

More information

VMware vcenter Log Insight Manager. Deployment Guide

VMware vcenter Log Insight Manager. Deployment Guide VMware vcenter Log Insight Manager Deployment Guide VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies

More information

User s Guide for macos with Stata and R

User s Guide for macos with Stata and R User s Guide for macos with Stata and R Table of Contents Introduction... 4 Setup... 4 Basics of StatTag... 4 3.1 StatTag Elements... 5 3.2 Navigating StatTag for macos... 6 3.3 Interacting with the StatTag

More information

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015 Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone

More information

puppet-diamond Documentation

puppet-diamond Documentation puppet-diamond Documentation Release 0.3.0 Ian Dennis Miller Mar 21, 2017 Contents 1 Overview 3 2 Introduction 5 3 User Guide 9 4 About 15 i ii Puppet-Diamond is framework for creating and managing an

More information

calio / form-input-nginx-module

calio / form-input-nginx-module https://github.com/ 1 of 5 2/17/2015 11:27 AM Explore Gist Blog Help itpp16 + calio / form-input-nginx-module 5 46 9 This is a nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-formurlencoded",

More information

VTT INFORMATION TECHNOLOGY. Nipper

VTT INFORMATION TECHNOLOGY. Nipper VTT INFORMATION TECHNOLOGY Nipper ADVANCED USER GUIDE Copyright Copyright VTT Information Technology 2003. All rights reserved. The information in this document is subject to change without notice and

More information