PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor / automattic / jetpack-autoloader / src / CustomAutoloaderPlugin.php
mailpoet / vendor / automattic / jetpack-autoloader / src Last commit date
AutoloadFileWriter.php 11 months ago AutoloadGenerator.php 11 months ago AutoloadProcessor.php 11 months ago CustomAutoloaderPlugin.php 11 months ago ManifestGenerator.php 11 months ago autoload.php 11 months ago class-autoloader-handler.php 11 months ago class-autoloader-locator.php 11 months ago class-autoloader.php 11 months ago class-container.php 11 months ago class-hook-manager.php 11 months ago class-latest-autoloader-guard.php 11 months ago class-manifest-reader.php 11 months ago class-path-processor.php 11 months ago class-php-autoloader.php 11 months ago class-plugin-locator.php 11 months ago class-plugins-handler.php 11 months ago class-shutdown-handler.php 11 months ago class-version-loader.php 11 months ago class-version-selector.php 11 months ago index.php 11 months ago
CustomAutoloaderPlugin.php
97 lines
1 <?php
2 namespace Automattic\Jetpack\Autoloader;
3 if (!defined('ABSPATH')) exit;
4 use Composer\Composer;
5 use Composer\EventDispatcher\EventSubscriberInterface;
6 use Composer\IO\IOInterface;
7 use Composer\Plugin\PluginInterface;
8 use Composer\Script\Event;
9 use Composer\Script\ScriptEvents;
10 class CustomAutoloaderPlugin implements PluginInterface, EventSubscriberInterface {
11 private $io;
12 private $composer;
13 public function activate( Composer $composer, IOInterface $io ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
14 $this->composer = $composer;
15 $this->io = $io;
16 }
17 public function deactivate( Composer $composer, IOInterface $io ) {
18 }
19 public function uninstall( Composer $composer, IOInterface $io ) {
20 }
21 public static function getSubscribedEvents() {
22 return array(
23 ScriptEvents::POST_AUTOLOAD_DUMP => 'postAutoloadDump',
24 );
25 }
26 public function postAutoloadDump( Event $event ) {
27 // When the autoloader is not required by the root package we don't want to execute it.
28 // This prevents unwanted transitive execution that generates unused autoloaders or
29 // at worst throws fatal executions.
30 if ( ! $this->isRequiredByRoot() ) {
31 return;
32 }
33 $config = $this->composer->getConfig();
34 if ( 'vendor' !== $config->raw()['config']['vendor-dir'] ) {
35 $this->io->writeError( "\n<error>An error occurred while generating the autoloader files:", true );
36 $this->io->writeError( 'The project\'s composer.json or composer environment set a non-default vendor directory.', true );
37 $this->io->writeError( 'The default composer vendor directory must be used.</error>', true );
38 exit( 0 );
39 }
40 $installationManager = $this->composer->getInstallationManager();
41 $repoManager = $this->composer->getRepositoryManager();
42 $localRepo = $repoManager->getLocalRepository();
43 $package = $this->composer->getPackage();
44 $optimize = $event->getFlags()['optimize'];
45 $suffix = $this->determineSuffix();
46 $generator = new AutoloadGenerator( $this->io );
47 $generator->dump( $this->composer, $config, $localRepo, $package, $installationManager, 'composer', $optimize, $suffix );
48 }
49 private function determineSuffix() {
50 $config = $this->composer->getConfig();
51 $vendorPath = $config->get( 'vendor-dir' );
52 // Command line.
53 $suffix = $config->get( 'autoloader-suffix' );
54 if ( $suffix ) {
55 return $suffix;
56 }
57 // Reuse our own suffix, if any.
58 if ( is_readable( $vendorPath . '/autoload_packages.php' ) ) {
59 $content = file_get_contents( $vendorPath . '/autoload_packages.php' );
60 if ( preg_match( '/^namespace Automattic\\\\Jetpack\\\\Autoloader\\\\jp([^;\s]+?)(?:\\\\al[^;\s]+)?;/m', $content, $match ) ) {
61 return $match[1];
62 }
63 }
64 // Reuse Composer's suffix, if any.
65 if ( is_readable( $vendorPath . '/autoload.php' ) ) {
66 $content = file_get_contents( $vendorPath . '/autoload.php' );
67 if ( preg_match( '{ComposerAutoloaderInit([^:\s]+)::}', $content, $match ) ) {
68 return $match[1];
69 }
70 }
71 // Generate a random suffix.
72 return md5( uniqid( '', true ) );
73 }
74 private function isRequiredByRoot() {
75 $package = $this->composer->getPackage();
76 $requires = $package->getRequires();
77 if ( ! is_array( $requires ) ) { // @phan-suppress-current-line PhanRedundantCondition -- Earlier Composer versions may not have guaranteed this.
78 $requires = array();
79 }
80 $devRequires = $package->getDevRequires();
81 if ( ! is_array( $devRequires ) ) { // @phan-suppress-current-line PhanRedundantCondition -- Earlier Composer versions may not have guaranteed this.
82 $devRequires = array();
83 }
84 $requires = array_merge( $requires, $devRequires );
85 if ( empty( $requires ) ) {
86 $this->io->writeError( "\n<error>The package is not required and this should never happen?</error>", true );
87 exit( 0 );
88 }
89 foreach ( $requires as $require ) {
90 if ( 'automattic/jetpack-autoloader' === $require->getTarget() ) {
91 return true;
92 }
93 }
94 return false;
95 }
96 }
97