private static function instance() { if (!isset(self::$instance)) { $provider = DI::get(SessionProvider::class); if (!isset($provider)) { DI::bindSingleton(SessionProvider::class, new FileSessionProvider()); $provider = DI::get(SessionProvider::class); } self::$instance = new Session($provider); } return self::$instance; }
public function appStart() { Command::bind('model', ModelCommand::class); Command::bind('migrate', MigrateCommand::class); Command::bind('migration', MigrationCommand::class); Command::bind('daemon', DaemonCommand::class); Command::bind('service', ServiceCommand::class); Daemon::bind('idle', IdleDaemon::class); Daemon::bind('schedule', ScheduleDaemon::class); Settings::load('commands'); Settings::load('daemons'); DI::bindSingleton(AuthStorage::class, CacheAuthStorage::class); }
public static function module($module) { DI::bindSingleton($module, $module); if (false === array_search($module, self::instance()->appModules)) { self::instance()->appModules[] = $module; } $killedIndex = array_search($module, self::instance()->killedAppModules); if (false !== $killedIndex) { unset(self::instance()->killedAppModules[$killedIndex]); } }
<?php /** * Created by PhpStorm. * User: lbob * Date: 2015/11/13 * Time: 17:46 */ use Xaircraft\DI; use Xaircraft\Web\Session\FileSessionProvider; use Xaircraft\Web\Session\SessionProvider; DI::bindSingleton(SessionProvider::class, new FileSessionProvider()); DI::bindSingleton(EmailSender::class, EmailSenderImpl::class);
public function appStart() { DI::bindSingleton(AuthStorage::class, SessionAuthStorage::class); }