2017 © Pedro Peláez
 

library laravel-link-checker

Check all links in a Laravel app

image

hissezhaut/laravel-link-checker

Check all links in a Laravel app

  • Monday, December 5, 2016
  • by parweb
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 27 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Check all links in a Laravel app

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

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., (*2)

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

Postcardware

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

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

The best postcards will get published on the open source page on our website., (*6)

Install

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


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

You must register the \Spatie\LinkChecker\CheckLinksCommand:, (*8)

// app/Console/Kernel.php
protected $commands = [
    ...
    \Spatie\LinkChecker\CheckLinksCommand::class,
];

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

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

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

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' => '',
        ],
    ],
];

Usage

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

php artisan link-checker:run

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

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

Schedule the command

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

// app/console/Kernel.php

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

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., (*14)

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 specify a class in the default_profile-option in the config file. The class must implement the Spatie\Crawler\CrawlProfile-interface:, (*15)


interface CrawlProfile { /** * Determine if the given url should be crawled. * * @param \Spatie\Crawler\Url $url * * @return bool */ public function shouldCrawl(Url $url); }

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 adhere to the Spatie\Crawler\CrawlObserver-interface:, (*16)

interface CrawlObserver
{
    /**
     * Called when the crawler will crawl the url.
     *
     * @param \Spatie\Crawler\Url $url
     */
    public function willCrawl(Url $url);

    /**
     * Called when the crawler has crawled the given url.
     *
     * @param \Spatie\Crawler\Url                      $url
     * @param \Psr\Http\Message\ResponseInterface|null $response
     */
    public function hasBeenCrawled(Url $url, $response);

    /**
     * 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., (*17)

Change log

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

Testing

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


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

Contributing

Please see CONTRIBUTING for details., (*20)

Security

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

Credits

About Spatie

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

License

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

The Versions

05/12 2016

v2.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

05/12 2016

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

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