PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / vendor / typisttech / imposter / src / Imposter.php
surecart / vendor / typisttech / imposter / src Last commit date
ArrayUtil.php 3 years ago Config.php 3 years ago ConfigCollection.php 3 years ago ConfigCollectionFactory.php 3 years ago ConfigCollectionInterface.php 3 years ago ConfigFactory.php 3 years ago ConfigInterface.php 3 years ago Filesystem.php 3 years ago FilesystemInterface.php 3 years ago Imposter.php 3 years ago ImposterFactory.php 3 years ago ImposterInterface.php 3 years ago ProjectConfig.php 3 years ago ProjectConfigInterface.php 3 years ago StringUtil.php 3 years ago Transformer.php 3 years ago TransformerInterface.php 3 years ago
Imposter.php
136 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace TypistTech\Imposter;
6
7 class Imposter implements ImposterInterface
8 {
9 /**
10 * @var string[]
11 */
12 private $autoloads;
13
14 /**
15 * @var string[]
16 */
17 private $invalidAutoloads;
18
19 /**
20 * @var ConfigCollectionInterface
21 */
22 private $configCollection;
23
24 /**
25 * @var TransformerInterface
26 */
27 private $transformer;
28
29 /**
30 * @var FilesystemInterface
31 */
32 private $filesystem;
33
34 /**
35 * Imposter constructor.
36 *
37 * @param ConfigCollectionInterface $configCollection
38 * @param TransformerInterface $transformer
39 * @param FilesystemInterface $filesystem
40 */
41 public function __construct(
42 ConfigCollectionInterface $configCollection,
43 TransformerInterface $transformer,
44 FilesystemInterface $filesystem
45 ) {
46 $this->configCollection = $configCollection;
47 $this->transformer = $transformer;
48 $this->filesystem = $filesystem;
49 }
50
51 /**
52 * @return ConfigCollectionInterface
53 */
54 public function getConfigCollection(): ConfigCollectionInterface
55 {
56 return $this->configCollection;
57 }
58
59 /**
60 * @return TransformerInterface
61 */
62 public function getTransformer(): TransformerInterface
63 {
64 return $this->transformer;
65 }
66
67 /**
68 * Transform all autoload files.
69 *
70 * @return void
71 */
72 public function run()
73 {
74 $autoloads = $this->getAutoloads();
75 array_walk($autoloads, [$this, 'transform']);
76 }
77
78 /**
79 * Get all valid (exist) autoload paths.
80 *
81 * @return string[]
82 */
83 public function getAutoloads(): array
84 {
85 if ($this->autoloads === null) {
86 $this->setAutoloads();
87 }
88
89 return $this->autoloads;
90 }
91
92 /**
93 * Get all autoload paths which defined in composer.json but not exist.
94 *
95 * @return string[]
96 */
97 public function getInvalidAutoloads(): array
98 {
99 if ($this->invalidAutoloads === null) {
100 $this->setAutoloads();
101 }
102
103 return $this->invalidAutoloads;
104 }
105
106 protected function setAutoloads(): void
107 {
108 $this->autoloads = [];
109 $this->invalidAutoloads = [];
110
111 $autoloads = $this->configCollection->getAutoloads();
112
113 foreach ($autoloads as $autoload) {
114 $isValid = $this->filesystem->isFile($autoload) || $this->filesystem->isDir($autoload);
115
116 if ($isValid) {
117 $this->autoloads[] = $autoload;
118 } else {
119 $this->invalidAutoloads[] = $autoload;
120 }
121 }
122 }
123
124 /**
125 * Transform a file or directory recursively.
126 *
127 * @param string $target Path to the target file or directory.
128 *
129 * @return void
130 */
131 public function transform(string $target)
132 {
133 $this->transformer->transform($target);
134 }
135 }
136