Comments (2)
Is there any reason isMobile() method doesn't cache matches in matchDetectionRulesAgainstUA()?
This is a mistake on my part, I should have cached this, but probably at that point I realized that my cache key should be based on userAgent
string value. In matchUAAgainstKey
I used the name of the method which is probably not that great to begin with. I probably avoided to create a cache key based on User Agent string
+ HTTP headers array
If you call isMobile() and then isIphone it'll run match again while it could be cached.
Also if you run isIPhone() the result will be cached, but then if you run isMoible() the cache won't be used.
As a side note - I'm not sure why match() method is public. it is not useful since by itself it doesn't detect anything.
Should be protected, probably I was thinking to allow people to use custom regexes.
Might be a good idea to make it protected
and then whoever extends MobileDetect
can work with it.
This is clearly a bug. setUserAgent
resets the $cache.
I will fix this and cache based on User Agent string
+ HTTP headers array
from mobile-detect.
I have fixed this in https://github.com/serbanghita/Mobile-Detect/releases/tag/4.8.01
This is a major refactor, I added support for PSR-16 cache
@npelov Nikolay, thank you for the detailed write-up, it helped me get motivated to release this new version with fixes.
from mobile-detect.
Related Issues (20)
- Use getters (ie. getTabletDevices()) HOT 4
- Not Work Properly HOT 3
- Safari on iPad: completely incorrect reports HOT 1
- Trying to get in touch regarding a security issue HOT 2
- MD v 3.74 - PHP Parse error: syntax error, unexpected 'array' (T_ARRAY), expecting function (T_FUNCTION) or const (T_CONST) in Mobile_Detect.php on line 245 HOT 1
- How to check Desktop site setting On OR Off in mobile browser
- isEdge() return false on Edge Browser
- 4.8.x HOT 4
- isMobile and IsTablet failing on ios devices - using safari HOT 1
- Port functionality from `jenssegers/agent` HOT 11
- Restore implicit use of `HTTP_USER_AGENT` in 4.8.x branch HOT 3
- Chrome's user agent reduction results in no longer detecting Android tablets as a tablet device HOT 1
- Getting a Parse error on the latest version (4.8.03) on PHP 7.1.33 HOT 4
- Google SERP links open as the mobile version HOT 5
- [bug] No user-agent has been set HOT 18
- [bug] breaking change pushed as patch HOT 3
- Need advice on `No valid user-agent has been set` PHP Fatal error HOT 4
- Tablet IOS detection HOT 1
- I dont understand HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mobile-detect.