- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试添加一个自定义用户代理,用于解析自定义移动应用程序用户代理以及现有的解析器。我试着关注这里的问题:https://github.com/matomo-org/device-detector/issues/5931但不能正确地做到这一点。
目录结构
UAParserService
|
|_ composer.json
|_ Vendor
|_ index.php
|_ custom_apps.yml
|_ CustomAppParser.php
|_ DeviceDetector.php
index.php
<?php
require_once "vendor/autoload.php";
use DeviceDetector\DeviceDetector;
use DeviceDetector\Parser\Client\CustomAppParser;
$userAgent = "MyApp/1.0.0 (Linux; Android 9; ONEPLUS A6010)"; // Android App
$dd = new DeviceDetector($userAgent);
$parser = new CustomAppParser();
$dd -> addClientParser($parser);
$dd -> parse();
// Check if user agent is a bot
$isBot = $dd -> isBot();
if($isBot) {
echo json_encode(["is_bot" => $isBot]);
}
else {
$clientInfo = $dd->getClient();
$osInfo = $dd->getOs();
$device = $dd->getDeviceName();
$brand = $dd->getBrandName();
$model = $dd->getModel();
echo json_encode([
"is_bot" => $isBot,
"client_info" => $clientInfo,
"os_info" => $osInfo,
"device_type" => $device,
"device_brand" => $brand,
"device_model" => $model,
], JSON_PRETTY_PRINT);
}
DeviceDetector.php
<?php
namespace UAParserService\DeviceDetector;
use function array_pop;
use function array_unshift;
class DeviceDetector extends \DeviceDetector\DeviceDetector
{
public function addClientParser($parser){
parent::addClientParser($parser);
$item = array_pop($this -> clientParsers);
array_unshift($this -> clientParsers, $item);
}
}
CustomAppParser.php
<?php
namespace DeviceDetector\Parser\Client;
class CustomAppParser extends ClientParserAbstract
{
protected $fixtureFile = "custom_apps.yml";
protected $parserName = "mobile app";
protected function getRegexesDirectory()
{
return dirname(__DIR__);
}
}
composer.json
{
"require": {
"piwik/device-detector": "3.11.7",
"ext-json": "*"
}
}
我对命名空间非常不友好,所以我可能做错了。
( ! ) Fatal error: Uncaught Error: Class 'DeviceDetector\Parser\Client\FurryAppParser' not found in F:\web projects\project1\UAParserService\index.php on line 17
( ! ) Error: Class 'DeviceDetector\Parser\Client\CustomAppParser' not found in F:\web projects\project1\UAParserService\index.php on line 17
最佳答案
首先,您应该考虑将自己的类放入专用文件夹中,例如src
.
之后你可以添加
"autoload": {
"psr-4": {
"UAParserService\\": "src/"
}
}
composer.json
并使用
composer dump-autoload
更新自动加载器命令。
src
中的所有类(class)文件夹必须以 UAParserService\
开始其命名空间UAParserService
在为您的类(class)搜索文件夹时,元素将被删除 DeviceDetector
类有
namespace UAParserService\DeviceDetector;
它必须放入
scr/DeviceDetector/DeviceDetector.php
文件。
CustomAppParser
也是如此类(class)。
DeviceDetector
在
index.php
你应该更新
use
致
use UAParserService\DeviceDetector\DeviceDetector;
的声明
->
周围使用空格方法调用的运算符;)。至少要么到处使用它,要么根本不使用它......
关于php - 扩展 matomo/piwik 设备检测器类以添加新的客户端解析器(命名空间问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539720/
我正在尝试从我的 piwik 实例获取一周中每一天的每日访问量。 目前,此查询正在返回我整周所有访问的总和。有什么办法可以将其分成几天? http://piwikexample.com/?module
在 piwik 上,我使用 localhost 作为测试网站。当我从我的计算机输入 localhost 时,piwik 会正确更新其统计信息,但是当同一 LAN 中的另一个人(同事)在我的 IP 地址
我是 piwik 的新手并试图导入一堆日志。我需要有关日志格式正则表达式的帮助。日志中的示例行是: "1.1.1.1" 2.2.2.2 - myuser [09/Dec/2012:04:03:29 -
有没有简单的方法可以通过piwik中的站点ID更改事件操作名称? 或者一切都必须在数据库中手动完成? 或者将一个 Action 名称转移到另一个 Action 名称? 有一种方法可以通过站点 ID 删
我在我的应用程序中配置了 Piwik 分析。 我将此跟踪代码插入到正文标记中: var _paq = _paq || []; _paq.push(["setDomains", ["*.mywebs
可以生成一个图像(php gd),其中包含我的piwik跟踪站点的访问者数量。 我想在外部站点中嵌入一个标记计数器。在此页面上,不允许使用iframe或Flash。所以我不能集成普通的piwik小部件
我个人不使用 Piwik。我开发了一个 JavaScript 工具/库,用于在 SharePoint 中创建菜单系统,并且使用我的库的人询问是否合并 Piwik。 从我读到的内容中,我可以看到 Piw
我有很多子域,我想要每个子域的事件数据。我所做的就是为每个子域执行这样的 HTTP 请求: /? idSite=6& token_auth=out-outh-token& format=json& d
我已经设置了一个 Piwik 服务器并在我的网站之一中添加了跟踪代码。EX:- (http://.mobolt.com)我在 http://.mobolt.com 上没有看到 JS 错误当我点击 ht
我正在设置 piwik 来跟踪网络分析(这是第一次)我将插入 PIWIK 提供的以下初始跟踪代码: var _paq = _paq || []; (functi
我正在构建的网站有一个基于 jquery 的搜索输入,它隐藏或显示与您输入的任何内容相匹配的元素: http://pieline.net/ 没有提交按钮 - 结果实时显示。有什么方法可以跟踪用户在此框
我想跟踪电子邮件时事通讯,尤其是 piwik。现在给出了以下图像跟踪代码 ( source ): 我想添加类似_rcn 的东西来附加campaign , 分配电子邮件开头。代码可能看起来像这样(
我使用 piwik 来跟踪我的网页访问,它运行良好。我刚刚将这段代码添加到我页面上的 javascript 中: var _paq = _paq || []; _paq.push(['tr
每当我尝试访问我的 Piwik analytics 时,就会出现一个奇怪的错误. 几个月来它一直运行良好,但我没有升级任何东西。唯一的变化是,由于未付款的困惑,我的帐户被“暂停”了几周。在此期间,我的
我正在使用 piwik,但我对事件报告有疑问。我希望为每个类别提供相应的操作,并为每个操作提供相应的名称。像这样:类别 -> 操作 -> 名称 因为现在我只能看到事件的 2 个维度。那么有可能有3个维
Piwik(分析软件),通过在 之前包含一个小脚本来工作: var _paq = _paq || []; _paq.push(['trackPageView']); _paq.push
构建单页/胖客户端应用程序,我想知道使用 http://piwik.org/ 包含和跟踪的最佳实践是什么 我希望以一种架构合理的方式使用 Piwik,并且将来可以用不同的库替换。 使用 Piwik 进
在 piwik 中,是否可以根据来自跟踪器的自定义变量过滤访问者图表?我想在第一个自定义变量槽中显示具有 70 值的所有访问的演变图。我试过这个电话 index.php?module=API&meth
我正在使用 Piwik 分析我网站上的用户操作,当网站显示在浏览器(在 PC、Mac 和手机浏览器上)时,一切正常。 但是,当我在 PhoneGap 应用程序中浏览相同的页面(其中包含 piwik 代
我通过将 piwik 复制到我的 www 文件夹中来安装 piwik。 将 javascript 跟踪代码粘贴到单独的文件(例如 piwik.js)中,并将其放置在我的本地项目 www\myproj\
我是一名优秀的程序员,十分优秀!