Package Data | |
---|---|
Maintainer Username: | CODEheures |
Maintainer Contact: | webmaster@codeheures.fr (Sylvain Gagnot) |
Package Create Date: | 2017-03-30 |
Package Last Update: | 2018-02-13 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2025-05-03 03:13:06 |
Package Statistics | |
---|---|
Total Downloads: | 49 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Laravel-utils is a toolbox that allow:
This API allow you to serve geolocation infos to client (useful for xhtmlrequests).
You can also use static function for a server side processing.
with Ip on URL
http://yourproject/geoIp/geoByIp/82.246.117.210
//result example
{"ip":"82.246.117.210","city":"Joué-lès-Tours","region":"Centre","country":"FR","loc":"47.3522,0.6691","postal":"37300"}
without Ip : try first to use your public Ip. If not public, try to use config('codeheuresUtils.ipTest'). If not available Ip finally use a static IP
http://yourproject/geoIp/geoByIp
//result example
{"ip":"82.246.117.210","city":"Joué-lès-Tours","region":"Centre","country":"FR","loc":"47.3522,0.6691","postal":"37300"}
With or without IP on url (see above)
http://yourproject/geoIp/geoLocByIp
//result example
["47.3522","0.6691"]
With or without IP on url (see above)
http://yourproject/geoIp/countryByIp
//result example
"FR"
//result example
{"error":"unknow IP"}
$ip = "82.246.117.210"
if(filter_var($ip, FILTER_VALIDATE_IP)) {
try {
[
'all_infos' => Codeheures\LaravelUtils\Traits\Geo\GeoUtils::getGeoByIp($ip),
'loc_infos' => Codeheures\LaravelUtils\Traits\Geo\GeoUtils::getGeoLocByIp($ip),
'country_info' => Codeheures\LaravelUtils\Traits\Geo\GeoUtils::getCountryByIp($ip)
]
} catch(...) { ...}
}
//result example
[
'all_infos' => ["ip"=>"82.246.117.210","city"=>"Joué-lès-Tours","region"=>"Centre","country"=>"FR","loc"=>"47.3522,0.6691","postal"=>"37300"],
'loc_infos' => ["47.3522","0.6691"],
'country_info' => "FR"
]
with only request: return your IP if public or the static class var Ip
$ip = Codeheures\LaravelUtils\Traits\Tools\Ip::getNonPrivateIpByRequest($request));
//result example
"82.246.117.210"
with a second param: return your IP if public, or param if public IP, or finally the static class var Ip
$ip = Codeheures\LaravelUtils\Traits\Tools\Ip::getNonPrivateIpByRequest($request, '82.246.117.210'));
//result example
"82.246.117.210"
$browser = Codeheures\LaravelUtils\Traits\Tools\Browser::getBrowserName();
//result example
"chrome"
Example: get the enum values of the currencies column of the priceTable
$listEnumValues = Codeheures\LaravelUtils\Traits\Tools\Database::getEnumValues('priceTable','currencies');
//result example
['dollard', 'euro', 'yen', 'bitcoins']
The where clauses is a equal clauses
Codeheures\LaravelUtils\Traits\Tools\Database::getCountItems('customer',['name'=>'paul', 'age'=>'18']);
//result example
172
Locale Tools allow you to obtain various information of locales. This suite of tools is used in a powerful middleware to find the best locale adapted to the user. When the middleware find the best locale, this is shared in a config('runtime.locale') variable accessible throughout the application. You can use it to translate your application for the user.
without restriction of availables languages (find in codeheuresUtils.availableLocales config file):
Codeheures\LaravelUtils\Traits\Tools\Locale::listLocales();
//result example
[ "af" => [
"code" => "af",
"name" => "afrikaans",
"region" => ""
],
"af_NA" => [
"code" => "af_NA",
"name" => "afrikaans (Namibie)",
"region" => "namibie"
],
...
]
with restriction:
Codeheures\LaravelUtils\Traits\Tools\Locale::listLocales();
//result example
[
"en" => [
"code" => "en",
"name" => "anglais",
"region" => ""
]
"en_001" => [
"code" => "en_001",
"name" => "anglais (Monde)",
"region" => "monde"
]
"en_150" => [
"code" => "en_150",
"name" => "anglais (Europe)",
"region" => "europe"
]
...
]
Codeheures\LaravelUtils\Traits\Tools\Locale::existLocale('fr_FR');
//result example
true
Codeheures\LaravelUtils\Traits\Tools\Locale::isValidLocale('fr_FR');
//result example
"fr_FR"
Codeheures\LaravelUtils\Traits\Tools\Locale::getFirstLocaleByCountryCode('ca');
//result example
"en_CA"
Codeheures\LaravelUtils\Traits\Tools\Locale::composeLocale('fr', 'CA');
//result example
"fr_CA"
Codeheures\LaravelUtils\Traits\Tools\Locale::getDefaultLocale();
//result example
"en_US"
Currencies Tools allow you to obtain various information of currencies. It use MoneyPhp and config('runtime.locale') This suite of tools is used in a powerful middleware to find the best currency adapted to the user. When the middleware find the best currency, this is shared in a config('runtime.currency') variable accessible throughout the application. You can use it to manage prices in your application.
Codeheures\LaravelUtils\Traits\Tools\Currencies::isAvailableCurrency("EUR")
//result example
true
Codeheures\LaravelUtils\Traits\Tools\Currencies::getSubUnit("EUR")
//result example
2
Codeheures\LaravelUtils\Traits\Tools\Currencies::listCurrencies("fr_CA")
//result example
[
"XAF" => [
"code" => "XAF",
"symbol" => "XAF",
"subunit" => 0
],
"CAD" => [
"code" => "CAD",
"symbol" => "$",
"subunit" => 2
],
...
]
Codeheures\LaravelUtils\Traits\Tools\Currencies::getSymbolByCurrencyCode("CAD", "fr)
//result example
"$CA"
Codeheures\LaravelUtils\Traits\Tools\Currencies::getDefaultMoneyByComposeLocale("fr_CA", "EUR")
//result example
"CAD"
Codeheures\LaravelUtils\Traits\Tools\Locale::getDefaultCurrency();
//result example
"EUR"
Installation of middlawares allow you to use config('runtime.ip'), config('runtime.locale') & config('runtime.currency') all over the application controllers ans views.
config('runtime.locale') & config('runtime.currency') can be saved and read in User attribute 'locale' & 'currency'
config('runtime.ip') //your public Ip or fallback ip (see above PHP Tool: Get valid public IP)
config('runtime.locale') //the RuntimeLocale middlware look for the best local and assign to this
config('runtime.currency') //the RuntimeLocale middlware look for the best currecny and assign to this
require : {
"laravel/framework": "5.4.*",
"codeheures/laravel-utils": "^1.0"
}
composer update
Codeheures\LaravelUtils\LaravelUtilsServiceProvider::class,
protected $middlewareGroups = [
'web' => [
...
\Codeheures\LaravelUtils\Http\Middleware\RuntimeIp::class,
\Codeheures\LaravelUtils\Http\Middleware\RuntimeLocale::class,
\Codeheures\LaravelUtils\Http\Middleware\RuntimeCurrency::class,
\Codeheures\LaravelUtils\Http\Middleware\SetLocaleByRuntime::class, //optionnal
],
php artisan vendor:publish --provider="Codeheures\LaravelUtils\LaravelUtilsServiceProvider"
In config file you can change
Optionnal: add "locale" and/or "currency" attribute to User to manage saving preferences locale in your app
http://yourproject/geoIp/refreshDb
Congratulations, you have successfully installed laravel-utils !
This product includes GeoLite2 data created by MaxMind, available from http://www.maxmind.com.
This product use GeoIp2 on apache2 Licence https://github.com/maxmind/GeoIP2-php.
This product use Moneyphp on MIT Licence https://github.com/moneyphp/money.
This software is provided "as is" without warranty of any kind, either express or implied, regarding the software package, its merchantability, or its fitness for any particular purpose.
This is free software, licensed under the Apache License, Version 2.0.