This commit is contained in:
Dave M. 2024-11-21 19:15:53 -05:00
commit 13d306aec9
2 changed files with 15 additions and 20 deletions

View File

@ -1,7 +1,6 @@
<?php <?php
use Ulmus\Container\AdapterProxy; use Ulmus\Container\AdapterProxy;
use Psr\Container\ContainerInterface;
use Ulmus\ConnectionAdapter; use Ulmus\ConnectionAdapter;
use function DI\autowire, DI\create, DI\get, DI\add; use function DI\autowire, DI\create, DI\get, DI\add;
@ -11,9 +10,8 @@ return [
AdapterProxy::class, AdapterProxy::class,
]), ]),
AdapterProxy::class => function (ContainerInterface $c) { AdapterProxy::class => function (Psr\Container\ContainerInterface $c) {
return new AdapterProxy( return new AdapterProxy(
$c->get('lean:adapter.sqlite'),
$c->get(ConnectionAdapter::class), $c->get(ConnectionAdapter::class),
); );
}, },

View File

@ -22,13 +22,16 @@ class Lean
protected function loadApplications() : void protected function loadApplications() : void
{ {
$list = $this->container->get('config')['lean']['autoload'] ?? []; $list = array_filter($this->container->get('config')['lean']['autoload'] ?? []);
if (! $list ) { if (! $list ) {
throw new \Exception("You must provide at least one application to autoload within your config file ( 'lean' => 'autoload' => [] )"); throw new \Exception("You must provide at least one application to autoload within your config file ( 'lean' => 'autoload' => [] )");
} }
foreach(array_filter($list) as $application) { # Allows 'lean.default' and [ 'lean.default', 100 ] which allows ordering of apps loading.
usort($list, fn($e1, $e2) => ( is_array($e1) ? $e1[1] : 0 ) <=> ( is_array($e2) ? $e2[1] : 0 ));
foreach(array_map(fn($item) => is_array($item) ? $item[0] : $item, $list) as $application) {
if ( $this->container->has($application) ) { if ( $this->container->has($application) ) {
$this->applications[] = ( new Application($application) )->fromArray($this->container->get($application)); $this->applications[] = ( new Application($application) )->fromArray($this->container->get($application));
} }
@ -166,29 +169,23 @@ class Lean
$list = []; $list = [];
foreach(Composer::readComposerLock()['packages'] as $package) { foreach(Composer::readComposerLock()['packages'] as $package) {
$order = $package['extra']['lean']['autoload']['order'] ?? 0;
foreach($package['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) { foreach($package['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) {
$list[] = static::pathFromPackage($package, $autoload); $list[] = [ static::pathFromPackage($package, $autoload), $order ];
} }
} }
foreach(Composer::readComposerJson()['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) { foreach(Composer::readComposerJson()['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) {
$list[] = getenv('PROJECT_PATH') . DIRECTORY_SEPARATOR . $autoload; $order = $package['extra']['lean']['autoload']['order'] ?? 1000;
$list[] = [ getenv('PROJECT_PATH') . DIRECTORY_SEPARATOR . $autoload, $order ];
} }
return $list; # Allows 'lean.default' and [ 'lean.default', 100 ] which allows ordering of apps loading.
} usort($list, fn($e1, $e2) => $e1[1] <=> $e2[1]);
public static function autoloadDefinitionsFromComposerExtra() : array return array_column($list, 0);
{
$list = [];
foreach(Composer::readComposerLock()['packages'] as $package) {
foreach($package['extra']['lean']['autoload']['definitions'] ?? [] as $autoload) {
$list = array_replace($list, static::loadFromPackage($package, $autoload));
}
}
return $list;
} }
public static function autoloadConfigFromComposerExtra() : array public static function autoloadConfigFromComposerExtra() : array