marshmallow / gtmetrix
Get GT Metrix information in Laravel Nova for you website pages. This package can also be used stand-alone.
Installs: 5 945
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 1
Requires
- php: ^7.4|^8.0
- marshmallow/nova-fields-help: ^1.0
- philcook/gtmetrix: ^1.0 || ^2.0
This package is auto-updated.
Last update: 2024-09-05 10:10:34 UTC
README
GT Metrix for Laravel Nova
Get GT Metrix information in Laravel Nova for you website pages. This package can also be used stand-alone.
How does it work?
You create an account on GT Metrix. Once you have an API key you are good to go. You can add this library on every resource you want to, as long as it has a public url connected to it so we can get the GT Metrix score for that url.
Index view
On the index page we show an avarage score of the `Pagespeed` score and the `Yslow` score.
Detail view
On the detail view we will show the `Pagespeed` score and the `Yslow` score. You can click on them to go to the full report on the GTmetrix.com website.
Action
On the detail view you will be able to start an action. This action is queued so make sure you have a worker running. This is needed because the changes of a timeout are big if its busy at GTmetrix.
Once you've selected the action to get a new score you will get a popup telling you how much credits you have left and if you are sure you want to spend another credit.
Installation
Pull in the library using composer.
composer require marshmallow/gtmetrix
Update your .env
file and add the to env properties listed below.
GTMETRIX_EMAIL_ADDRESS=... GTMETRIX_API_KEY=...
Prepare your models
- Add
use Actionable;
anduse GTMetrix;
to your model.
namespace App; use Laravel\Nova\Actions\Actionable; use Marshmallow\GTMetrix\Traits\GTMetrix; class Post extends Model { use GTMetrix; use Actionable; // ...
- Add the public method
getFullPublicPath()
to your models. When getting the status from GT Metrix, we will use the result of this method as the url you want to check.
class Post extends Model { // ... public function getFullPublicPath() { return 'https://marshmallow.dev/' . $this->slug; } }
Prepare your nova resources
- Add
GTMetrixField::make('GT Metrix'),
as a field.
use Marshmallow\GTMetrix\GTMetrixField; public function fields(Request $request) { return [ ID::make(__('ID'), 'id')->sortable(), GTMetrixField::make('GT Metrix'), ]; }
- Add
new CheckGTMetrixScore,
as an action.
use Marshmallow\GTMetrix\Actions\CheckGTMetrixScore; public function actions(Request $request) { return [ new CheckGTMetrixScore, ]; }