Get GT Metrix information in Laravel Nova for you website pages. This package can also be used stand-alone.
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.
On the index page we show an avarage score of the `Pagespeed` score and the `Yslow` score.
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.
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.
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=...
- 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;
}
}
- 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,
];
}