PHPackages                             madbox-99/laravel-google-reviews - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. madbox-99/laravel-google-reviews

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

madbox-99/laravel-google-reviews
================================

Fetch and display Google Places reviews in Laravel and Filament apps.

v2.0.0(1mo ago)011MITPHPPHP ^8.3CI failing

Since Jul 9Pushed 1mo agoCompare

[ Source](https://github.com/MadBox-99/laravel-google-reviews)[ Packagist](https://packagist.org/packages/madbox-99/laravel-google-reviews)[ RSS](/packages/madbox-99-laravel-google-reviews/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (12)Versions (4)Used By (0)

Laravel Google Reviews
======================

[](#laravel-google-reviews)

Fetch and display [Google Places](https://developers.google.com/maps/documentation/places/web-service/place-details) reviews in Laravel and Filament apps. Configurable via config, `.env`, or a Filament settings page, with a publishable Blade component for display.

> **Heads up:** Google's Places API returns up to **5 reviews** per place plus the aggregate rating (average + total count). This package cannot exceed that — it is an API limitation.

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 12 or 13
- Filament 4 or 5 (optional — only needed for the admin settings page)

Install
-------

[](#install)

```
composer require cegem360/laravel-google-reviews
```

Publish the config:

```
php artisan vendor:publish --tag=google-reviews-config
```

If you use the `database` driver (the default), publish and run the migrations:

```
php artisan vendor:publish --tag=google-reviews-migrations
php artisan migrate
```

Add your credentials to `.env`:

```
GOOGLE_PLACES_API_KEY=your-api-key
GOOGLE_PLACES_PLACE_ID=your-place-id
GOOGLE_REVIEWS_DRIVER=database   # or: cache
```

Configuration
-------------

[](#configuration)

`config/google-reviews.php`:

KeyEnvDefaultPurpose`api_key``GOOGLE_PLACES_API_KEY`—Google Places API key (**env/config only**, never stored in the DB).`place_id``GOOGLE_PLACES_PLACE_ID`—Place ID (string, or an array of IDs).`driver``GOOGLE_REVIEWS_DRIVER``database``database` (persisted + moderatable) or `cache`.`cache_ttl``GOOGLE_REVIEWS_CACHE_TTL``86400`Cache lifetime in seconds (cache driver).`language``GOOGLE_REVIEWS_LANGUAGE``hu`Language code requested from Google.Settings resolve in the order **DB (Filament UI) → config file → env default**, so any of the three configuration methods works. The API key is the exception: it is always read from env/config for security.

Sync reviews
------------

[](#sync-reviews)

Fetch fresh reviews from Google and store them:

```
php artisan google-reviews:sync                # all configured place ids
php artisan google-reviews:sync "ChIJ..."      # a specific place id
```

Schedule it in `routes/console.php`:

```
use Illuminate\Support\Facades\Schedule;

Schedule::command('google-reviews:sync')->daily();
```

Display
-------

[](#display)

Drop the component anywhere in a Blade view:

```

{{-- override the place and cap the number shown --}}

```

Publish the view to customize the markup (Tailwind-based by default):

```
php artisan vendor:publish --tag=google-reviews-views
```

Programmatic access
-------------------

[](#programmatic-access)

```
use Madbox99\GoogleReviews\Facades\GoogleReviews;

$place = GoogleReviews::for();        // read stored/cached reviews (nullable)
$place = GoogleReviews::refresh();    // fetch fresh from Google and store

$place->name;                // string|null
$place->rating;              // float|null (average)
$place->userRatingsTotal;    // int|null
foreach ($place->reviews as $review) {
    $review->authorName;     // string
    $review->rating;         // int (0-5)
    $review->text;           // string
    $review->publishedAt;    // DateTimeImmutable|null
}
```

Filament
--------

[](#filament)

The package ships an optional Filament 4/5 plugin that adds a **Google Reviews** settings page (edit place ID, driver, cache TTL, language; the API key is shown read-only since it lives in `.env`).

Register it in your panel provider:

```
use Madbox99\GoogleReviews\Filament\GoogleReviewsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel->plugin(GoogleReviewsPlugin::make());
}
```

The settings page persists to a `google_review_settings` table, so publish and run the migrations if you haven't already:

```
php artisan vendor:publish --tag=google-reviews-migrations
php artisan migrate
```

Testing
-------

[](#testing)

```
composer install
./vendor/bin/pest
```

License
-------

[](#license)

MIT

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

3

Last Release

49d ago

Major Versions

v1.0.1 → v2.0.02026-07-10

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/72586295?v=4)[Zoltán Tamás Szabó](/maintainers/MadBox-99)[@MadBox-99](https://github.com/MadBox-99)

---

Top Contributors

[![MadBox-99](https://avatars.githubusercontent.com/u/72586295?v=4)](https://github.com/MadBox-99 "MadBox-99 (24 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/madbox-99-laravel-google-reviews/health.svg)

```
[![Health](https://phpackages.com/badges/madbox-99-laravel-google-reviews/health.svg)](https://phpackages.com/packages/madbox-99-laravel-google-reviews)
```

###  Alternatives

[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k161.4k2](/packages/mike-bronner-laravel-model-caching)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[masterix21/laravel-licensing

Laravel licensing package with polymorphic assignment to any model, activation keys, expirations/renewals, and seat control via LicenseUsage. Supports offline verification with public-key–signed tokens, a CLI to generate/rotate/revoke keys, and an extensible architecture via config and contracts.

1614.1k4](/packages/masterix21-laravel-licensing)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
