1
0
mirror of https://github.com/flarum/core.git synced 2025-07-25 18:51:40 +02:00

Pushing latest stuff

This commit is contained in:
Matthew Kilgore
2021-12-28 20:45:22 -05:00
parent 05aa62f70c
commit 853926ce0b
80 changed files with 7103 additions and 16105 deletions

View File

@@ -0,0 +1,65 @@
<?php
declare(strict_types=1);
namespace Flarum\PHPStan\Concerns;
use Illuminate\Container\Container;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Contracts\Container\Container as ContainerContract;
use Psr\Container\NotFoundExceptionInterface;
use ReflectionException;
/**
* @internal
*/
trait HasContainer
{
/**
* @var ?\Illuminate\Contracts\Container\Container
*/
protected $container;
/**
* @param \Illuminate\Contracts\Container\Container $container
* @return void
*/
public function setContainer(ContainerContract $container): void
{
$this->container = $container;
}
/**
* Returns the current broker.
*
* @return \Illuminate\Contracts\Container\Container
*/
public function getContainer(): ContainerContract
{
return $this->container ?? Container::getInstance();
}
/**
* Resolve the given type from the container.
*
* @param string $abstract
* @return mixed
*/
public function resolve(string $abstract)
{
$concrete = null;
try {
$concrete = $this->getContainer()
->make($abstract);
} catch (ReflectionException $exception) {
// ..
} catch (BindingResolutionException $exception) {
// ..
} catch (NotFoundExceptionInterface $exception) {
// ..
}
return $concrete;
}
}

View File

@@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
namespace Flarum\PHPStan\Concerns;
use Illuminate\Config\Repository as ConfigRepository;
trait LoadsAuthModel
{
/** @phpstan-return class-string|null */
private function getAuthModel(ConfigRepository $config, ?string $guard = null): ?string
{
if (
($guard === null && ! ($guard = $config->get('auth.defaults.guard'))) ||
! ($provider = $config->get('auth.guards.'.$guard.'.provider')) ||
! ($authModel = $config->get('auth.providers.'.$provider.'.model'))
) {
return null;
}
return $authModel;
}
}