Check out the latest documentation.

Installing the PHP API

Linux

First, clone 51Degrees/Device-Detection repository using git:

									
									$ git clone https://github.com/51Degrees/Device-Detection.git

									
								

Choose the detection method you wish to use and navigate to the corresponding directory within the ‘php’ directory. For Pattern:

									
									$ cd Device-Detection/php/pattern

									
								

For Trie:

									
									$ cd Device-Detection/php/trie

									
								

Install by running the following commands:

For PHP 5

									
									phpize
./configure
sudo make install

									
								

Or for PHP 7

									
									phpize
./configure PHP7=1
sudo make install

									
								

The phpize command will prepare the build environment for the PHP extension. The ./configure will check your environment and prepare the makefile. Finally the make install will build the detector module and place it in the PHP extensions directory. The build script should also tell you where the extension has been placed.

In the includes directory, there is a php file which contains all the classes needed. So put this in a directory accessible by your web server, e.g. /var/www/html/51Degrees. This can then be included at the top of any php script using the detector with

									
									require(path/to/FiftyOneDegreesPatternV3.php);

									
								

Windows

First, clone 51Degrees/Device-Detection repository using git:

									
									$ git clone https://github.com/51Degrees/Device-Detection.git

									
								

Now download the php source (the same version as is installed on the target system) from https://windows.php.net/downloads/releases/ and select a source package, e.g 'php-5.6.29-src.zip'. Then extract to either the Pattern or Trie directory and rename to php-src.

Download the necessary binary tools from https://windows.php.net/downloads/php-sdk/ , e.g. 'php-sdk-binary-tools-20110915.zip' and extract the subfolders to either the Pattern or Trie directory. In a developer command prompt (for PHP 5.5/5.6 use Visual Studio 2012, for 7.0+ use 2015) and move to either the Pattern or Trie directory. make the binary tools available in the system path:

									
									$ bin\phpsdk_setvars.bat

									
								

Configure and build the php source by running the following in the php-src directory:

									
									$ cd php-src
$ buildconf.bat
$ configure --disable-all --enable-cli
$ nmake

									
								

The VisualStudio directory contains a project which can now be opened and built. This will then build the dll in the VisualStudio\Release directory.

Just include the dll in a suitable PHP directory and configure as below.

Configure

Before using the extension you must supply the PHP environment with information on the location of the module and the module parameters. This should be done by editing your PHP.ini file.

If you are not sure where the PHP.ini file is located on your system you can create a .php page and place in your server directory. Add the following php code to the page

									
										
										<?php
										
									
phpinfo();

										
										?>
										
									
								

and look for the ‘php.ini’ file location.

Open the ‘php.ini’ file and add the following to the bottom. Please note that superuser privileges will most likely be required to edit the file.

The first is the location of the extension binary (note that your location may be different from the one here. Check for the location). The second is the is the path to the 51Degrees data file. Third parameter defines the number of WorkSet items in the pool. Make sure that it is in a location that Apache has read permissions over.

									
									extension=/usr/lib/php5/FiftyOneDegreesPatternV3.so
FiftyOneDegreesPatternV3.data_file=path/to/51Degrees/data/file.dat
FiftyOneDegreesPatternV3.property_list=BrowserName,BrowserVendor,BrowserVersion,DeviceType,HardwareVendor,IsTablet,IsMobile,IsCrawler,ScreenInchesDiagonal,ScreenPixelsWidth
FiftyOneDegreesPatternV3.cache_size=10000
FiftyOneDegreesPatternV3.pool_size=20

									
								

In both Pattern and Trie directories, there is a php file which contains all the classes needed. So put this in a directory accessible by your web server, e.g. /var/www/html/51Degrees. This can then be included at the top of any php script using the detector with

									
										
										require
										
									(path/to/FiftyOneDegreesPatternV3.php);

									
								

or

									
										
										require
										
									(path/to/FiftyOneDegreesTrieV3.php);

									
								

Suggested Next Steps