Esempio n. 1
0
 public function test__add_register_boot_ServiceProviders()
 {
     $this->assertFalse($this->di->has('test_provider'), 'test_provider must not exist.');
     $this->sm->add(TestServiceProvider::class, TRUE);
     $this->assertTrue($this->di->has(TestServiceProvider::class), 'TestServiceProvider::class must exist in the DI.');
     $this->sm->registerServiceProviders();
     $this->assertTrue($this->di->has('test_provider'), 'test_provider must exist.');
     $this->assertEquals($this->di['test_provider'], 'I am a test provider.', 'test_provider must return a predetermined string.');
     $this->sm->bootAll();
     $this->assertEquals($this->di['test_provider'], 'I am a modified test provider.', 'test_provider must return a modified string.');
 }
Esempio n. 2
0
 /**
  * Resolve the subscriber instance.
  *
  * @param  mixed $subscriber
  *
  * @return mixed
  */
 private function resolve_subscriber($subscriber)
 {
     if (is_string($subscriber)) {
         return $this->forge->make($subscriber);
     }
     return $subscriber;
 }
Esempio n. 3
0
 /**
  * Uses the container to resolve arguments
  *
  * @param  array $args
  *
  * @return array
  */
 function resolveArguments(array $args)
 {
     $resolved = [];
     foreach ($args as $arg) {
         $resolved[] = is_string($arg) && ($this->di->has($arg) || $this->di->isSingleton($arg) || class_exists($arg)) ? $this->di->get($arg) : $arg;
     }
     return $resolved;
 }
Esempio n. 4
0
 /**
  * @param $processor
  * @param $method
  *
  * @return mixed
  */
 private function invoke_controller($processor, $method)
 {
     // determine if the controller implements a router
     if (method_exists($processor, 'routeTo')) {
         // routing controller - send the $method to the controller router
         $result = $this->forge->callWithDependencyInjection([$processor, 'routeTo'], [$method]);
     } else {
         // standard controller
         $result = $this->forge->callWithDependencyInjection([$processor, $method]);
     }
     return $result;
 }
Esempio n. 5
0
 /**
  * Boot all registered providers.
  */
 public function bootAll()
 {
     if (!$this->booted) {
         foreach ($this->providers as $provider => $is) {
             if (!$this->isRegistered($provider)) {
                 $this->registerServiceProvider($provider);
             }
             if (!$this->isBooted($provider)) {
                 $this->forge->make($provider)->boot();
             }
         }
         $this->booted = TRUE;
     }
 }
Esempio n. 6
0
 public function test_Listening()
 {
     $di = Forge::getInstance();
     /** @var Collection $collection */
     $collection = new Collection();
     /** @var Events $events */
     $events = $di['events'];
     $events->subscribe(Collection::class);
     # we start with nothing
     $this->assertFalse($collection->any());
     # now listen for a collection new item
     $events->listen('collection.new.item', EventsTest::class . '@test_CollectionEvent');
     $this->assertEquals('collection.fired', $events->fire('collection.new.item')[0]);
 }
Esempio n. 7
0
 public function register()
 {
     /** @var Forge $di */
     $di = $this->forge;
     # register collections and paths
     # $forge->add(['collection', Collection::class]);
     $di->add(['paths', Paths::class]);
     # cogs principle service container
     $di->singleton([ContainerInterface::class, Forge::class], new Forge());
     # illuminate/container service container
     $di->singleton(['ioc', IlluminateContainer::class], function () {
         return Forge::getInstance()->container();
     });
     # register Application context
     $di->singleton(['context', Context::class], new Context());
     # register cogs principle event dispatcher
     $di->singleton(['events', Events::class], new Events());
     $this->provides += [Context::class, Events::class, Paths::class];
 }
Esempio n. 8
0
namespace Og;

/**
 * @package Og
 * @version 0.1.0
 * @author  Greg Truesdell <*****@*****.**>
 */
use Dotenv\Dotenv;
use Og\Kernel\Kernel;
include 'paths.php';
include SUPPORT . 'helpers.php';
include SUPPORT . 'messages.php';
include VENDOR . 'autoload.php';
/** @noinspection PhpUnusedLocalVariableInspection */
$forge = new Forge(new \Illuminate\Container\Container());
// register the Config
$forge->add(['config', Config::class], Config::createFromFolder(CONFIG));
// register the Kernel
$forge->singleton(['kernel', Kernel::class], new Kernel($forge));
// set the timezone (as required by earlier versions of PHP before 7.0.0
date_default_timezone_set($forge['config']['app.timezone']);
# load environment as a requirement
if (file_exists(ROOT . '.env')) {
    $dotenv = new Dotenv(ROOT);
    $dotenv->overload();
} else {
    throw new \LogicException('Unable to find root environment file. Did you remember to rename `.env-example?');
}
# install Tracy if in DEBUG mode
if (strtolower(getenv('DEBUG')) === 'true') {
Esempio n. 9
0
 /**
  * @param null $abstract
  *
  * @return mixed|Application
  */
 function app($abstract = NULL)
 {
     return $abstract ? Forge::make($abstract) : Forge::make('app');
 }
Esempio n. 10
0
<?php

/**
 * @package Og
 * @author  Greg Truesdell <*****@*****.**>
 */
namespace Og;

use Dotenv\Dotenv;
use Og\Kernel\Kernel;
# get the root
define('TEST_PATH', dirname(__DIR__) . '/../');
define('Og\\COLLECT_FUNCTIONS_AND_CLASSES', FALSE);
date_default_timezone_set('America/Vancouver');
include TEST_PATH . 'boot/paths.php';
include SUPPORT . 'helpers.php';
include SUPPORT . 'messages.php';
include TEST_PATH . 'vendor/autoload.php';
# load environment
if (file_exists(TEST_PATH . 'tests/.env')) {
    $dotenv = new Dotenv(TEST_PATH);
    $dotenv->load();
}
include BOOT . 'debug.php';
$forge = Forge::getInstance();
$forge->add(['config', Config::class], Config::createFromFolder(CONFIG));
//new Application(new Kernel(Forge::getInstance()));
new Kernel(Forge::getInstance());
Esempio n. 11
0
 /**
  * Middleware 'Factory'
  *
  * @return static
  */
 public static function create()
 {
     # cache a forge reference
     static $forge = NULL;
     $forge = $forge ?: Forge::getInstance();
     return new static($forge);
 }
Esempio n. 12
0
 /**
  * AbstractView constructor.
  *
  * @param array $settings
  *
  */
 public function __construct($settings = [])
 {
     $this->forge = Forge::getInstance();
     parent::__construct($settings);
 }
Esempio n. 13
0
 /** @return static */
 public function getInstance()
 {
     return static::$instance ?: new static(new Kernel(Forge::getInstance()));
 }
Esempio n. 14
0
<?php

namespace PHPSTORM_META;

/**
 * @package Og
 * @version 0.1.0
 * @author  Greg Truesdell <*****@*****.**>
 */
/** @noinspection PhpIllegalArrayKeyTypeInspection */
/** @noinspection PhpUnusedLocalVariableInspection */
//@formatter:off
$STATIC_METHOD_TYPES = [app('') => ['' instanceof \Og\Application, 'app' instanceof \Og\Application, 'collection' instanceof \Og\Collection, 'config' instanceof \Og\Config, 'context' instanceof \Og\Context, 'database' instanceof \Og\Database, 'events' instanceof \Og\Events, 'forge' instanceof \Og\Forge, 'input' instanceof \Og\Support\Collections\Input, 'ioc' instanceof \Illuminate\Container\Container, 'kernel' instanceof \Og\Kernel, 'logger' instanceof \Tracy\Firelogger, 'paths' instanceof \Og\Paths, 'request' instanceof \Zend\Stratigility\Http\Request, 'response' instanceof \Zend\Stratigility\Http\Response, 'routing' instanceof \Og\Routing, 'server' instanceof \Zend\Diactoros\Server, 'session' instanceof \Aura\Session\Session, 'yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Aura\\Session\\Session' instanceof Aura\Session\Session, '\\Illuminate\\Container\\Container' instanceof Illuminate\Container\Container, '\\Og\\Application' instanceof Og\Application, '\\Og\\Collection' instanceof Og\Collection, '\\Og\\Config' instanceof Og\Config, '\\Og\\Context' instanceof Og\Context, '\\Og\\Database' instanceof Og\Database, '\\Og\\Events' instanceof Og\Events, '\\Og\\Forge' instanceof Og\Forge, '\\Og\\Kernel' instanceof Og\Kernel, '\\Og\\Paths' instanceof Og\Paths, '\\Og\\Routing' instanceof Og\Routing, '\\Tracy\\Firelogger' instanceof Tracy\Firelogger, '\\Symfony\\Component\\Yaml\\Yaml' instanceof Symfony\Component\Yaml\Yaml, '\\Zend\\Diactoros\\Server' instanceof Zend\Diactoros\Server, '\\Zend\\Stratigility\\Http\\Request' instanceof Zend\Stratigility\Http\Request, '\\Zend\\Stratigility\\Http\\Response' instanceof Zend\Stratigility\Http\Response], forge('') => ['' instanceof \Og\Forge, 'app' instanceof \Og\Application, 'collection' instanceof \Og\Collection, 'config' instanceof \Og\Config, 'context' instanceof \Og\Context, 'database' instanceof \Og\Database, 'events' instanceof \Og\Events, 'forge' instanceof \Og\Forge, 'input' instanceof \Og\Support\Collections\Input, 'ioc' instanceof \Illuminate\Container\Container, 'kernel' instanceof \Og\Kernel, 'logger' instanceof \Tracy\Firelogger, 'paths' instanceof \Og\Paths, 'request' instanceof \Zend\Stratigility\Http\Request, 'response' instanceof \Zend\Stratigility\Http\Response, 'routing' instanceof \Og\Routing, 'server' instanceof \Zend\Diactoros\Server, 'session' instanceof \Aura\Session\Session, 'yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Aura\\Session\\Session' instanceof \Aura\Session\Session, '\\Illuminate\\Container\\Container' instanceof \Illuminate\Container\Container, '\\Og\\Application' instanceof \Og\Application, '\\Og\\Collection' instanceof \Og\Collection, '\\Og\\Config' instanceof \Og\Config, '\\Og\\Context' instanceof \Og\Context, '\\Og\\Database' instanceof \Og\Database, '\\Og\\Events' instanceof \Og\Events, '\\Og\\Forge' instanceof \Og\Forge, '\\Og\\Kernel' instanceof \Og\Kernel, '\\Og\\Paths' instanceof \Og\Paths, '\\Og\\Routing' instanceof \Og\Routing, '\\Tracy\\Firelogger' instanceof \Tracy\Firelogger, '\\Symfony\\Component\\Yaml\\Yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Zend\\Diactoros\\Server' instanceof \Zend\Diactoros\Server, '\\Zend\\Stratigility\\Http\\Request' instanceof \Zend\Stratigility\Http\Request, '\\Zend\\Stratigility\\Http\\Response' instanceof \Zend\Stratigility\Http\Response], \Og\Forge::make('') => ['' == '@', 'app' instanceof \Og\Application, 'collection' instanceof \Og\Collection, 'config' instanceof \Og\Config, 'context' instanceof \Og\Context, 'database' instanceof \Og\Database, 'events' instanceof \Og\Events, 'forge' instanceof \Og\Forge, 'input' instanceof \Og\Support\Collections\Input, 'ioc' instanceof \Illuminate\Container\Container, 'kernel' instanceof \Og\Kernel, 'logger' instanceof \Tracy\Firelogger, 'paths' instanceof \Og\Paths, 'request' instanceof \Zend\Stratigility\Http\Request, 'response' instanceof \Zend\Stratigility\Http\Response, 'routing' instanceof \Og\Routing, 'server' instanceof \Zend\Diactoros\Server, 'session' instanceof \Aura\Session\Session, 'yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Aura\\Session\\Session' instanceof \Aura\Session\Session, '\\Illuminate\\Container\\Container' instanceof \Illuminate\Container\Container, '\\Og\\Application' instanceof \Og\Application, '\\Og\\Collection' instanceof \Og\Collection, '\\Og\\Config' instanceof \Og\Config, '\\Og\\Context' instanceof \Og\Context, '\\Og\\Database' instanceof \Og\Database, '\\Og\\Events' instanceof \Og\Events, '\\Og\\Forge' instanceof \Og\Forge, '\\Og\\Kernel' instanceof \Og\Kernel, '\\Og\\Paths' instanceof \Og\Paths, '\\Og\\Routing' instanceof \Og\Routing, '\\Tracy\\Firelogger' instanceof \Tracy\Firelogger, '\\Symfony\\Component\\Yaml\\Yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Zend\\Diactoros\\Server' instanceof \Zend\Diactoros\Server, '\\Zend\\Stratigility\\Http\\Request' instanceof \Zend\Stratigility\Http\Request, '\\Zend\\Stratigility\\Http\\Response' instanceof \Zend\Stratigility\Http\Response], new \Og\Forge() => ['' == '@', 'app' instanceof \Og\Application, 'collection' instanceof \Og\Collection, 'config' instanceof \Og\Config, 'context' instanceof \Og\Context, 'database' instanceof \Og\Database, 'events' instanceof \Og\Events, 'forge' instanceof \Og\Forge, 'input' instanceof \Og\Support\Collections\Input, 'ioc' instanceof \Illuminate\Container\Container, 'kernel' instanceof \Og\Kernel, 'logger' instanceof \Tracy\Firelogger, 'paths' instanceof \Og\Paths, 'request' instanceof \Zend\Stratigility\Http\Request, 'response' instanceof \Zend\Stratigility\Http\Response, 'routing' instanceof \Og\Routing, 'server' instanceof \Zend\Diactoros\Server, 'session' instanceof \Aura\Session\Session, 'yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Aura\\Session\\Session' instanceof \Aura\Session\Session, '\\Illuminate\\Container\\Container' instanceof \Illuminate\Container\Container, '\\Og\\Application' instanceof \Og\Application, '\\Og\\Collection' instanceof \Og\Collection, '\\Og\\Config' instanceof \Og\Config, '\\Og\\Context' instanceof \Og\Context, '\\Og\\Database' instanceof \Og\Database, '\\Og\\Events' instanceof \Og\Events, '\\Og\\Forge' instanceof \Og\Forge, '\\Og\\Kernel' instanceof \Og\Kernel, '\\Og\\Paths' instanceof \Og\Paths, '\\Og\\Routing' instanceof \Og\Routing, '\\Tracy\\Firelogger' instanceof \Tracy\Firelogger, '\\Symfony\\Component\\Yaml\\Yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Zend\\Diactoros\\Server' instanceof \Zend\Diactoros\Server, '\\Zend\\Stratigility\\Http\\Request' instanceof \Zend\Stratigility\Http\Request, '\\Zend\\Stratigility\\Http\\Response' instanceof \Zend\Stratigility\Http\Response], \Og\Forge::get('') => ['' == '@', 'app' instanceof \Og\Application, 'collection' instanceof \Og\Collection, 'config' instanceof \Og\Config, 'context' instanceof \Og\Context, 'database' instanceof \Og\Database, 'events' instanceof \Og\Events, 'forge' instanceof \Og\Forge, 'input' instanceof \Og\Support\Collections\Input, 'ioc' instanceof \Illuminate\Container\Container, 'kernel' instanceof \Og\Kernel, 'logger' instanceof \Tracy\Firelogger, 'paths' instanceof \Og\Paths, 'request' instanceof \Zend\Stratigility\Http\Request, 'response' instanceof \Zend\Stratigility\Http\Response, 'routing' instanceof \Og\Routing, 'server' instanceof \Zend\Diactoros\Server, 'session' instanceof \Aura\Session\Session, 'yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Aura\\Session\\Session' instanceof \Aura\Session\Session, '\\Illuminate\\Container\\Container' instanceof \Illuminate\Container\Container, '\\Og\\Application' instanceof \Og\Application, '\\Og\\Collection' instanceof \Og\Collection, '\\Og\\Config' instanceof \Og\Config, '\\Og\\Context' instanceof \Og\Context, '\\Og\\Database' instanceof \Og\Database, '\\Og\\Events' instanceof \Og\Events, '\\Og\\Forge' instanceof \Og\Forge, '\\Og\\Kernel' instanceof \Og\Kernel, '\\Og\\Paths' instanceof \Og\Paths, '\\Og\\Routing' instanceof \Og\Routing, '\\Tracy\\Firelogger' instanceof \Tracy\Firelogger, '\\Symfony\\Component\\Yaml\\Yaml' instanceof \Symfony\Component\Yaml\Yaml, '\\Zend\\Diactoros\\Server' instanceof \Zend\Diactoros\Server, '\\Zend\\Stratigility\\Http\\Request' instanceof \Zend\Stratigility\Http\Request, '\\Zend\\Stratigility\\Http\\Response' instanceof \Zend\Stratigility\Http\Response]];
Esempio n. 15
0
 public function test01()
 {
     $app = new Application(new Kernel(Forge::getInstance()));
     //$this->assertEquals($app, app('app'));
 }
Esempio n. 16
0
<?php

/**
 * @package Og
 * @version 0.1.0
 * @author  Greg Truesdell <*****@*****.**>
 */
use Og\Forge;
use Og\Support\Util;
use Tracy\Debugger;
use Tracy\FireLogger;
Debugger::$maxDepth = 6;
Debugger::enable(Debugger::DEVELOPMENT, LOCAL_LOGS);
Debugger::$showLocation = TRUE;
$logger = Debugger::getLogger();
Forge::getInstance()->instance(['logger', FireLogger::class], $logger);
/**
 * @param bool $raw
 *
 * @return string
 */
function elapsed_time_since_request($raw = FALSE)
{
    return !$raw ? sprintf("%8.1f ms", (microtime(TRUE) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000) : (microtime(TRUE) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000;
}
/**
 * @param $index
 *
 * @return string
 */
function location_from_backtrace($index = 2)
Esempio n. 17
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function test_InvalidArgumentException()
 {
     $this->forge->get('google');
 }