PHPackages                             igarastudio/visit - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. igarastudio/visit

ActiveLibrary[Testing &amp; Quality](/categories/testing)

igarastudio/visit
=================

A library to simulate and test user visits using php-cgi

v0.1.7(1mo ago)2337↑125%1MITPHPCI passing

Since Feb 11Pushed 1mo agoCompare

[ Source](https://github.com/igarastudio/visit)[ Packagist](https://packagist.org/packages/igarastudio/visit)[ RSS](/packages/igarastudio-visit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (10)Used By (0)

igarastudio/visit
=================

[](#igarastudiovisit)

With `visit` you can simulate your website navigation through `php-cgi` without running a web server or a web browser. It supports cookies so you can use your PHP session to simulate user logins, etc.

Example
-------

[](#example)

```
use PHPUnit\Framework\TestCase;

use IgaraStudio\Visit;
use function IgaraStudio\visit;

// If this test is in /tests/ and your index.php file in /public/ dir
Visit::$shared_options = [ 'docroot' => __DIR__ . '/../public',
                           'script' => __DIR__ . '/../public/index.php' ];

class UserLoginTest extends TestCase
{
  // Simulates a GET request to /login to check if the 'Login' text appears
  // in the page.
  public function testVisibleLoginButton(): void
  {
    visit('/login')->assertSee('Login');
  }

  // Simulates a POST request to /login with a specific form data, checks
  public function testInvalidLogin(): void
  {
    visit()
      ->post('/login', ['username' => 'invalid',
                        'password' => 'invalid'])
      ->assertSee('Invalid user or password');
  }

  // This login works because we process Cookie and Set-Cookie to keep the PHP
  // session in the same visit().
  public function testValidLogin(): void
  {
    visit()
      ->post('/login', ['username' => 'valid-username',
                        'password' => 'valid-password'])
      ->assertSee('Dashboard');
  }
}
```

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

[](#installation)

You can add this library as a dependency to your project using [Composer](https://getcomposer.org/), generally you only need this library during development, for instance to run your project's test suite:

```
composer require --dev igarastudio/visit

```

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity30

Early-stage or recently created project

 Bus Factor1

Top contributor holds 55.6% 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 ~6 days

Total

8

Last Release

53d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a8d82a91b23011a03809fa55a32181dd619cafbb1123a16a4f69d80079df216?d=identicon)[dacap](/maintainers/dacap)

---

Top Contributors

[![dacap](https://avatars.githubusercontent.com/u/39654?v=4)](https://github.com/dacap "dacap (10 commits)")[![martincapello](https://avatars.githubusercontent.com/u/5520828?v=4)](https://github.com/martincapello "martincapello (8 commits)")

### Embed Badge

![Health badge](/badges/igarastudio-visit/health.svg)

```
[![Health](https://phpackages.com/badges/igarastudio-visit/health.svg)](https://phpackages.com/packages/igarastudio-visit)
```

###  Alternatives

[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[timacdonald/log-fake

A drop in fake logger for testing with the Laravel framework.

4235.9M56](/packages/timacdonald-log-fake)[jasonmccreary/laravel-test-assertions

A set of helpful assertions when testing Laravel applications.

3513.9M32](/packages/jasonmccreary-laravel-test-assertions)[ergebnis/phpunit-slow-test-detector

Provides facilities for detecting slow tests in phpunit/phpunit.

1468.1M72](/packages/ergebnis-phpunit-slow-test-detector)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[robiningelbrecht/phpunit-pretty-print

Prettify PHPUnit output

76460.0k15](/packages/robiningelbrecht-phpunit-pretty-print)

PHPackages © 2026

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