Home > OS >  Cannot locate class of installed package
Cannot locate class of installed package

Time:07-29

I'm writing a laravel package which contains spatie/laravel-sitemap.

I already included several external packages and I didn't encountered any issues, but for some reason I'm not able to integrate this one.

What I did is the usual:

composer require spatie/laravel-sitemap

Then I have created a Console command that have as handle method the following content:

public function handle()
{
    SitemapGenerator::create(config('app.url'))
        ->configureCrawler(function (Crawler $crawler) {
            $crawler->ignoreRobots();
        })
        ->writeToFile(public_path('sitemap.xml'));

    $this->line('<info>Sitemap generated');
}

when I execute the command registered as:

php artisan myapp:sitemap

I get:

 Class "Spatie\Sitemap\SitemapGenerator" not found

The reference imported are:

use Spatie\Crawler\Crawler;
use Spatie\Sitemap\SitemapGenerator;

I also tried composer update and composer dump-autoload, same problem.

Any help?

CodePudding user response:

register package class in providers array in config/app.php

Spatie\Sitemap\SitemapServiceProvider;

in the bottom of app.php file

i hope it was useful.

CodePudding user response:

you can publish package using this.

php artisan vendor:publish --provider="Spatie\Sitemap\SitemapServiceProvider" --tag=sitemap-config

then

composer dump-autoload

for more details please check the document https://github.com/spatie/laravel-sitemap under Configuration

  • Related