GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/admin.fixgini.com/vendor/pestphp/pest-plugin-arch/src/Support/FileLineFinder.php
<?php

declare(strict_types=1);

namespace Pest\Arch\Support;

/**
 * @internal
 */
final class FileLineFinder
{
    /**
     * Gets the line number of the first occurrence of the given callback.
     *
     * @param  callable(string): bool  $callback
     * @return callable(string): int
     */
    public static function where(callable $callback): callable
    {
        return function (string $path) use ($callback): int {
            if (file_exists($path) === false) {
                return 0;
            }

            $contents = (string) file_get_contents($path);

            foreach (explode("\n", $contents) as $line => $content) {
                if ($callback($content)) {
                    return $line + 1;
                }
            }

            return 0;
        };
    }
}