'WPDiscourse', // By default when running php-scoper add-prefix, it will prefix all relevant code found in the current working // directory. You can however define which files should be scoped by defining a collection of Finders in the // following configuration key. // // For more see: https://github.com/humbug/php-scoper#finders-and-paths 'finders' => [ Finder::create() ->files() ->ignoreVCS(true) ->in('vendor') ->path([ 'Monolog/Formatter/FormatterInterface.php', 'Monolog/Formatter/NormalizerFormatter.php', 'Monolog/Formatter/LineFormatter.php', 'Monolog/Handler/AbstractHandler.php', 'Monolog/Handler/AbstractProcessingHandler.php', 'Monolog/Handler/HandlerInterface.php', 'Monolog/Handler/NullHandler.php', 'Monolog/Handler/StreamHandler.php', 'Monolog/ResettableInterface.php', 'Monolog/Logger.php', 'Monolog/Utils.php', 'monolog/LICENSE' ]), Finder::create() ->files() ->ignoreVCS(true) ->notName('/.*\\.md|.*\\.dist|Makefile|composer\\.json|composer\\.lock/') ->exclude([ 'doc', 'test', 'test_old', 'Test', 'tests', 'Tests', 'vendor-bin', ]) ->in('vendor') ->path('/^psr/') ], // Whitelists a list of files. Unlike the other whitelist related features, this one is about completely leaving // a file untouched. // Paths are relative to the configuration file unless if they are already absolute 'files-whitelist' => [], // When scoping PHP files, there will be scenarios where some of the code being scoped indirectly references the // original namespace. These will include, for example, strings or string manipulations. PHP-Scoper has limited // support for prefixing such strings. To circumvent that, you can define patchers to manipulate the file to your // heart contents. // // For more see: https://github.com/humbug/php-scoper#patchers 'patchers' => [ function (string $filePath, string $prefix, string $contents) { $lines = explode( "\n", $contents ); foreach ( $lines as $index => $line ) { // Ensure functions do not have return type declarations, which are not supported in PHP 5.*. // See further https://github.com/Seldaek/monolog/issues/1537. if ( preg_match( '/\h(function)\h/', $line ) && ltrim($line)[0] !== '*' ) { $last_bracket_index = strripos( $line, ')' ); if ( $last_bracket_index ) { $new_line = substr( $line, 0, $last_bracket_index ); $new_line .= ")"; $line_without_args = preg_replace( '/\(([^()]*+|(?R))*\)/', '', $line ); if ( strpos( $line_without_args, "{" ) !== false ) { $new_line .= " {"; } if ( substr( $line, -1 ) == ";" ) { $new_line .= ";"; } $lines[ $index ] = $new_line; } } // Remove strict_type declarations if ( preg_match( '/strict_types/', $line ) && ltrim($line)[0] !== '*' ) { unset( $lines[ $index ] ); } } return implode( "\n", $lines ); }, ], // PHP-Scoper's goal is to make sure that all code for a project lies in a distinct PHP namespace. However, you // may want to share a common API between the bundled code of your PHAR and the consumer code. For example if // you have a PHPUnit PHAR with isolated code, you still want the PHAR to be able to understand the // PHPUnit\Framework\TestCase class. // // A way to achieve this is by specifying a list of classes to not prefix with the following configuration key. Note // that this does not work with functions or constants neither with classes belonging to the global namespace. // // Fore more see https://github.com/humbug/php-scoper#whitelist 'whitelist' => [ // 'PHPUnit\Framework\TestCase', // A specific class // 'PHPUnit\Framework\*', // The whole namespace // '*', // Everything ], // If `true` then the user defined constants belonging to the global namespace will not be prefixed. // // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace 'whitelist-global-constants' => true, // If `true` then the user defined classes belonging to the global namespace will not be prefixed. // // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace 'whitelist-global-classes' => true, // If `true` then the user defined functions belonging to the global namespace will not be prefixed. // // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace 'whitelist-global-functions' => true, ];