PHPackages                             mirko-pagliai/cakephp-link-scanner - 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. mirko-pagliai/cakephp-link-scanner

AbandonedArchivedCakephp-plugin[Utility &amp; Helpers](/categories/utility)

mirko-pagliai/cakephp-link-scanner
==================================

A plugin to scan links for CakePHP

1.2.1(2y ago)31.9k[1 issues](https://github.com/mirko-pagliai/cakephp-link-scanner/issues)[1 PRs](https://github.com/mirko-pagliai/cakephp-link-scanner/pulls)MITPHPPHP &gt;=8.1

Since Sep 21Pushed 1y ago1 watchersCompare

[ Source](https://github.com/mirko-pagliai/cakephp-link-scanner)[ Packagist](https://packagist.org/packages/mirko-pagliai/cakephp-link-scanner)[ Docs](https://github.com/mirko-pagliai/cakephp-link-scanner)[ RSS](/packages/mirko-pagliai-cakephp-link-scanner/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (8)Versions (36)Used By (0)

LinkScanner plugin
==================

[](#linkscanner-plugin)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.txt)[![CI](https://github.com/mirko-pagliai/cakephp-link-scanner/actions/workflows/ci.yml/badge.svg)](https://github.com/mirko-pagliai/cakephp-link-scanner/actions/workflows/ci.yml)[![codecov](https://camo.githubusercontent.com/f531abae8afe43750cdefa21904986e24f6dc28e274e615b9c8dfa384c1118ac/68747470733a2f2f636f6465636f762e696f2f67682f6d69726b6f2d7061676c6961692f63616b657068702d6c696e6b2d7363616e6e65722f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/mirko-pagliai/cakephp-link-scanner)[![Codacy Badge](https://camo.githubusercontent.com/d7879fb3d77d93553caeb858c9916b9f380b0ae67869ce100362a4119068e36c/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3531396364393536376632383438623638656433646630663538663663666335)](https://www.codacy.com/gh/mirko-pagliai/cakephp-link-scanner/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mirko-pagliai/cakephp-link-scanner&utm_campaign=Badge_Grade)[![CodeFactor](https://camo.githubusercontent.com/3e3c6485ebc7d8839a51860fd1791ecf7c4dd9f515481d6b2cb8f81f66ed9a46/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f6d69726b6f2d7061676c6961692f63616b657068702d6c696e6b2d7363616e6e65722f6261646765)](https://www.codefactor.io/repository/github/mirko-pagliai/cakephp-link-scanner)

*LinkScanner* is a CakePHP plugin for recursively scanning links: starting from a full base url, it performs GET requests, checks the status codes, inspects the response bodies and, if it finds other links, it continues recursively scanning.

[![gif of terminal](https://github.com/mirko-pagliai/cakephp-link-scanner/raw/master/docs/tty.gif)](https://github.com/mirko-pagliai/cakephp-link-scanner/raw/master/docs/tty.gif)

Did you like this plugin? Its development requires a lot of time for me. Please consider the possibility of making [a donation](//paypal.me/mirkopagliai): even a coffee is enough! Thank you.

[![Make a donation](https://camo.githubusercontent.com/d9f2015fc776952b7d14005e3f0e18099924deeb096bffd93869762ebecde952/68747470733a2f2f7777772e70617970616c6f626a656374732e636f6d2f7765627374617469632f6d6b74672f6c6f676f2d63656e7465722f6c6f676f5f70617970616c5f63617274652e6a7067)](https://paypal.me/mirkopagliai)

---

- [Installation](#installation)
    - [Installation on older CakePHP and PHP versions](#installation-on-older-cakephp-and-php-versions)
        - [For PHP 7.2 and CakePHP 4 or later](#for-php-72-and-cakephp-4-or-later)
        - [For PHP 5.6 and CakePHP 3 or later](#for-php-56-and-cakephp-3-or-later)
- [How to use](#how-to-use)
    - [The Request detector](#the-request-detector)
    - [How to create a validation rule](#how-to-create-a-validation-rule)
    - [How to configure the cache](#how-to-configure-the-cache)
- [Versioning](#versioning)

Installation
------------

[](#installation)

You can install the plugin via composer:

```
$ composer require --prefer-dist mirko-pagliai/cakephp-link-scanner
```

Then you have to load the plugin. For more information on how to load the plugin, please refer to the [Cookbook](https://book.cakephp.org/4.0/en/plugins.html#loading-a-plugin).

Simply, you can execute the shell command to enable the plugin:

```
bin/cake plugin load LinkScanner
```

This would update your application's bootstrap method.

### Installation on older CakePHP and PHP versions

[](#installation-on-older-cakephp-and-php-versions)

Recent packages and the master branch require at least CakePHP 5.0 and PHP 8.1 and the current development of the code is based on these and later versions of CakePHP and PHP. However, there are still some branches compatible with previous versions of CakePHP and PHP.

#### For PHP 7.4 and CakePHP 4.3 or later

[](#for-php-74-and-cakephp-43-or-later)

The [php7.4](https://github.com/mirko-pagliai/cakephp-link-scanner/tree/php7.4) branch requires at least PHP `>=7.4` and CakePHP `^4.3`.

In this case, you can install the package as well:

```
$ composer require --prefer-dist mirko-pagliai/cakephp-link-scanner:dev-php7.4
```

Note that the `php7.4` branch will no longer be updated as of January 7, 2024, except for security patches, and it matches the [1.1.18](https://github.com/mirko-pagliai/cakephp-link-scanner/releases/tag/1.1.18) version.

#### For PHP 7.2 or later

[](#for-php-72-or-later)

The [php7.2](https://github.com/mirko-pagliai/cakephp-link-scanner/tree/php7.2) branch requires at least PHP 7.2.

In this case, you can install the package as well:

```
$ composer require --prefer-dist mirko-pagliai/cakephp-link-scanner:dev-php7.2
```

Note that the `php7.2` branch will no longer be updated as of May 3, 2022, except for security patches, and it matches the [1.1.11](https://github.com/mirko-pagliai/cakephp-link-scanner/releases/tag/1.1.11) version.

#### For PHP 5.6 and CakePHP 3 or later

[](#for-php-56-and-cakephp-3-or-later)

The [cakephp3](//github.com/mirko-pagliai/cakephp-link-scanner/tree/cakephp3) branch requires at least PHP 5.6 and CakePHP 3.

In this case, you can install the package as well:

```
$ composer require --prefer-dist mirko-pagliai/cakephp-link-scanner:dev-cakephp3
```

Note that the `cakephp3` branch will no longer be updated as of May 7, 2021, except for security patches, and it matches the [1.1.6](//github.com/mirko-pagliai/cakephp-link-scanner/releases/tag/1.1.6) version.

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

[](#configuration)

It's not essential, but it may be useful to set the `App.fullBaseUrl` value correctly [refer to the Cookbook](https://book.cakephp.org/4.0/en/development/configuration.html#general-configuration), especially if you plan to use the plugin mainly on your app, so as not to have to indicate the full base url which to start the scan every time.

How to use
----------

[](#how-to-use)

Please, refer to the wiki:

- [How to use the LinkScanner utility](https://github.com/mirko-pagliai/cakephp-link-scanner/wiki/How-to-use-the-LinkScanner-utility)
- [How to use the LinkScannerCommand](https://github.com/mirko-pagliai/cakephp-link-scanner/wiki/How-to-use-the-LinkScannerCommand)
- [Examples for ResultScan](https://github.com/mirko-pagliai/cakephp-link-scanner/wiki/Examples-for-ResultScan)

In addition, you can refer to our [API](https://mirko-pagliai.github.io/cakephp-link-scanner).

To do list
----------

[](#to-do-list)

- allow the use of a configuration file for the shell;
- allow to export results as html and/or xml.

Versioning
----------

[](#versioning)

For transparency and insight into our release cycle and to maintain backward compatibility, *Assets* will be maintained under the [Semantic Versioning guidelines](https://semver.org).

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance23

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 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 ~71 days

Recently: every ~103 days

Total

30

Last Release

731d ago

PHP version history (4 changes)1.0.0-betaPHP &gt;=5.5.9

1.1.0PHP &gt;=7.2

1.1.12PHP &gt;=7.4

1.2.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/56d4c91c4d1ce5952a13c723d4fd340f8a1220ba1ef0212bbdb9a6334c98b3b9?d=identicon)[mirko-pagliai](/maintainers/mirko-pagliai)

---

Top Contributors

[![mirko-pagliai](https://avatars.githubusercontent.com/u/293199?v=4)](https://github.com/mirko-pagliai "mirko-pagliai (645 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mirko-pagliai-cakephp-link-scanner/health.svg)

```
[![Health](https://phpackages.com/badges/mirko-pagliai-cakephp-link-scanner/health.svg)](https://phpackages.com/packages/mirko-pagliai-cakephp-link-scanner)
```

###  Alternatives

[spatie/laravel-pjax

A pjax middleware for Laravel 5

513371.8k11](/packages/spatie-laravel-pjax)[ashallendesign/favicon-fetcher

A Laravel package for fetching website's favicons.

190272.4k3](/packages/ashallendesign-favicon-fetcher)[helgesverre/extractor

AI-Powered Data Extraction for your Laravel application.

22128.0k](/packages/helgesverre-extractor)[dereuromark/cakephp-dto

A CakePHP plugin for generating immutable Data Transfer Objects with full type safety

2988.9k3](/packages/dereuromark-cakephp-dto)[visuellverstehen/statamic-classify

A useful helper to add CSS classes to all HTML tags generated by the bard editor.

20116.8k](/packages/visuellverstehen-statamic-classify)

PHPackages © 2026

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