agp / base-utils
包包含用于所有项目的基类。
Requires
- php: >=7.3
- agp/log: ^1.0
- agp/login: ^1.0
- agp/webhook: ^1.0
- minishlink/web-push: ^6.0
- tremby/laravel-git-version: ^1.2
- dev-master
- 1.1.3
- 1.1.2
- 1.1.1
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-develop
- dev-release/1.1.1
- dev-release/1.1.0
This package is not auto-updated.
Last update: 2024-09-20 05:26:20 UTC
README
Base Utils
介绍
为Laravel提供实用功能和基类包。
包含
- 类 GEOIP:通过IP数据返回位置。
- 类 Utils:包含在项目中使用的通用函数。
- 模型:包含 BaseEntity, BaseRepository, BaseObserver, BaseService 类。
- BaseObserver:包含实体添加、修改和删除的日志记录,并管理webhook的触发。
- 特质:包含在项目中使用的特质。
- 标准服务工作者。
- 标准清单。
- 推送通知服务。
安装
检查该包的依赖项。
为了该项目的良好运行,必须遵循AGP文件结构,Laravel模块化项目。
在您想要安装包的项目中执行
$ composer require agp/base-utils
$ php artisan config:cache
清单
介绍
manifest.json是一个JSON文件,它向浏览器提供有关用户移动设备或桌面上的网站的信息。拥有清单是Chrome要求显示“添加到主页”提示的条件。
当用户将您的网络应用添加到主页或添加到应用启动器时,manifest.json提供给浏览器以处理您的网站名称、图标等。
manifest.json文件包含有关您网站应用名称的详细信息、它应该使用的图标、它应该在启动时启动的start_url以及许多其他详细信息。
安装
首先您需要检查是否存在,如果不存在则创建
-
在config.php中需要以下三个参数
'api_client_token' => env('API_CLIENT_TOKEN', null), 'id_app' => env('ID_APP', '1'), 'api_agpadmin' => env('API_AGPADMIN'), 'device_cookie' => env('LOGIN_DEVICE_COOKIE', 'device'),
-
在login.php中也需要以下参数
'device_cookie' => env('LOGIN_DEVICE_COOKIE', 'device'),
在所有变量检查或添加后,您可以从项目中开始安装包
$ php artisan install:service-js
安装完成后,您需要确保您的项目使用它。
为此,只需在您的app.blade.php
的<head>
部分添加链接标签,如下例所示
<head> <link rel="manifest" href="{{asset('manifest.json')}}"> ... </head>
您可以确认并完成,一个标准清单已复制到您的项目public
目录。
自定义
"start_url": "/", // Uma string que representa o URL de início do aplicativo da web. "description": "Um projeto AGP", // Uma string na qual os desenvolvedores podem explicar o que o aplicativo faz. "background_color": "#FFFFFF", // Define uma cor de fundo de espaço reservado para a página do aplicativo a ser exibida antes que seu stylesheet seja carregado. "theme_color": "#FFFFFF", // Uma string que define a cor padrão do tema para o aplicativo. "display": "standalone", // Uma string que determina o modo de exibição preferido dos desenvolvedores para o site.
附加
我们还建议您将以下HTML标签包含在您的app.blade.php
中
<head> <link rel="manifest" href="{{asset('manifest.json')}}"> <link rel="apple-touch-icon" sizes="192x192" href="{{asset('media/<NomeDoProjeto>/icons/icon-420.png')}}"> <link rel="apple-touch-startup-image" href="{{asset('media/<NomeDoProjeto>/logos/png/splashscreen.png')}}"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-title" content="{{ config('app.name') }} • <Sub titulo>"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="theme-color" content="#FFFFFF"> <!--Uma string que define a cor padrão do tema para o aplicativo.--> <meta name="description" content="<Slogan do app>"/> <meta property="og:title" content="{{ config('app.name') }} • <Sub titulo>"/> <meta property="og:url" content="{{ config('app.url') }}"/> <meta property="og:image" content="{{asset(media/<NomeDoProjeto>/logos/png/logo-share-green.png")}}"/> <meta property="og:image:url" content="{{asset('media/<NomeDoProjeto>/logos/png/logo-share-green.png)}}"/> <meta property="og:image:secure_url" content="{{asset('media/<NomeDoProjeto>/logos/png/logo-share-blue.png)}}"/> ... </head>
服务工作者
介绍
服务工作者是一种基于事件的特殊工作者。实际上,它是一个可以控制与其关联的网站页面的JavaScript文件,拦截和修改请求以及导航。
服务工作者将所需的资源存储在浏览器缓存中,当用户再次访问应用程序时,服务工作者会检查缓存并在检查网络之前返回结果。
它管理推送通知并帮助创建使用浏览器缓存API的离线Web应用程序。
安装
首先您需要检查是否存在,如果不存在则创建
-
在config.php中需要以下四个参数
'api_client_token' => env('API_CLIENT_TOKEN', null), 'id_app' => env('ID_APP', '1'), 'api_agpadmin' => env('API_AGPADMIN'), 'device_cookie' => env('LOGIN_DEVICE_COOKIE', 'device'),
在所有变量检查或添加后,您可以从项目中开始安装包
$ php artisan install:service-js
该命令将
media
和js
文件从media
和js
复制到项目的resources
中。
还需要安装样式和js文件。在您的项目中,您需要在项目根目录下的webpack.mix.js中添加代码行。
mix.scripts('resources/js/service-workers.js', 'public/sw.js');
然后只需执行
$ yarn run dev -- ou -- $ npm run dev
###自定义
在您的项目目录/resources/js中创建了一个名为service-workers.js的文件,其中包含一个名为assets
(文件)和routes
(路由)的变量,这些变量将被存储在浏览器的缓存中。
### 自定义离线视图
$ php artisan vendor:publish --tag=base-utils-config
创建了一个配置文件,只需替换默认视图即可!
推送使用
要使用推送通知,您需要完成上一个步骤(ServiceWorker安装)。
激活
消息激活视图,例如可以添加到_quick-pane.blade.php
中。
@include('BaseUtils::push.ativacao')
用户帮助模态框视图;
@include('BaseUtils::push.help')
通知示例
您可以通过创建Laravel通知类来通知有订阅的用户;
$ php artisan make:notification <NomeDaNotificação>
创建通知类后,您需要添加如以下示例中的推送方法。
<?php namespace App\Notifications; use Agp\BaseUtils\Notifications\PushChannel; class ExampleNotify extends Notification { use Queueable; private $user; private $mensagem; /** * Create a new notification instance. * * @return void */ public function __construct($user, $mensagem = 'Exemplo de notificação via Push') { $this->user = $user; $this->mensagem = $mensagem; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [PushChannel::class]; } /** * Get the push representation of the notification. * * @param mixed $notifiable * @return array */ public function toPush($notifiable) { return [ 'notificacao' => $this->mensagem, 'dispositivos' => $this->user->dispositivos->whereNotNull('subscricao') // Array de UsuariosDispositivos; ]; } }
该包会移除未成功返回响应的设备的子订阅。
注意事项
好了,现在就取决于您了。创建出色的通知! 😉
由Richard Pereira Cardoso
项目Git
讨论论坛
版权
AGP @ 2020