Add mobile device detection to project. Improved Messages app when used on a mobile device.
This commit is contained in:
parent
3097deeb1f
commit
5c4a4ebff1
|
|
@ -76,7 +76,12 @@
|
||||||
echo " display: block;\n";
|
echo " display: block;\n";
|
||||||
echo " background-color: #fff;\n";
|
echo " background-color: #fff;\n";
|
||||||
echo " padding: 20px 30px;\n";
|
echo " padding: 20px 30px;\n";
|
||||||
echo " margin: auto 30%;\n";
|
if (is_mobile() && !is_tablet()) {
|
||||||
|
echo " margin: 0;\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo " margin: auto 30%;\n";
|
||||||
|
}
|
||||||
echo " text-align: left;\n";
|
echo " text-align: left;\n";
|
||||||
echo " -webkit-box-shadow: 0px 1px 20px #888;\n";
|
echo " -webkit-box-shadow: 0px 1px 20px #888;\n";
|
||||||
echo " -moz-box-shadow: 0px 1px 20px #888;\n";
|
echo " -moz-box-shadow: 0px 1px 20px #888;\n";
|
||||||
|
|
@ -110,7 +115,7 @@
|
||||||
echo " <td class='vncell'>".$text['label-message_from']."</td>\n";
|
echo " <td class='vncell'>".$text['label-message_from']."</td>\n";
|
||||||
echo " <td class='vtable'>\n";
|
echo " <td class='vtable'>\n";
|
||||||
if (is_array($destinations) && sizeof($destinations) != 0) {
|
if (is_array($destinations) && sizeof($destinations) != 0) {
|
||||||
echo " <select class='formfld' name='message_from' id='message_new_from'>\n";
|
echo " <select class='formfld' name='message_from' id='message_new_from' onchange=\" $('#message_new_to').focus();\">\n";
|
||||||
foreach ($destinations as $destination) {
|
foreach ($destinations as $destination) {
|
||||||
echo " <option value='".$destination."'>".format_phone($destination)."</option>\n";
|
echo " <option value='".$destination."'>".format_phone($destination)."</option>\n";
|
||||||
}
|
}
|
||||||
|
|
@ -163,7 +168,7 @@
|
||||||
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-messages']."</b><br><br></td>\n";
|
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-messages']."</b><br><br></td>\n";
|
||||||
echo " <form method='get' action=''>\n";
|
echo " <form method='get' action=''>\n";
|
||||||
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
|
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
|
||||||
echo " <input type='button' class='btn' name='' alt='".$text['label-new_message']."' onclick=\"$('#message_new_layer').fadeIn(200); $('#message_new_to').focus();\" value='".$text['label-new_message']."'>\n";
|
echo " <input type='button' class='btn' name='' alt='".$text['label-new_message']."' onclick=\"$('#message_new_layer').fadeIn(200); unload_thread();\" value='".$text['label-new_message']."'>\n";
|
||||||
/*
|
/*
|
||||||
if (permission_exists('message_all')) {
|
if (permission_exists('message_all')) {
|
||||||
if ($_GET['show'] == 'all') {
|
if ($_GET['show'] == 'all') {
|
||||||
|
|
@ -217,21 +222,30 @@
|
||||||
echo " $('#thread_messages').scrollTop(Number.MAX_SAFE_INTEGER);\n"; //chrome
|
echo " $('#thread_messages').scrollTop(Number.MAX_SAFE_INTEGER);\n"; //chrome
|
||||||
echo " $('span#thread_bottom')[0].scrollIntoView(true);\n"; //others
|
echo " $('span#thread_bottom')[0].scrollIntoView(true);\n"; //others
|
||||||
//note: the order of the above two lines matters!
|
//note: the order of the above two lines matters!
|
||||||
echo " if ($('#message_new_layer').is(':hidden')) {\n";
|
if (!is_mobile()) {
|
||||||
echo " $('#message_text').focus();\n";
|
echo " if ($('#message_new_layer').is(':hidden')) {\n";
|
||||||
echo " }\n";
|
echo " $('#message_text').focus();\n";
|
||||||
|
echo " }\n";
|
||||||
|
}
|
||||||
echo " timer_thread = setTimeout(refresh_thread_start, thread_refresh, number);\n";
|
echo " timer_thread = setTimeout(refresh_thread_start, thread_refresh, number);\n";
|
||||||
echo " });\n";
|
echo " });\n";
|
||||||
echo " }\n";
|
echo " }\n";
|
||||||
|
|
||||||
|
echo " function unload_thread() {\n";
|
||||||
|
echo " clearTimeout(timer_thread);\n";
|
||||||
|
echo " $('#thread').html('...');\n";
|
||||||
|
echo " }\n";
|
||||||
|
|
||||||
echo " function refresh_thread(number, onsent) {\n";
|
echo " function refresh_thread(number, onsent) {\n";
|
||||||
echo " $('#thread_messages').load('messages_thread.php?refresh=true&number=' + encodeURIComponent(number), function(){\n";
|
echo " $('#thread_messages').load('messages_thread.php?refresh=true&number=' + encodeURIComponent(number), function(){\n";
|
||||||
echo " $('#thread_messages').scrollTop(Number.MAX_SAFE_INTEGER);\n"; //chrome
|
echo " $('#thread_messages').scrollTop(Number.MAX_SAFE_INTEGER);\n"; //chrome
|
||||||
echo " $('span#thread_bottom')[0].scrollIntoView(true);\n"; //others
|
echo " $('span#thread_bottom')[0].scrollIntoView(true);\n"; //others
|
||||||
//note: the order of the above two lines matters!
|
//note: the order of the above two lines matters!
|
||||||
echo " if ($('#message_new_layer').is(':hidden')) {\n";
|
if (!is_mobile()) {
|
||||||
echo " $('#message_text').focus();\n";
|
echo " if ($('#message_new_layer').is(':hidden')) {\n";
|
||||||
echo " }\n";
|
echo " $('#message_text').focus();\n";
|
||||||
|
echo " }\n";
|
||||||
|
}
|
||||||
echo " if (onsent != 'true') {\n";
|
echo " if (onsent != 'true') {\n";
|
||||||
echo " timer_thread = setTimeout(refresh_thread, thread_refresh, number);\n";
|
echo " timer_thread = setTimeout(refresh_thread, thread_refresh, number);\n";
|
||||||
echo " }\n";
|
echo " }\n";
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@
|
||||||
echo " data: $('#message_compose').serialize(),\n";
|
echo " data: $('#message_compose').serialize(),\n";
|
||||||
echo " success: function(){\n";
|
echo " success: function(){\n";
|
||||||
echo " document.getElementById('message_compose').reset();\n";
|
echo " document.getElementById('message_compose').reset();\n";
|
||||||
echo " if ($('#message_new_layer').is(':hidden')) {\n";
|
echo " if ($('#message_new_layer').is(':hidden') && !is_mobile()) {\n";
|
||||||
echo " $('#message_text').focus();\n";
|
echo " $('#message_text').focus();\n";
|
||||||
echo " }\n";
|
echo " }\n";
|
||||||
echo " refresh_thread('".$number."','true');\n";
|
echo " refresh_thread('".$number."','true');\n";
|
||||||
|
|
|
||||||
|
|
@ -1940,7 +1940,7 @@ function number_pad($number,$n) {
|
||||||
//return htmlentities($string, ENT_QUOTES, 'UTF-8');
|
//return htmlentities($string, ENT_QUOTES, 'UTF-8');
|
||||||
}
|
}
|
||||||
|
|
||||||
// output pre-formatted array keys and values
|
//output pre-formatted array keys and values
|
||||||
if (!function_exists('view_array')) {
|
if (!function_exists('view_array')) {
|
||||||
function view_array($array, $exit = true) {
|
function view_array($array, $exit = true) {
|
||||||
echo '<br><pre>'.print_r($array, true).'</pre><br>';
|
echo '<br><pre>'.print_r($array, true).'</pre><br>';
|
||||||
|
|
@ -1948,7 +1948,7 @@ function number_pad($number,$n) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// format db date and/or time to local date and/or time
|
//format db date and/or time to local date and/or time
|
||||||
if (!function_exists('format_when_local')) {
|
if (!function_exists('format_when_local')) {
|
||||||
function format_when_local($when, $format = 'dt', $include_seconds = false) {
|
function format_when_local($when, $format = 'dt', $include_seconds = false) {
|
||||||
if ($when != '') {
|
if ($when != '') {
|
||||||
|
|
@ -2004,4 +2004,31 @@ function number_pad($number,$n) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mobile device detection
|
||||||
|
require_once 'resources/mobile-detect/Mobile_Detect.php';
|
||||||
|
if (!function_exists('is_mobile')) {
|
||||||
|
function is_mobile() {
|
||||||
|
$detect = new Mobile_Detect;
|
||||||
|
return $detect->isMobile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!function_exists('is_tablet')) {
|
||||||
|
function is_tablet() {
|
||||||
|
$detect = new Mobile_Detect;
|
||||||
|
return $detect->isTablet();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!function_exists('is_ios')) {
|
||||||
|
function is_ios() {
|
||||||
|
$detect = new Mobile_Detect;
|
||||||
|
return $detect->isiOS();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!function_exists('is_android')) {
|
||||||
|
function is_android() {
|
||||||
|
$detect = new Mobile_Detect;
|
||||||
|
return $detect->isAndroidOS();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) <2011-2015> Serban Ghita, Nick Ilyin and contributors.
|
||||||
|
|
||||||
|
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, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
Developer’s Certificate of Origin 1.1
|
||||||
|
|
||||||
|
By making a contribution to this project, I certify that:
|
||||||
|
|
||||||
|
(a) The contribution was created in whole or in part by me and I
|
||||||
|
have the right to submit it under the open source license
|
||||||
|
indicated in the file; or
|
||||||
|
|
||||||
|
(b) The contribution is based upon previous work that, to the best
|
||||||
|
of my knowledge, is covered under an appropriate open source
|
||||||
|
license and I have the right under that license to submit that
|
||||||
|
work with modifications, whether created in whole or in part
|
||||||
|
by me, under the same open source license (unless I am
|
||||||
|
permitted to submit under a different license), as indicated
|
||||||
|
in the file; or
|
||||||
|
|
||||||
|
(c) The contribution was provided directly to me by some other
|
||||||
|
person who certified (a), (b) or (c) and I have not modified
|
||||||
|
it.
|
||||||
|
|
||||||
|
(d) I understand and agree that this project and the contribution
|
||||||
|
are public and that a record of the contribution (including all
|
||||||
|
personal information I submit with it, including my sign-off) is
|
||||||
|
maintained indefinitely and may be redistributed consistent with
|
||||||
|
this project or the open source license(s) involved.
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,344 @@
|
||||||
|

|
||||||
|
|
||||||
|
> Motto: "Every business should have a detection script to detect mobile readers."
|
||||||
|
|
||||||
|
[](https://travis-ci.org/serbanghita/Mobile-Detect)
|
||||||
|
[](https://packagist.org/packages/mobiledetect/mobiledetectlib)
|
||||||
|
[](https://packagist.org/packages/mobiledetect/mobiledetectlib)
|
||||||
|
[](https://packagist.org/packages/mobiledetect/mobiledetectlib)
|
||||||
|
[](https://packagist.org/packages/mobiledetect/mobiledetectlib)
|
||||||
|
[](https://join.slack.com/t/mobiledetect/shared_invite/enQtMjg1NDY0OTg5NzgzLTcwMzEzMWJjZjRlOWFkY2ZiNzE1ZmRmNzEwM2VhOGY5OGVkYWMxNjdkZDU5YjQ5MmM5MGUxYjhlZDQwOGVjZjE)
|
||||||
|
|
||||||
|
#### About
|
||||||
|
|
||||||
|
Mobile Detect is a lightweight PHP class for detecting mobile devices (including tablets).
|
||||||
|
It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
|
||||||
|
|
||||||
|
*Why*
|
||||||
|
|
||||||
|
Your website's _content strategy_ is important! You need a complete toolkit to deliver an experience that is _optimized_,
|
||||||
|
_fast_ and _relevant_ to your users. Mobile Detect class is a
|
||||||
|
[server-side detection](http://www.w3.org/TR/mwabp/#bp-devcap-detection) tool that can help you with your RWD strategy,
|
||||||
|
it is not a replacement for CSS3 media queries or other forms of client-side feature detection.
|
||||||
|
|
||||||
|
*How*
|
||||||
|
|
||||||
|
We're committed to make Mobile_Detect the best open-source mobile detection resource and this is why before
|
||||||
|
each release we're running [unit tests](./tests) and research and update the detection rules on **monthly** basis.
|
||||||
|
|
||||||
|
*Who*
|
||||||
|
|
||||||
|
See [the history](./docs/HISTORY.md) of the project.
|
||||||
|
|
||||||
|
#### Announcements
|
||||||
|
|
||||||
|
* **JetBrains** is sponsoring the project by providing licenses for [PHPStorm](https://www.jetbrains.com/phpstorm/) and
|
||||||
|
[DataGrip](https://www.jetbrains.com/datagrip/).
|
||||||
|
* **Mobile_Detect `2.x.x`** is only integrating new regexes, User-Agents and tests. We are focusing on **new tablets only**.
|
||||||
|
The rest of the PRs about TVs, bots or optimizations will be closed and analyzed after `3.0.0-beta` is released.
|
||||||
|
* **Mobile_Detect `3.x.x`** is experimental and WIP.
|
||||||
|
|
||||||
|
|
||||||
|
#### Install
|
||||||
|
|
||||||
|
**Download and include manually**
|
||||||
|
> Use this to quickly test the demo.
|
||||||
|
|
||||||
|
* [Download latest release](../../tags)
|
||||||
|
* [Mobile_Detect.php](./Mobile_Detect.php)
|
||||||
|
|
||||||
|
```php
|
||||||
|
require_once "libs/Mobile_Detect.php";
|
||||||
|
```
|
||||||
|
|
||||||
|
**Install as a [composer package](https://packagist.org/packages/mobiledetect/mobiledetectlib)**
|
||||||
|
> Use this method to get continuous updates.
|
||||||
|
|
||||||
|
```
|
||||||
|
composer require mobiledetect/mobiledetectlib
|
||||||
|
```
|
||||||
|
or include the dependency in the `composer.json` file:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"mobiledetect/mobiledetectlib": "^2.8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Demo
|
||||||
|
|
||||||
|
* [:iphone: Live demo!](http://demo.mobiledetect.net)
|
||||||
|
* [Code examples](../../wiki/Code-examples)
|
||||||
|
|
||||||
|
#### Contribute
|
||||||
|
|
||||||
|
*Submit a PR*
|
||||||
|
> Submit a pull request but before make sure you read [how to contribute](docs/CONTRIBUTING.md) guide.
|
||||||
|
|
||||||
|
*Donate*
|
||||||
|
|
||||||
|
|Paypal|
|
||||||
|
|------|
|
||||||
|
|[Donate :+1:](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mobiledetectlib%40gmail%2ecom&lc=US&item_name=Mobile%20Detect¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)|
|
||||||
|
|
||||||
|
|
||||||
|
I'm currently paying for hosting and spend a lot of my family time to maintain the project and planning the future releases.
|
||||||
|
I would highly appreciate any money donations that will keep the research going.
|
||||||
|
|
||||||
|
Special thanks to the community :+1: for donations, JetBrains team for the continuous support and [Dragos Gavrila](https://twitter.com/grafician) who contributed with the logo.
|
||||||
|
|
||||||
|
#### Modules, plugins, ports
|
||||||
|
> [Submit new module, plugin, port](../../issues/new?title=New%203rd%20party%20module&body=Name,%20Link%20and%20Description%20of%20the%20module.)
|
||||||
|
|
||||||
|
:point_right: Keep `Mobile_Detect.php` class in a separate `module` and do NOT include it in your script core because of the high frequency of updates.
|
||||||
|
:point_right: When including the class into your `web application` or `module` always use `include_once '../path/to/Mobile_Detect.php` to prevent conflicts.
|
||||||
|
|
||||||
|
**JavaScript**
|
||||||
|
|
||||||
|
* mobile-detect.js - A [JavaScript port](https://github.com/hgoebl/mobile-detect.js) of Mobile-Detect class. Made by [Heinrich Goebl](https://github.com/hgoebl).
|
||||||
|
|
||||||
|
**Varnish Cache**
|
||||||
|
|
||||||
|
* [Varnish Mobile Detect](https://github.com/willemk/varnish-mobiletranslate) - Drop-in varnish solution to mobile user
|
||||||
|
detection based on the Mobile-Detect library. Made by [willemk](https://github.com/willemk).
|
||||||
|
* [mobiledetect2vcl](https://github.com/carlosabalde/mobiledetect2vcl) - Python script to transform the Mobile
|
||||||
|
Detect JSON database into an UA-based mobile detection VCL subroutine easily integrable in any Varnish Cache
|
||||||
|
configuration. Made by [Carlos Abalde](https://github.com/carlosabalde).
|
||||||
|
|
||||||
|
**LUA**
|
||||||
|
|
||||||
|
* [mobile-detect.lua](https://github.com/yourpalmark/mobile-detect.lua) is a port of Mobile-Detect to Lua for
|
||||||
|
NGINX HTTP servers. Follows closely to mobile-detect.js. Supports all methods that server-side
|
||||||
|
mobile-detect.js supports. Fully unit-tested and synced with Travis CI (Build Passing badge included).
|
||||||
|
Made by [Mark Walters](https://github.com/yourpalmark).
|
||||||
|
|
||||||
|
**PHP**
|
||||||
|
|
||||||
|
**WordPress**
|
||||||
|
|
||||||
|
* [Mobile Detect for WordPress](https://wordpress.org/plugins/tinywp-mobile-detect/) - WordPress has a built-in function
|
||||||
|
(`wp_is_mobile()`) to detect mobile devices. There is (at least) one catch, though. It considers iPad (iPad pro,
|
||||||
|
and any tablet) as a mobile. So, this 3rd party module changes the way `wp_is_mobile()` works with the help of
|
||||||
|
Mobile Detect PHP library!
|
||||||
|
Made by [Pothi Kalimuthu](https://github.com/pothi)
|
||||||
|
|
||||||
|
* [WordPress Mobile Detect](https://wordpress.org/plugins/wp-mobile-detect/) - Gives you the ability to wrap that
|
||||||
|
infographic in a `[notdevice][/notdevice]` shortcode so at the server level WordPress will
|
||||||
|
decide to show that content only if the user is NOT on a phone or tablet.
|
||||||
|
Made by [Jesse Friedman](https://profiles.wordpress.org/professor44/).
|
||||||
|
|
||||||
|
* [mobble](https://wordpress.org/plugins/mobble/) - provides mobile related conditional functions for your site.
|
||||||
|
e.g. `is_iphone()`, `is_mobile()` and `is_tablet()`. Made by Scott Evans.
|
||||||
|
|
||||||
|
* [WordPress Responsage](https://github.com/iamspacehead/responsage) - A small WordPress theme plugin that allows
|
||||||
|
you to make your images responsive. Made by [Adrian Ciaschetti](https://github.com/iamspacehead).
|
||||||
|
|
||||||
|
* [WP247 Body Classes](https://wordpress.org/plugins/wp247-body-classes/) - Add unique classes to the `body` tag for
|
||||||
|
easy styling based on various attributes (archive, user, post, mobile) and various WordPress "is" functions.
|
||||||
|
Mobile attributes include type of device, Operating System, Browser, etc. Examples: .is-mobile, .is-not-mobile,
|
||||||
|
.is-tablet, .is-ios, .is-not-ios, .is-androidos, .is-chromebrowser.
|
||||||
|
Made by [wescleveland56](https://github.com/wescleveland56).
|
||||||
|
|
||||||
|
* [Adaptive Content](https://wordpress.org/plugins/addfunc-adaptive-content/) for WordPress provides the most
|
||||||
|
intuitive set of shortcodes for including/excluding content on mobile devices, tablets desktops and other
|
||||||
|
more specific device parameters. This lightweight plugin lets content writers and theme authors choose when
|
||||||
|
WordPress should or shouldn’t show any give content item using shortcodes and quicktags or theme elements using functions.
|
||||||
|
Made by [AddFunc](https://profiles.wordpress.org/addfunc).
|
||||||
|
|
||||||
|
* [AddFunc Mobile Detect](https://wordpress.org/plugins/addfunc-mobile-detect/) for WordPress redirects
|
||||||
|
mobile traffic to your mobile website and, basically, gives you loads of control over your mobile redirects.
|
||||||
|
Made by [AddFunc](https://profiles.wordpress.org/addfunc).
|
||||||
|
|
||||||
|
**Drupal**
|
||||||
|
|
||||||
|
* [Drupal Mobile Switch](https://www.drupal.org/project/mobile_switch) - The Mobile Switch Drupal module provides a
|
||||||
|
automatic theme switch functionality for mobile devices, detected by Browscap or Mobile Detect.
|
||||||
|
Made by [Siegfried Neumann](https://www.drupal.org/user/45267).
|
||||||
|
|
||||||
|
* [Drupal Context Mobile Detect](https://www.drupal.org/project/context_mobile_detect) - This is a Drupal context module
|
||||||
|
which integrates Context and PHP Mobile Detect library.
|
||||||
|
Created by [Artem Shymko](https://www.drupal.org/user/432492).
|
||||||
|
|
||||||
|
* [Drupal Mobile Detect](https://www.drupal.org/project/mobile_detect) - Lightweight mobile detect module for Drupal
|
||||||
|
created by [Matthew Donadio](https://www.drupal.org/user/325244).
|
||||||
|
|
||||||
|
**Joomla**
|
||||||
|
|
||||||
|
* [yagendoo Joomla! Mobile Detection Plugin](http://www.yagendoo.com/en/blog/free-mobile-detection-plugin-for-joomla.html) - Lightweight PHP plugin for Joomla!
|
||||||
|
that detects a mobile browser using the Mobile Detect class.
|
||||||
|
Made by yagendoo media.
|
||||||
|
|
||||||
|
* [User Agent Detector plugin](https://github.com/renekreijveld/UserAgentDetector) - This system plugin detects the user
|
||||||
|
agent of your website visitor and sets a session variable accordingly. Based on the user agent, the plugin detects if the
|
||||||
|
site is running on a desktop pc, tablet or smartphone. It can also detect if the visitor is a spider bot (search engine).
|
||||||
|
Session variable that is set: `ualayout`. Possible values: desktop, tablet, mobile, bot.
|
||||||
|
Made by @ReneKreijveld.
|
||||||
|
|
||||||
|
**Magento**
|
||||||
|
|
||||||
|
* [Magento helper](http://www.magentocommerce.com/magento-connect/catalog/product/view/id/16835/) from Optimise Web enables
|
||||||
|
the use of all functions provided by Mobile Detect. Made by [Kathir Vel](http://www.kathirvel.com).
|
||||||
|
|
||||||
|
* [Magento 2 Mobile Detect Theme Change](https://github.com/EaDesgin/magento2-mobiledetect) is an extension for Magento 2
|
||||||
|
that will change the theme or redirect to a different URL. Also containing a helper to check for the device type.
|
||||||
|
|
||||||
|
**PrestaShop**
|
||||||
|
|
||||||
|
* [PrestaShop](https://www.prestashop.com) is a free, secure and open source shopping cart platform. Mobile_Detect
|
||||||
|
is included in the default package since 1.5.x.
|
||||||
|
|
||||||
|
**Laravel**
|
||||||
|
|
||||||
|
* [Agent](https://github.com/jenssegers/agent) is a user agent class for Laravel based on Mobile Detect with some
|
||||||
|
additional functionality.
|
||||||
|
Made by [Jens Segers](https://github.com/jenssegers).
|
||||||
|
|
||||||
|
* [Laravel Mobile Detect](https://github.com/riverskies/laravel-mobile-detect) is a package that enables you to use device detection right in your Laravel Blade templates. (Utilises the well-known, constantly updated PHP mobile detection library.)
|
||||||
|
Made by [Barnabas Kecskes](https://github.com/barnabaskecskes).
|
||||||
|
|
||||||
|
* [BrowserDetect](https://github.com/hisorange/browser-detect) is a browser and mobile detection package, collects
|
||||||
|
and wrap together the best user-agent identifiers for Laravel.
|
||||||
|
Created by [Varga Zsolt](https://github.com/hisorange).
|
||||||
|
|
||||||
|
**Zend Framework**
|
||||||
|
|
||||||
|
* [ZF2 Mobile-Detect](https://github.com/neilime/zf2-mobile-detect.git) is a Zend Framework 2 module that provides
|
||||||
|
Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers).
|
||||||
|
Made by [neilime](https://github.com/neilime).
|
||||||
|
|
||||||
|
* [ZF2 MobileDetectModule](https://github.com/nikolaposa/MobileDetectModule) facilitates integration of a PHP MobileDetect
|
||||||
|
class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module,
|
||||||
|
but differs in initialization and provision routine of the actual Mobile_Detect class.
|
||||||
|
Appropriate view helper and controller plugin also have different conceptions.
|
||||||
|
Made by [Nikola Posa](https://github.com/nikolaposa).
|
||||||
|
|
||||||
|
**Symfony**
|
||||||
|
|
||||||
|
* [Symfony2 Mobile Detect Bundle](https://github.com/suncat2000/MobileDetectBundle) is a bundle for detecting mobile devices,
|
||||||
|
manage mobile view and redirect to the mobile and tablet version.
|
||||||
|
Made by [Nikolay Ivlev](https://github.com/suncat2000).
|
||||||
|
|
||||||
|
* [Silex Mobile Detect Service Provider](https://github.com/jbinfo/MobileDetectServiceProvider) is a service provider to
|
||||||
|
interact with Mobile detect class methods.
|
||||||
|
Made by [Lhassan Baazzi](https://github.com/jbinfo).
|
||||||
|
|
||||||
|
**Slim Framework**
|
||||||
|
|
||||||
|
* [Slim_Mobile_Detect](https://github.com/zguillez/slim_mobile_detect) implements Mobile_Detect lib for different
|
||||||
|
responses write on Slim Framework App.
|
||||||
|
|
||||||
|
**ExpressionEngine**
|
||||||
|
|
||||||
|
* [EE2 Detect Mobile](https://github.com/garethtdavies/detect-mobile) is a lightweight PHP plugin for EE2 that detects
|
||||||
|
a mobile browser using the Mobile Detect class. Made by [Gareth Davies](https://github.com/garethtdavies).
|
||||||
|
|
||||||
|
**Yii Framework**
|
||||||
|
|
||||||
|
* [Yii Extension](https://github.com/iamsalnikov/MobileDetect) - Mobile detect plugin for Yii framework.
|
||||||
|
Made by [Alexey Salnikov](https://github.com/iamsalnikov).
|
||||||
|
|
||||||
|
* [Yii Extension](https://github.com/candasm/yii1-mobile-detect-component) - Mobile detect component for Yii framework
|
||||||
|
1.x version which supports composer package manager. Made by [Candas Minareci](https://github.com/candasm).
|
||||||
|
|
||||||
|
* [Yii2 Device Detect](https://github.com/alexandernst/yii2-device-detect/) - Yii2 extension for Mobile-Detect library.
|
||||||
|
Made by [Alexander Nestorov](https://github.com/alexandernst).
|
||||||
|
|
||||||
|
**CakePHP**
|
||||||
|
|
||||||
|
* [CakePHP MobileDetect](https://github.com/chronon/CakePHP-MobileDetectComponent-Plugin) is a plugin component for
|
||||||
|
CakePHP 2.x. Made by [Gregory Gaskill](https://github.com/chronon).
|
||||||
|
|
||||||
|
**FuelPHP**
|
||||||
|
|
||||||
|
* [Special Agent](https://github.com/rob-bar/special_agent) is a FuelPHP package which uses php-mobile-detect to
|
||||||
|
determine whether a device is mobile or not. It overrides the Fuelphp Agent class its methods.
|
||||||
|
Made by [Robbie Bardjin](https://github.com/rob-bar).
|
||||||
|
|
||||||
|
|
||||||
|
**TYPO3**
|
||||||
|
|
||||||
|
* [px_mobiledetect](https://typo3.org/extensions/repository/view/px_mobiledetect) is an extension that helps to detect
|
||||||
|
visitor's mobile device class (if that’s tablet or mobile device like smartphone). Made by Alexander Tretyak.
|
||||||
|
|
||||||
|
**Other**
|
||||||
|
|
||||||
|
* [PageCache](https://github.com/mmamedov/page-cache) is a lightweight PHP library for full page cache,
|
||||||
|
with built-in Mobile-Detect support. Made by [Muhammed Mamedov](https://github.com/mmamedov).
|
||||||
|
|
||||||
|
* [Statamic CMS Mobile Detect](https://github.com/haikulab/statamic-mobile-detect) is a plugin.
|
||||||
|
Made by [Sergei Filippov](https://github.com/haikulab/statamic-mobile-detect) of Haiku Lab.
|
||||||
|
|
||||||
|
* [Kohana Mobile Detect](https://github.com/madeinnordeste/kohana-mobile-detect) is an example of implementation of
|
||||||
|
Mobile_Detect class with Kohana framework.
|
||||||
|
Written by [Luiz Alberto S. Ribeiro](https://github.com/madeinnordeste).
|
||||||
|
|
||||||
|
* [MemHT](https://www.memht.com) is a Free PHP CMS and Blog that permit the creation and the management online
|
||||||
|
of websites with few and easy steps. Has the class included in the core.
|
||||||
|
|
||||||
|
* [concrete5](https://www.concrete5.org) is a CMS that is free and open source. The library is included in the core.
|
||||||
|
|
||||||
|
* [engine7](https://github.com/QOXCorp/exengine) is PHP Open Source Framework. The Mobile_Detect class is included in
|
||||||
|
the engine.
|
||||||
|
|
||||||
|
* [Zikula](http://zikula.org) is a free and open-source Content Management Framework, which allows you to run
|
||||||
|
impressive websites and build powerful online applications. The core uses Mobile-Detect to switch to a special
|
||||||
|
Mobile theme, using jQueryMobile.
|
||||||
|
|
||||||
|
* [UserAgentInfo](https://github.com/quentin389/UserAgentInfo) is a PHP class for parsing user agent strings
|
||||||
|
(HTTP_USER_AGENT). Includes mobile checks, bot checks, browser types/versions and more.
|
||||||
|
Based on browscap, Mobile_Detect and ua-parser. Created for high traffic websites and fast batch processing.
|
||||||
|
Made by [quentin389](https://github.com/quentin389).
|
||||||
|
|
||||||
|
* [LJ Mobile Detect](https://github.com/lewisjenkins/craft-lj-mobiledetect) is a simple implementation of Mobile Detect
|
||||||
|
for Craft CMS. Made by [Lewis Jenkins](https://github.com/lewisjenkins).
|
||||||
|
|
||||||
|
* [Detect Craft](https://github.com/mmikkel/Detect-Craft) is a Craft CMS wrapper for the Mobile_Detect library. Made by [Mikkel Rummelhoff](https://github.com/mmikkel).
|
||||||
|
|
||||||
|
* [Grav Plugin Mobile Detect](https://github.com/dimitrilongo/grav-plugin-mobile-detect/) is a simple implementation
|
||||||
|
of Mobile Detect for Grav CMS. Made by [Dimitri Longo](https://github.com/dimitrilongo).
|
||||||
|
|
||||||
|
* [Mobile_Detect module for UliCMS](https://github.com/derUli/ulicms-Mobile_Detect).
|
||||||
|
Made by [derUli](https://github.com/derUli).
|
||||||
|
|
||||||
|
**Perl**
|
||||||
|
|
||||||
|
* [MobileDetect.pm](https://www.buzzerstar.com/development/) is a Perl module for Mobile Detect.
|
||||||
|
Made by [Sebastian Enger](https://devop.tools/).
|
||||||
|
|
||||||
|
**Python**
|
||||||
|
|
||||||
|
* [pymobiledetect](https://pypi.python.org/pypi/pymobiledetect) - Mobile detect python package.
|
||||||
|
Made by Bas van Oostveen.
|
||||||
|
|
||||||
|
**Ruby**
|
||||||
|
|
||||||
|
* [mobile_detect.rb](https://github.com/ktaragorn/mobile_detect) is a Ruby gem using the JSON data exposed by the
|
||||||
|
php project and implementing a basic subset of the API (as much as can be done by the exposed data).
|
||||||
|
Made by [Karthik T](https://github.com/ktaragorn).
|
||||||
|
|
||||||
|
**Go**
|
||||||
|
|
||||||
|
* [GoMobileDetect](https://github.com/Shaked/gomobiledetect) is a Go port of Mobile Detect class.
|
||||||
|
Made by [https://github.com/Shaked](Shaked).
|
||||||
|
|
||||||
|
|
||||||
|
**LUA**
|
||||||
|
|
||||||
|
* [ua-lua](https://github.com/robinef/ua-lua) is a small lib written in LUA providing device type detection.
|
||||||
|
ua-lua is detecting mobile or tablet devices based on user-agent inside nginx daemon.
|
||||||
|
Made by [Frédéric Robinet](https://github.com/robinef).
|
||||||
|
|
||||||
|
**.Net**
|
||||||
|
|
||||||
|
* [mobile-detect](https://github.com/validide/mobile-detect) is a .Net partial port written in C#.
|
||||||
|
Made by [Valentin Dide](https://github.com/validide).
|
||||||
|
|
||||||
|
**ColdFusion**
|
||||||
|
|
||||||
|
* [MobileDetect](https://github.com/GiancarloGomez/ColdFusion-MobileDetect) is a CFC port of the
|
||||||
|
Mobile_Detect PHP Library. Made by [Giancarlo Gomez](https://github.com/GiancarloGomez).
|
||||||
|
|
||||||
|
**Experiments** :bulb:
|
||||||
|
|
||||||
|
* [Mobile Detect Fast](https://bitbucket.org/lanaguani/mobile-detect-fast/) (See: [#474](https://github.com/serbanghita/Mobile-Detect/issues/474)) is a class to increase the performance of Mobile Detect lib. Made by [LanaGuani](https://github.com/lanaguanifw).
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"name": "mobiledetect/mobiledetectlib",
|
||||||
|
"type": "library",
|
||||||
|
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
|
||||||
|
"keywords": ["mobile", "mobile detect", "mobile detector", "php mobile detect", "detect mobile devices"],
|
||||||
|
"homepage": "https://github.com/serbanghita/Mobile-Detect",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Serban Ghita",
|
||||||
|
"email": "serbanghita@gmail.com",
|
||||||
|
"homepage": "http://mobiledetect.net",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.0.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.8.35||~5.7"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": ["Mobile_Detect.php"],
|
||||||
|
"psr-0": {
|
||||||
|
"Detection": "namespaced/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"archive": {
|
||||||
|
"exclude": ["docs", "examples", "export"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,983 @@
|
||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "4a5fd4cd7cc7247a6df7411b031d4845",
|
||||||
|
"packages": [],
|
||||||
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "doctrine/instantiator",
|
||||||
|
"version": "1.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/instantiator.git",
|
||||||
|
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
|
||||||
|
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3,<8.0-DEV"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"athletic/athletic": "~0.1.8",
|
||||||
|
"ext-pdo": "*",
|
||||||
|
"ext-phar": "*",
|
||||||
|
"phpunit/phpunit": "~4.0",
|
||||||
|
"squizlabs/php_codesniffer": "~2.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Marco Pivetta",
|
||||||
|
"email": "ocramius@gmail.com",
|
||||||
|
"homepage": "http://ocramius.github.com/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||||
|
"homepage": "https://github.com/doctrine/instantiator",
|
||||||
|
"keywords": [
|
||||||
|
"constructor",
|
||||||
|
"instantiate"
|
||||||
|
],
|
||||||
|
"time": "2015-06-14T21:17:01+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpdocumentor/reflection-docblock",
|
||||||
|
"version": "2.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||||
|
"reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
|
||||||
|
"reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dflydev/markdown": "~1.0",
|
||||||
|
"erusev/parsedown": "~1.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"phpDocumentor": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Mike van Riel",
|
||||||
|
"email": "mike.vanriel@naenius.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2016-01-25T08:17:30+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpspec/prophecy",
|
||||||
|
"version": "1.7.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpspec/prophecy.git",
|
||||||
|
"reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
|
||||||
|
"reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/instantiator": "^1.0.2",
|
||||||
|
"php": "^5.3|^7.0",
|
||||||
|
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
||||||
|
"sebastian/comparator": "^1.1|^2.0",
|
||||||
|
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpspec/phpspec": "^2.5|^3.2",
|
||||||
|
"phpunit/phpunit": "^4.8.35 || ^5.7"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.7.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Prophecy\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Konstantin Kudryashov",
|
||||||
|
"email": "ever.zet@gmail.com",
|
||||||
|
"homepage": "http://everzet.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Marcello Duarte",
|
||||||
|
"email": "marcello.duarte@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
||||||
|
"homepage": "https://github.com/phpspec/prophecy",
|
||||||
|
"keywords": [
|
||||||
|
"Double",
|
||||||
|
"Dummy",
|
||||||
|
"fake",
|
||||||
|
"mock",
|
||||||
|
"spy",
|
||||||
|
"stub"
|
||||||
|
],
|
||||||
|
"time": "2017-11-24T13:59:53+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/php-code-coverage",
|
||||||
|
"version": "2.2.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
|
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
|
||||||
|
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"phpunit/php-file-iterator": "~1.3",
|
||||||
|
"phpunit/php-text-template": "~1.2",
|
||||||
|
"phpunit/php-token-stream": "~1.3",
|
||||||
|
"sebastian/environment": "^1.3.2",
|
||||||
|
"sebastian/version": "~1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-xdebug": ">=2.1.4",
|
||||||
|
"phpunit/phpunit": "~4"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-dom": "*",
|
||||||
|
"ext-xdebug": ">=2.2.1",
|
||||||
|
"ext-xmlwriter": "*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.2.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sb@sebastian-bergmann.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
||||||
|
"keywords": [
|
||||||
|
"coverage",
|
||||||
|
"testing",
|
||||||
|
"xunit"
|
||||||
|
],
|
||||||
|
"time": "2015-10-06T15:47:00+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/php-file-iterator",
|
||||||
|
"version": "1.4.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
||||||
|
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
||||||
|
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sb@sebastian-bergmann.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
||||||
|
"keywords": [
|
||||||
|
"filesystem",
|
||||||
|
"iterator"
|
||||||
|
],
|
||||||
|
"time": "2017-11-27T13:52:08+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/php-text-template",
|
||||||
|
"version": "1.2.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
||||||
|
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
||||||
|
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Simple template engine.",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
||||||
|
"keywords": [
|
||||||
|
"template"
|
||||||
|
],
|
||||||
|
"time": "2015-06-21T13:50:34+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/php-timer",
|
||||||
|
"version": "1.0.9",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
||||||
|
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
||||||
|
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3.3 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sb@sebastian-bergmann.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Utility class for timing",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
||||||
|
"keywords": [
|
||||||
|
"timer"
|
||||||
|
],
|
||||||
|
"time": "2017-02-26T11:10:40+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/php-token-stream",
|
||||||
|
"version": "1.4.12",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
||||||
|
"reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
|
||||||
|
"reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.2"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Wrapper around PHP's tokenizer extension.",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
|
||||||
|
"keywords": [
|
||||||
|
"tokenizer"
|
||||||
|
],
|
||||||
|
"time": "2017-12-04T08:55:13+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/phpunit",
|
||||||
|
"version": "4.8.36",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
|
"reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
|
||||||
|
"reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-dom": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-pcre": "*",
|
||||||
|
"ext-reflection": "*",
|
||||||
|
"ext-spl": "*",
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"phpspec/prophecy": "^1.3.1",
|
||||||
|
"phpunit/php-code-coverage": "~2.1",
|
||||||
|
"phpunit/php-file-iterator": "~1.4",
|
||||||
|
"phpunit/php-text-template": "~1.2",
|
||||||
|
"phpunit/php-timer": "^1.0.6",
|
||||||
|
"phpunit/phpunit-mock-objects": "~2.3",
|
||||||
|
"sebastian/comparator": "~1.2.2",
|
||||||
|
"sebastian/diff": "~1.2",
|
||||||
|
"sebastian/environment": "~1.3",
|
||||||
|
"sebastian/exporter": "~1.2",
|
||||||
|
"sebastian/global-state": "~1.0",
|
||||||
|
"sebastian/version": "~1.0",
|
||||||
|
"symfony/yaml": "~2.1|~3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"phpunit/php-invoker": "~1.1"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"phpunit"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.8.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "The PHP Unit Testing framework.",
|
||||||
|
"homepage": "https://phpunit.de/",
|
||||||
|
"keywords": [
|
||||||
|
"phpunit",
|
||||||
|
"testing",
|
||||||
|
"xunit"
|
||||||
|
],
|
||||||
|
"time": "2017-06-21T08:07:12+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpunit/phpunit-mock-objects",
|
||||||
|
"version": "2.3.8",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
||||||
|
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
|
||||||
|
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/instantiator": "^1.0.2",
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"phpunit/php-text-template": "~1.2",
|
||||||
|
"sebastian/exporter": "~1.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.4"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-soap": "*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sb@sebastian-bergmann.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Mock Object library for PHPUnit",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
||||||
|
"keywords": [
|
||||||
|
"mock",
|
||||||
|
"xunit"
|
||||||
|
],
|
||||||
|
"time": "2015-10-02T06:51:40+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/comparator",
|
||||||
|
"version": "1.2.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||||
|
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
||||||
|
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"sebastian/diff": "~1.2",
|
||||||
|
"sebastian/exporter": "~1.2 || ~2.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.4"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.2.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jeff Welch",
|
||||||
|
"email": "whatthejeff@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Volker Dusch",
|
||||||
|
"email": "github@wallbash.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bernhard Schussek",
|
||||||
|
"email": "bschussek@2bepublished.at"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides the functionality to compare PHP values for equality",
|
||||||
|
"homepage": "http://www.github.com/sebastianbergmann/comparator",
|
||||||
|
"keywords": [
|
||||||
|
"comparator",
|
||||||
|
"compare",
|
||||||
|
"equality"
|
||||||
|
],
|
||||||
|
"time": "2017-01-29T09:50:25+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/diff",
|
||||||
|
"version": "1.4.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||||
|
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||||
|
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3.3 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Kore Nordmann",
|
||||||
|
"email": "mail@kore-nordmann.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Diff implementation",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/diff",
|
||||||
|
"keywords": [
|
||||||
|
"diff"
|
||||||
|
],
|
||||||
|
"time": "2017-05-22T07:24:03+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/environment",
|
||||||
|
"version": "1.3.8",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/environment.git",
|
||||||
|
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
|
||||||
|
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3.3 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.8 || ^5.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides functionality to handle HHVM/PHP environments",
|
||||||
|
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
||||||
|
"keywords": [
|
||||||
|
"Xdebug",
|
||||||
|
"environment",
|
||||||
|
"hhvm"
|
||||||
|
],
|
||||||
|
"time": "2016-08-18T05:49:44+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/exporter",
|
||||||
|
"version": "1.2.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||||
|
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
|
||||||
|
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3",
|
||||||
|
"sebastian/recursion-context": "~1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"phpunit/phpunit": "~4.4"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jeff Welch",
|
||||||
|
"email": "whatthejeff@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Volker Dusch",
|
||||||
|
"email": "github@wallbash.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bernhard Schussek",
|
||||||
|
"email": "bschussek@2bepublished.at"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Adam Harvey",
|
||||||
|
"email": "aharvey@php.net"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides the functionality to export PHP variables for visualization",
|
||||||
|
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
||||||
|
"keywords": [
|
||||||
|
"export",
|
||||||
|
"exporter"
|
||||||
|
],
|
||||||
|
"time": "2016-06-17T09:04:28+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/global-state",
|
||||||
|
"version": "1.1.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/global-state.git",
|
||||||
|
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
||||||
|
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.2"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-uopz": "*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Snapshotting of global state",
|
||||||
|
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
||||||
|
"keywords": [
|
||||||
|
"global state"
|
||||||
|
],
|
||||||
|
"time": "2015-10-12T03:26:01+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/recursion-context",
|
||||||
|
"version": "1.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
||||||
|
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
|
||||||
|
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.4"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jeff Welch",
|
||||||
|
"email": "whatthejeff@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Adam Harvey",
|
||||||
|
"email": "aharvey@php.net"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides functionality to recursively process PHP variables",
|
||||||
|
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
||||||
|
"time": "2016-10-03T07:41:43+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sebastian/version",
|
||||||
|
"version": "1.0.6",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sebastianbergmann/version.git",
|
||||||
|
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
|
||||||
|
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sebastian Bergmann",
|
||||||
|
"email": "sebastian@phpunit.de",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
||||||
|
"homepage": "https://github.com/sebastianbergmann/version",
|
||||||
|
"time": "2015-06-21T13:59:46+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/yaml",
|
||||||
|
"version": "v2.8.32",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
|
"reference": "968ef42161e4bc04200119da473077f9e7015128"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/968ef42161e4bc04200119da473077f9e7015128",
|
||||||
|
"reference": "968ef42161e4bc04200119da473077f9e7015128",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.9"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.8-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Yaml\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Yaml Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"time": "2017-11-29T09:33:18+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": {
|
||||||
|
"php": ">=5.0.0"
|
||||||
|
},
|
||||||
|
"platform-dev": []
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
**Reporting issues**
|
||||||
|
|
||||||
|
1. Specify the User-agent by visiting [http://demo.mobiledetect.net](http://demo.mobiledetect.net).
|
||||||
|
1. Specify the expected behaviour.
|
||||||
|
|
||||||
|
**Developing**
|
||||||
|
|
||||||
|
1. Fork Mobile Detect repository. See ["How to fork"](https://help.github.com/articles/fork-a-repo/#fork-an-example-repository) example.
|
||||||
|
1. `git clone https://github.com/[yourname]/Mobile-Detect.git`
|
||||||
|
1. `git add remote serbanghita https://github.com/serbanghita/Mobile-Detect.git`
|
||||||
|
1. `git remote -v` - You should see:
|
||||||
|
```
|
||||||
|
origin git@github.com:serbanghita/Mobile-Detect.git
|
||||||
|
serbanghita https://github.com/serbanghita/Mobile-Detect.git
|
||||||
|
```
|
||||||
|
1. `git checkout -b devel origin/devel`
|
||||||
|
1. `composer install`
|
||||||
|
1. Start working on your changes.
|
||||||
|
1. If you add new methods or make structural changes to the `Mobile_Detect.php` class
|
||||||
|
you need to add unit tests!
|
||||||
|
1. If you add new regexes make sure you commit the User-Agents in [`tests/providers/vendors`](https://github.com/serbanghita/Mobile-Detect/tree/master/tests/providers/vendors)
|
||||||
|
1. Run tests `vendor/bin/phpunit -v -c tests/phpunit.xml --coverage-text --strict-coverage --stop-on-risky`
|
||||||
|
1. `git status` or `git diff` - inspect your changes
|
||||||
|
1 `git stage .`
|
||||||
|
1. `git commit -m "[your commit message here]`
|
||||||
|
1. `git push origin devel`
|
||||||
|
1. Go to your repo on GitHub and ["Submit the PR"](https://help.github.com/articles/about-pull-requests/)
|
||||||
|
|
||||||
|
**New module, plugin, plugin or port**
|
||||||
|
|
||||||
|
[Submit new module, plugin, port](../../issues/new?title=New%203rd%20party%20module&body=Name,%20Link%20and%20Description%20of%20the%20module.)
|
||||||
|
including the following information:
|
||||||
|
* Module name
|
||||||
|
* Description
|
||||||
|
* Link
|
||||||
|
* Author
|
||||||
|
|
||||||
|
Or you can submit a PR against `README.md`.
|
||||||
|
|
||||||
|
**Website updates**
|
||||||
|
|
||||||
|
1. Our official website is hosted at [http://mobiledetect.net](http://mobiledetect.net).
|
||||||
|
1. The files are found on the `gh-pages` branch.
|
||||||
|
1. `git checkout gh-pages`
|
||||||
|
1. `npm install -g browser-sync`
|
||||||
|
1. `browser-sync start --s . --f . --port 3000 --reload-debounce 1500 --no-ui`
|
||||||
|
1. Go to `http://localhost:3000` and make changes.
|
||||||
|
1. Commit, push and submit the PR against `serbanghita:gh-pages`.
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
The first version of the script was developed in 2009 and it was hosted at https://code.google.com/p/php-mobile-detect/, it was a small project with around 30 stars. (Original blog post by Victor: http://victorstanciu.ro/detectarea-platformelor-mobile-in-php/)
|
||||||
|
|
||||||
|
In December 2011 it received a major update from the first version, an important number of issues were fixed, then 2.0 was launched. The new version marks a new mindset and also featuring tablet detection.
|
||||||
|
|
||||||
|
Throughout 2012 the script has been updated constantly and we have received tons of feedback and requests.
|
||||||
|
|
||||||
|
In July 2012 we moved the repository from Google Code to GitHub in order to quickly accommodate the frequent updates and to involve more people.
|
||||||
|
|
||||||
|
In August 2013 the library has 1800+ stargazers and support for: composer, PHPUnit tests, PSR standards and a new webpage http://mobiledetect.net
|
||||||
|
|
||||||
|
Mobile Detect library and user contributions are <a href="https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt">MIT Licensed</a>.
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
-------------delete this message-------------
|
||||||
|
* By submitting a new issue I acknowledge that I already read the README, CODE EXAMPLES and KNOWN LIMITATIONS.
|
||||||
|
* I understand that the current version `2.x` is only meant to detect `mobile` devices.
|
||||||
|
* Please post your User-Agent string! On a real device/s, the library is expected to work correctly.
|
||||||
|
-------------delete this message-------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Issue description**
|
||||||
|
|
||||||
|
|
||||||
|
**User-Agent(s)**
|
||||||
|
|
||||||
|
|
||||||
|
**Suggestions**
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
**Known limitations**
|
||||||
|
|
||||||
|
* Mobile Detect script was designed to detect `mobile` devices. Implicitly other devices are considered to be `desktop`.
|
||||||
|
* User-Agent and HTTP headers sniffing is a non reliable method of detecting a mobile device.
|
||||||
|
* If the mobile browser is set on `Desktop mode`, the Mobile Detect script has no way of knowing that the device is `mobile`.
|
||||||
|
* Some touchscreen devices (eg. Microsoft Surface) are tough to detect as mobile since they can be used in a laptop mode.
|
||||||
|
* Detecting the device brand (eg. Apple, Samsung, HTC) is not 100% reliable.
|
||||||
|
* We don't monitor the quality of the 3rd party tools based on Mobile Detect script.
|
||||||
|
We cannot guarantee that they are using the class properly or if they provide the latest version.
|
||||||
|
* Version `2.x` is made to be PHP 5.3 compatible because of the backward compatibility changes of PHP.
|
||||||
|
* There are hundreds of devices launched every month, we cannot keep a 100% up to date detection rate.
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Mobile Detect Library
|
||||||
|
* - export -
|
||||||
|
* =====================
|
||||||
|
*
|
||||||
|
* Use the resulting JSON export file in other languages
|
||||||
|
* other than PHP. Always check for 'version' key because
|
||||||
|
* new major versions can modify the structure of the JSON file.
|
||||||
|
*
|
||||||
|
* The result of running this script is the export.json file.
|
||||||
|
*
|
||||||
|
* @license Code and contributions have 'MIT License'
|
||||||
|
* More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Included nicejson function to beautify the result JSON file.
|
||||||
|
// This library is not mandatory.
|
||||||
|
if( file_exists(dirname(__FILE__).'/nicejson/nicejson.php') ) {
|
||||||
|
include_once dirname(__FILE__).'/nicejson/nicejson.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include Mobile Detect.
|
||||||
|
require_once dirname(__FILE__).'/../Mobile_Detect.php';
|
||||||
|
$detect = new Mobile_Detect;
|
||||||
|
|
||||||
|
$json = array(
|
||||||
|
// The current version of Mobile Detect class that
|
||||||
|
// is being exported.
|
||||||
|
'version' => $detect->getScriptVersion(),
|
||||||
|
|
||||||
|
// All headers that trigger 'isMobile' to be 'true',
|
||||||
|
// before reaching the User-Agent match detection.
|
||||||
|
'headerMatch' => $detect->getMobileHeaders(),
|
||||||
|
|
||||||
|
// All possible User-Agent headers.
|
||||||
|
'uaHttpHeaders' => $detect->getUaHttpHeaders(),
|
||||||
|
|
||||||
|
// All the regexes that trigger 'isMobile' or 'isTablet'
|
||||||
|
// to be true.
|
||||||
|
'uaMatch' => array(
|
||||||
|
// If match is found, triggers 'isMobile' to be true.
|
||||||
|
'phones' => $detect->getPhoneDevices(),
|
||||||
|
// Triggers 'isTablet' to be true.
|
||||||
|
'tablets' => $detect->getTabletDevices(),
|
||||||
|
// If match is found, triggers 'isMobile' to be true.
|
||||||
|
'browsers' => $detect->getBrowsers(),
|
||||||
|
// If match is found, triggers 'isMobile' to be true.
|
||||||
|
'os' => $detect->getOperatingSystems(),
|
||||||
|
// Various utilities. To be further discussed.
|
||||||
|
'utilities' => $detect->getUtilities()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$fileName = dirname(__FILE__).'/../Mobile_Detect.json';
|
||||||
|
// Write the JSON file to disk.11
|
||||||
|
// You can import this file in your app.
|
||||||
|
if (file_put_contents(
|
||||||
|
$fileName,
|
||||||
|
function_exists('json_format') ? json_format($json) : json_encode($json)
|
||||||
|
)) {
|
||||||
|
echo 'Done. Check '.realpath($fileName).' file.';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo 'Failed to write '.realpath($fileName).' to disk.';
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Little piece of PHP to make Mobile_Detect auto-loadable in PSR-0 compatible PHP autoloaders like
|
||||||
|
* the Symfony Universal ClassLoader by Fabien Potencier. Since PSR-0 handles an underscore in
|
||||||
|
* classnames (on the filesystem) as a slash, "Mobile_Detect.php" autoloaders will try to convert
|
||||||
|
* the classname and path to "Mobile\Detect.php". This script will ensure autoloading with:
|
||||||
|
* - Namespace: Detection
|
||||||
|
* - Classname: MobileDetect
|
||||||
|
* - Namespased: \Detection\MobileDetect
|
||||||
|
* - Autoload path: ./namespaced
|
||||||
|
* - Converted path: ./namespaced/Detection/MobileDetect.php
|
||||||
|
*
|
||||||
|
* Don't forget to use MobileDetect (instead of Mobile_Detect) as class in code when autoloading.
|
||||||
|
*
|
||||||
|
* Thanks to @WietseWind.
|
||||||
|
* For details please check: https://github.com/serbanghita/Mobile-Detect/pull/120
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Detection;
|
||||||
|
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Mobile_Detect.php';
|
||||||
|
|
||||||
|
class MobileDetect extends \Mobile_Detect {}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="PSR1">
|
||||||
|
<description>The PSR-2 coding standard extended.</description>
|
||||||
|
<rule ref="PSR1">
|
||||||
|
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz">
|
||||||
|
<exclude name="Squiz.Classes.ValidClassName.NotCamelCaps"/>
|
||||||
|
<exclude name="Squiz.Files.FileExtension.ClassFound"/>
|
||||||
|
<exclude name="Squiz.Commenting.ClassComment.TagNotAllowed"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.Strings.DoubleQuoteUsage">
|
||||||
|
<type>error</type>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Generic.Files.LineLength">
|
||||||
|
<properties>
|
||||||
|
<property name="lineLimit" value="140"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
||||||
Loading…
Reference in New Issue