2017 © Pedro Peláez
 

library laravel-link-checker

Check all links in a Laravel app

image

spatie/laravel-link-checker

Check all links in a Laravel app

  • Thursday, April 26, 2018
  • by Spatie
  • Repository
  • 11 Watchers
  • 219 Stars
  • 19,874 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 28 Forks
  • 2 Open issues
  • 24 Versions
  • 19 % Grown

The README.md

THIS PACKAGE IS NOT MAINTAINED ANYMORE, (*1)

Check all links in a Laravel app

Latest Version on Packagist Software License Build Status StyleCI Quality Score Total Downloads, (*2)

This package provides a command that can check all links on your laravel app. By default, it will log all links that do not return a status code in the 200- or 300-range. There's also an option to mail broken links., (*3)

If you like this package, take a look at the other ones we have made., (*4)

Install

You can install the package via composer: ``` bash composer require spatie/laravel-link-checker, (*5)


Next, you must install the service provider: ```php // config/app.php 'providers' => [ ... Spatie\LinkChecker\LinkCheckerServiceProvider::class, ];

The service provider will automatically be registered., (*6)

You can optionally publish the config-file with:, (*7)

php artisan vendor:publish --provider="Spatie\LinkChecker\LinkCheckerServiceProvider" --tag="config"

This is the contents of the published config file:, (*8)

return [

    /*
     * The base url of your app. Leave this empty to use
     * the url configured in config/app.php
     */
    'url' => '',

    /*
     * The profile determines which links need to be checked.
     */
    'default_profile' => Spatie\LinkChecker\CheckAllLinks::class,

    /*
     * The reporter determines what needs to be done when the
     * the crawler has visited a link.
     */
    'default_reporter' => Spatie\LinkChecker\Reporters\LogBrokenLinks::class,

    /*
     * To speed up the checking process we'll fire off requests concurrently.
     * Here you can change the amount of concurrent requests.
     */
    'concurrency' => 10

    /*
     *  Here you can specify configuration regarding the used reporters
     */
    'reporters' => [

        'mail' => [

            /*
             * The `from` address to be used by the mail reporter.
             */
            'from_address' => '',

            /*
             * The `to` address to be used by the mail reporter.
             */
            'to_address' => '',

            /*
             * The subject line to be used by the mail reporter.
             */
            'subject' => '',
        ],

        /*
         * If you wish to exclude status codes from the reporters,
         * you can select the status codes that you wish to
         * exclude in the array below like: [200, 302]
         */
        'exclude_status_codes' => [],
    ],
];

Usage

You can start checking all links by issuing this command:, (*9)

php artisan link-checker:run

Want to run the crawler on a different url? No problem!, (*10)

php artisan link-checker:run --url=https://laravel.com

Schedule the command

To frequently check all links you can schedule the command:, (*11)

// app/console/Kernel.php

protected function schedule(Schedule $schedule)
{
    ...
    $schedule->command('link-checker:run')->sundays()->daily();
}

By default the package will log all broken links. If you want to have them mailed instead, just specify Spatie\LinkChecker\Reporters\MailBrokenLinks in the default_reporter option in the config file., (*12)

Creating your own crawl profile

A crawlprofile determines which links need to be crawled. By default Spatie\LinkChecker\CheckAllLinks is used, which will check all links it finds. This behaviour can be customized by specifying a class in the default_profile-option in the config file. The class must extend the abstract class Spatie\Crawler\CrawlProfile:, (*13)

abstract class CrawlProfile
{
    /**
     * Determine if the given url should be crawled.
     *
     * @param \Psr\Http\Message\UriInterface $url
     *
     * @return bool
     */
    abstract public function shouldCrawl(UriInterface $url): bool;
}

Creating your own reporter

A reporter determines what should be done when a link is crawled and when the crawling process is finished. This package provides two reporters: Spatie\LinkChecker\Reporters\LogBrokenLinks and Spatie\LinkChecker\Reporters\MailBrokenLinks. You can create your own behaviour by making a class extend the abstract class Spatie\Crawler\CrawlObserver:, (*14)

abstract class CrawlObserver
{
    /**
     * Called when the crawler will crawl the url.
     *
     * @param \Psr\Http\Message\UriInterface $url
     */
    public function willCrawl(UriInterface $url)
    {
    }

    /**
     * Called when the crawler has crawled the given url successfully.
     *
     * @param \Psr\Http\Message\UriInterface $url
     * @param \Psr\Http\Message\ResponseInterface $response
     * @param \Psr\Http\Message\UriInterface|null $foundOnUrl
     */
    abstract public function crawled(
        UriInterface $url,
        ResponseInterface $response,
        ?UriInterface $foundOnUrl = null
    );

    /**
     * Called when the crawler had a problem crawling the given url.
     *
     * @param \Psr\Http\Message\UriInterface $url
     * @param \GuzzleHttp\Exception\RequestException $requestException
     * @param \Psr\Http\Message\UriInterface|null $foundOnUrl
     */
    abstract public function crawlFailed(
        UriInterface $url,
        RequestException $requestException,
        ?UriInterface $foundOnUrl = null
    );

    /**
     * Called when the crawl has ended.
     */
    public function finishedCrawling()
    {
    }
}

To make it easier to create a reporter, you can extend Spatie\LinkChecker\Reporters\BaseReporter which provides many useful methods., (*15)

Changelog

Please see CHANGELOG for more information what has changed recently., (*16)

Testing

First, start the test server in a separate terminal session: ``` bash cd tests/server ./start_server.sh, (*17)


With the server running you can execute the tests ``` bash composer test

Contributing

Please see CONTRIBUTING for details., (*18)

Security

If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker., (*19)

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using., (*20)

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium., (*21)

All postcards are published on our website., (*22)

Credits

Support us

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*23)

Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff., (*24)

License

The MIT License (MIT). Please see License File for more information., (*25)

The Versions

26/04 2018

dev-master

9999999-dev https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

26/04 2018

4.1.0

4.1.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

20/03 2018

4.0.0

4.0.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

20/03 2018

dev-upgrade-crawler

dev-upgrade-crawler https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

12/02 2018

3.0.0

3.0.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

20/01 2018

2.4.0

2.4.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

17/01 2018

2.3.0

2.3.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

24/10 2017

2.2.2

2.2.2.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

14/10 2017

2.2.1

2.2.1.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

29/09 2017

2.2.0

2.2.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

27/09 2017

v1.x-dev

1.9999999.9999999.9999999-dev https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

27/09 2017

1.2.0

1.2.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

27/09 2017

2.1.0

2.1.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

24/09 2017

1.1.0

1.1.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

29/06 2017

1.0.5

1.0.5.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

19/01 2017

1.0.4

1.0.4.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

19/01 2017

2.0.1

2.0.1.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

19/01 2017

1.0.3

1.0.3.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

05/12 2016

2.0.0

2.0.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

03/12 2015

1.0.1

1.0.1.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

25/11 2015

1.0.0

1.0.0.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

19/11 2015

0.0.3

0.0.3.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

18/11 2015

0.0.2

0.0.2.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker

16/11 2015

0.0.1

0.0.1.0 https://github.com/spatie/laravel-link-checker

Check all links in a Laravel app

  Sources   Download

MIT

The Requires

 

The Development Requires

link crawler spatie checker health laravel-link-checker