Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Cli/Command/Development/ClassLint.php
<?php

namespace XF\Cli\Command\Development;

use
Symfony\Component\Console\Command\Command;
use
Symfony\Component\Console\Input\InputInterface;
use
Symfony\Component\Console\Output\OutputInterface;

class
ClassLint extends Command
{
    use
RequiresDevModeTrait;

    protected function
configure()
    {
       
$this
           
->setName('xf-dev:class-lint')
            ->
setDescription('Checks that all classes can be loaded without conflicts');
    }

    protected function
execute(InputInterface $input, OutputInterface $output)
    {
       
$srcDir = \XF::getSourceDirectory() . \XF::$DS . 'XF';
       
$dirIterator = \XF\Util\File::getRecursiveDirectoryIterator($srcDir, null, null);
       
$iterator = new \RegexIterator($dirIterator, '/^.+\.php$/');

        foreach (
$iterator AS $file)
        {
            if (
preg_match('#(^|\\\\|/)(tests|test)(\\\\|/|$)#i', $file->getPath()))
            {
                continue;
            }
            if (!
preg_match('#^[A-Z].+\.php$#', $file->getFilename()))
            {
                continue;
            }

            require_once(
$file->getPathname());
        }

        return
0;
    }
}