<?php

$t1 = microtime(true);
$container = new \Pimple\Container();
$container['a'] = $container->factory(function ($c) {
    return new A();
});
for ($i = 0; $i < 10000; $i++) {
    $j = $container['a'];
}
$t2 = microtime(true);
$results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024];
echo json_encode($results);
Example #2
0
<?php

/**
 * Configure the application container using Pimple
 */
$container = new Pimple\Container();
$container['aws.s3.client'] = $container->factory(function () {
    return new Aws\S3\S3Client(['region' => 'us-east-1', 'credentials' => ['key' => getenv('AWS_ACCESS_KEY_ID'), 'secret' => getenv('AWS_SECRET_ACCESS_KEY')], 'version' => 'latest']);
});
$container['redshift.client'] = $container->factory(function () {
    $dsn = sprintf('pgsql:host=%s;port=%d;dbname=%s;user=%s;password=%s', getenv('REDSHIFT_ENDPOINT'), getenv('REDSHIFT_PORT'), getenv('REDSHIFT_DBNAME'), getenv('REDSHIFT_USER'), getenv('REDSHIFT_PASSWORD'));
    $client = new PDO($dsn);
    $client->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $client;
});
$container['operations.s3-sync'] = $container->factory(function ($c) {
    return new KissmetricsToDatabase\Operations\SyncBucket($c['aws.s3.client'], ['source' => getenv('AWS_S3_BUCKET'), 'destination' => getenv('FILES_DIR')]);
});
$container['operations.file-importer'] = $container->factory(function ($c) {
    return new KissmetricsToDatabase\Operations\FileImporter($c['redshift.client']);
});
$container['command.db-create'] = $container->factory(function () {
    return new KissmetricsToDatabase\Commands\CreateDatabaseCommand();
});
$container['command.process-files'] = $container->factory(function ($c) {
    return new KissmetricsToDatabase\Commands\ProcessFilesCommand(['work_dir' => getenv('WORK_DIR'), 'files_dir' => getenv('FILES_DIR'), 'last_read_file' => getenv('LAST_READ_FILE')]);
});
/**
 * THIS FILE MUST RETURN THE PIMPLE CONTAINER
 */
return $container;
<?php

$container = new \Pimple\Container();
$container['a'] = $container->factory(function ($c) {
    return new A();
});
$container['b'] = $container->factory(function ($c) {
    return new B($c['a']);
});
$container['c'] = $container->factory(function ($c) {
    return new C($c['b']);
});
$container['d'] = $container->factory(function ($c) {
    return new D($c['c']);
});
$container['e'] = $container->factory(function ($c) {
    return new E($c['d']);
});
$container['f'] = $container->factory(function ($c) {
    return new F($c['e']);
});
$container['g'] = $container->factory(function ($c) {
    return new G($c['f']);
});
$container['h'] = $container->factory(function ($c) {
    return new H($c['g']);
});
$container['i'] = $container->factory(function ($c) {
    return new I($c['h']);
});
$container['j'] = $container->factory(function ($c) {
Example #4
0
 public function __construct()
 {
     if (basename(__DIR__) !== __NAMESPACE__) {
         throw new \LogicException(sprintf('%s: `%s` is an invalid framework filesystem directory! Must be `%s`.', __CLASS__, basename(__DIR__), __NAMESPACE__), 1322213425);
     }
     $this->registerNamespace(__DIR__);
     $this->urlParts = $this->guessUrlParts();
     $nsMap =& $this->namespaceMap;
     $urlParts =& $this->urlParts;
     $dc = new \Pimple\Container();
     $dc['main.default_module'] = '';
     $dc['login.forced_redirect'] = '';
     $dc['decorator.xhtml.template'] = 'Nethgui\\Template\\Main';
     $dc['user.authenticate'] = $dc->protect(function ($user, $password, &$credentials) use($dc) {
         $dc['Log']->warning(sprintf("%s: user.authenticate is not set! Could not authenticate user `%s`.", __CLASS__, $user));
         return FALSE;
     });
     $dc['l10n.available_languages'] = function ($c) {
         $langs = array();
         foreach ($c['namespaceMap'] as $ns => $prefix) {
             $path = "{$prefix}/{$ns}/Language/*";
             $langs = array_unique(array_merge($langs, array_map('basename', $c['PhpWrapper']->glob($path, GLOB_ONLYDIR))));
         }
         return $langs;
     };
     $dc['l10n.preferred_locales'] = array('en');
     $dc['l10n.catalog_resolver'] = $dc->protect(function ($lang, $catalog) use($dc) {
         $languages = array_merge(array($lang), $dc['l10n.preferred_locales']);
         foreach ($languages as $lang) {
             foreach ($dc['namespaceMap'] as $ns => $prefix) {
                 $path = "{$prefix}/{$ns}/Language/{$lang}/{$catalog}.php";
                 if ($dc['PhpWrapper']->file_exists($path)) {
                     return $path;
                 }
             }
         }
         return '';
     });
     $dc['Log'] = function ($c) {
         return new \Nethgui\Log\Syslog($c['log.level']);
     };
     $dc['PhpWrapper'] = function ($c) {
         $p = new \Nethgui\Utility\PhpWrapper();
         $p->setLog($c['Log']);
         return $p;
     };
     $dc['namespaceMap'] = function ($c) use(&$nsMap) {
         return $nsMap;
     };
     $dc['Session'] = function ($c) {
         $s = new \Nethgui\Utility\Session();
         $s->setLog($c['Log']);
         return $s;
     };
     $dc['Pdp'] = function ($c) {
         $pdp = new \Nethgui\Authorization\JsonPolicyDecisionPoint($c['FilenameResolver']);
         $pdp->setLog($c['Log']);
         foreach ($c['namespaceMap'] as $nsName => $nsPath) {
             $pdp->loadPolicy($nsName . '\\Authorization\\*.json');
         }
         return $pdp;
     };
     $dc['User'] = function ($dc) {
         $user = $dc['objectInjector'](new \Nethgui\Authorization\User($dc['Session'], $dc['Log']));
         $user->setAuthenticationValidator($dc['user.authenticate']);
         return $user;
     };
     $objectInjector = function ($o) use($dc) {
         if ($o instanceof \Nethgui\Component\DependencyInjectorAggregate) {
             $o->setDependencyInjector($dc['objectInjector']);
         }
         if ($o instanceof \Nethgui\Component\DependencyConsumer) {
             foreach ($o->getDependencySetters() as $key => $setter) {
                 if (!isset($dc[$key])) {
                     continue;
                 }
                 call_user_func($setter, $dc[$key]);
             }
         }
         if ($o instanceof \Nethgui\Log\LogConsumerInterface) {
             $o->setLog($dc['Log']);
         }
         if ($o instanceof \Nethgui\Utility\SessionConsumerInterface) {
             $o->setSession($dc['Session']);
         }
         if ($o instanceof Authorization\PolicyEnforcementPointInterface) {
             $o->setPolicyDecisionPoint($dc['Pdp']);
         }
         if ($o instanceof \Nethgui\System\PlatformConsumerInterface) {
             $o->setPlatform($dc['Platform']);
         }
         return $o;
     };
     $dc['objectInjector'] = $dc->protect($objectInjector);
     $dc['StaticFiles'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\Model\StaticFiles(), $c);
     };
     $dc['UserNotifications'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\Model\UserNotifications(), $c);
     };
     $dc['ValidationErrors'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\Model\ValidationErrors(), $c);
     };
     $dc['SystemTasks'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\Model\SystemTasks($c['Log']), $c);
     };
     $dc['FilenameResolver'] = $this->getFileNameResolver();
     $dc['ModuleSet'] = function ($c) {
         $moduleSet = new \Nethgui\Module\ModuleLoader($c['objectInjector']);
         foreach ($c['namespaceMap'] as $nsName => $nsRoot) {
             if ($nsName === 'Nethgui') {
                 $nsRoot = FALSE;
             }
             $moduleSet->setNamespace($nsName . '\\Module', $nsRoot);
         }
         return $c['objectInjector'](new \Nethgui\Authorization\AuthorizedModuleSet($moduleSet, $c['User']), $c);
     };
     $dc['Platform'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\System\NethPlatform($c['User'], $c['SystemTasks']), $c);
     };
     $dc['Translator'] = function ($c) {
         return $c['objectInjector'](new \Nethgui\View\Translator($c['OriginalRequest']->getLanguageCode(), $c['l10n.catalog_resolver'], array_keys($c['namespaceMap'])), $c);
     };
     $dc['HttpResponse'] = function ($c) {
         return new \Nethgui\Utility\HttpResponse();
     };
     $dc['Main.factory'] = $dc->factory(function ($c) {
         return $c['objectInjector'](new \Nethgui\Module\Main($c['ModuleSet'], $c['main.default_module']), $c);
     });
     $dc['View'] = function ($c) use(&$urlParts) {
         $rootView = $c['objectInjector'](new \Nethgui\View\View($c['OriginalRequest']->getFormat(), $c['Main'], $c['Translator'], $urlParts), $c);
         $rootView->setTemplate(FALSE);
         /*
          *  FIXME: remove deprecated features in version 2.0
          */
         $rootView->commands = $c['objectInjector'](new \Nethgui\View\LegacyCommandBag($rootView, $c), $c);
         /*
          *
          */
         return $rootView;
     };
     $dc['decorator.xhtml.params'] = function ($dc) {
         return new \ArrayObject(array('disableHeader' => FALSE, 'disableMenu' => FALSE, 'disableFooter' => TRUE));
     };
     $dc['main.xhtml.template'] = $dc->protect(function (\Nethgui\Renderer\Xhtml $renderer, $T, \Nethgui\Utility\HttpResponse $httpResponse) use($dc, &$urlParts) {
         $decoratorView = $dc['objectInjector'](new \Nethgui\View\View($dc['OriginalRequest']->getFormat(), $dc['Main'], $dc['Translator'], $urlParts), $dc);
         $decoratorView->setTemplate($dc['decorator.xhtml.template']);
         $decoratorView->copyFrom($renderer);
         $decoratorView->copyFrom($dc['decorator.xhtml.params']);
         $decoratorView['lang'] = $dc['Translator']->getLanguageCode();
         $decoratorView['username'] = $dc['User']->asAuthorizationString();
         $decoratorView['currentModuleOutput'] = 'currentModule';
         // Override helpAreaOutput
         $decoratorView['helpAreaOutput'] = (string) $renderer->panel($renderer::STATE_UNOBTRUSIVE)->setAttribute('class', 'HelpArea')->insert($renderer->panel()->setAttribute('class', 'wrap')->insert($renderer->buttonList($renderer::BUTTONSET)->insert($renderer->button('Hide', $renderer::BUTTON_CANCEL))));
         $currentModule = $renderer['moduleView']->getModule();
         // Override currentModuleOutput
         // - We must render CurrentModule before NotificationArea to catch notifications
         if ($currentModule instanceof \Nethgui\Module\ModuleCompositeInterface) {
             $decoratorView['currentModuleOutput'] = (string) $renderer->inset('moduleView');
         } else {
             $decoratorView['currentModuleOutput'] = (string) $renderer->panel()->setAttribute('class', 'Controller')->insert($renderer->inset('moduleView', $renderer::INSET_FORM | $renderer::INSET_WRAP)->setAttribute('class', 'Action')->setAttribute('receiver', $currentModule->getIdentifier()));
         }
         $decoratorView['trackerOutput'] = (string) $renderer->inset('Tracker', $renderer::STATE_UNOBTRUSIVE);
         // Override menuOutput
         $decoratorView['menuOutput'] = (string) $renderer->inset('Menu');
         // Override notificationOutput. Render Notification at the end, to catch notifications from other modules.
         $decoratorView['notificationOutput'] = (string) $renderer->inset('Notification');
         $decoratorView['moduleTitle'] = $dc['Translator']->translate($currentModule, $currentModule->getAttributesProvider()->getTitle());
         //read css from db
         $db = $dc['Main']->getPlatform()->getDatabase('configuration');
         $colors = $db->getProp('httpd-admin', 'colors');
         if ($colors) {
             $colors = explode(',', $colors);
             $decoratorView['colors'] = $colors;
         }
         $logo = $db->getProp('httpd-admin', 'logo');
         $decoratorView['logo'] = $decoratorView->getPathUrl() . ($logo ? sprintf('images/%s', $logo) : 'images/logo.png');
         $decoratorView['company'] = $db->getProp('OrganizationContact', 'Company');
         $decoratorView['address'] = $db->getProp('OrganizationContact', 'Street') . ", " . $db->getProp('OrganizationContact', 'City');
         $favicon = $db->getProp('httpd-admin', 'favicon');
         $decoratorView['favicon'] = $decoratorView->getPathUrl() . ($favicon ? sprintf('images/%s', $favicon) : 'images/favicon.png');
         return $renderer->spawnRenderer($decoratorView)->render();
     });
     $dc['main.css.template'] = $dc->protect(function (\Nethgui\Renderer\TemplateRenderer $renderer, $T, \Nethgui\Utility\HttpResponse $httpResponse) use($dc) {
         $content = '';
         foreach ($renderer as $value) {
             if ($value instanceof \Nethgui\View\ViewInterface) {
                 $content .= $renderer->spawnRenderer($value)->render();
             } else {
                 $content .= (string) $value;
             }
         }
         return $content;
     });
     $dc['main.js.template'] = $dc['main.css.template'];
     $dc['main.txt.template'] = $dc['main.css.template'];
     $dc['Renderer'] = function ($dc) {
         $filenameResolver = $dc['FilenameResolver'];
         $targetFormat = $dc['OriginalRequest']->getFormat();
         // Set the default root view template
         if (isset($dc[sprintf('main.%s.template', $targetFormat)])) {
             $dc['View']->setTemplate($dc[sprintf('main.%s.template', $targetFormat)]);
         }
         if ($targetFormat === 'json') {
             $renderer = new \Nethgui\Renderer\Json($dc['View']);
         } elseif ($targetFormat === 'xhtml') {
             $renderer = new \Nethgui\Renderer\Xhtml($dc['View'], $filenameResolver, 0);
         } else {
             if ($targetFormat === 'js') {
                 $renderer = new \Nethgui\Renderer\TemplateRenderer($dc['View'], $filenameResolver, 'application/javascript', 'UTF-8');
             } elseif ($targetFormat === 'css') {
                 $renderer = new \Nethgui\Renderer\TemplateRenderer($dc['View'], $filenameResolver, 'text/css', 'UTF-8');
             } else {
                 $renderer = new \Nethgui\Renderer\TemplateRenderer($dc['View'], $filenameResolver, 'text/plain', 'UTF-8');
             }
         }
         $dc['HttpResponse']->addHeader(sprintf('Content-Type: %s', $renderer->getContentType()) . ($renderer->getCharset() ? sprintf('; charset=%s', $renderer->getCharset()) : ''));
         return $dc['objectInjector']($renderer, $dc);
     };
     $this->dc = $dc;
 }
Example #5
0
File: index.php Project: vitrig/si
    $workers[] = $worker;
    $app['session']('workers', $workers);
});
$app['workers_from_session'] = $app->protect(function () use($app) {
    return $app['session']('workers') ? $app['session']('workers') : [];
});
$app['worker_get'] = $app->protect(function ($id) use($app) {
    $stmt = $app['db']->prepare('SELECT * FROM user WHERE id = :id');
    $stmt->execute([':id' => $id]);
    return $stmt->fetch(PDO::FETCH_ASSOC);
});
$app['worker_delete'] = $app->protect(function ($id) use($app) {
    $app['db']->prepare('DELETE FROM user WHERE id = :id')->execute([':id' => $id]);
});
$app['worker_from_post'] = $app->factory(function () use($app) {
    $post = $app['post'];
    return ['name' => $post('name', ''), 'last_name' => $post('last_name', ''), 'prev_name' => $post('prev_name', ''), 'postal' => $post('postal', ''), 'email' => $post('email', ''), 'gender' => $post('gender', '')];
});
$app['user_from_post'] = $app->factory(function () use($app) {
    $post = $app['post'];
    return ['name' => $post('name', ''), 'last_name' => $post('last_name', ''), 'password' => $post('password', ''), 'password_confirm' => $post('password_confirm', ''), 'permissions' => '0', 'login' => $post('login', '')];
});
$app['escape'] = $app->protect(function ($var) {
    return htmlspecialchars($var, ENT_QUOTES, 'UTF-8', false);
});
$app['array_get'] = $app->protect(function ($key, $default, $array) {
    if (is_object($array)) {
        return isset($array->{$key}) ? $array->{$key} : $default;
    } else {
        return isset($array[$key]) ? $array[$key] : $default;
    }
});
Example #6
0
// get the locations right
$lib = realpath(dirname(__FILE__));
$app = realpath(dirname($_SERVER["SCRIPT_FILENAME"]) . '/..');
// autoload
define('startTime', microtime(true));
require $lib . '/app/globals.php';
require $lib . '/vendor/autoload.php';
$pebug = \Pedetes\pebug::Instance();
$pebug->init(startTime);
// create injection container
$ctn = new Pimple\Container();
// injected paths
$ctn["pathLib"] = $lib . '/';
$ctn["pathApp"] = $app . '/';
// injected helper
$ctn['session'] = $ctn->factory(function ($ctn) {
    return new Pedetes\session($ctn);
});
$ctn['db'] = $ctn->factory(function ($ctn) {
    return new Pedetes\database($ctn);
});
$ctn['request'] = $ctn->factory(function ($ctn) {
    return new Pedetes\request($ctn);
});
$ctn['cache'] = $ctn->factory(function ($ctn) {
    return new Pedetes\cache($ctn);
});
// start up the app
$app = new Pedetes\bootstrap($ctn);
$app->init();
Example #7
0
<?php

require_once "../vendor/autoload.php";
$container = new Pimple\Container();
$container["service.request"] = $container->factory(function (Pimple\Container $c) {
    $request = new SlaxWeb\Router\Request();
    if ($c["router.protocol"] === "cli") {
        $request->setUpCLI($c["router.uri"]);
    }
    return $request;
});
$container["service.router"] = $container->factory(function (Pimple\Container $c) {
    $request = $c["service.request"];
    $router = new SlaxWeb\Router\Router($request);
    SlaxWeb\Router\Helper::init($router, $request);
    return $router;
});
$options = getopt("u:", ["uri:"]);
if (isset($options["u"])) {
    $options["uri"] = $options["u"];
}
$container["router.protocol"] = "cli";
$container["router.uri"] = $options["uri"];
$router = $container["service.router"];
require_once "../app/routes.php";
$action = $router->process();
$container["app.action"] = $action["action"];
$container["app.params"] = $action["params"];
$container["app.action"];
Example #8
0
namespace Maybe\Examples\Log;

require __DIR__ . '/../../vendor/autoload.php';
use Maybe\Maybe;
/*
 * Actor wants an instance of Log to log what it does. But if we don't care, or
 * if we don't know if an actual instance of Log is available, we can wrap Log 
 * with Maybe and be safe without having to change anything in Actor.
 *
 * In this example we pretend to have a Pimple container providing both Log and
 * Actor, but we don't actually have a Log instance
 */
$container = new \Pimple\Container();
$container['Actor'] = $container->factory(function ($c) {
    return new Actor($c['Log']);
});
//we have no actual Log
$container['__Log'] = null;
// MaybeLog wraps Log
$container['MaybeLog'] = function ($c) {
    return new Maybe('Maybe\\Examples\\Log\\Log');
};
// and we define a factory to wrap actual instances of Log, if any, using MaybeLog
$container['Log'] = $container->factory(function ($c) {
    return $c['MaybeLog']->wrap($c['__Log']);
});
$actor = $container['Actor'];
$actor->doSomething();
// doSomething worked fine without logging anything
/*
<?php

$container = new \Pimple\Container();
$container['a'] = function ($c) {
    return new A();
};
$container['b'] = $container->factory(function ($c) {
    return new B($c['a']);
});
//trigger autoloader
$b = $container['b'];
unset($b);
$t1 = microtime(true);
for ($i = 0; $i < 10000; $i++) {
    $j = $container['b'];
}
$t2 = microtime(true);
$results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024];
echo json_encode($results);
Example #10
0
/**
 * Created by PhpStorm.
 * User: Rusinov
 * Date: 28.06.15
 * Time: 13:42
 */
require 'autoload.php';
require 'vendor/autoload.php';
$container = new \Pimple\Container();
$container['config'] = function () {
    return new \Core\Config();
};
$container['DB'] = function ($c) {
    return new \Core\DB($c['config']['server_name'], $c['config']['db_user'], $c['config']['db_pass'], $c['config']['db_name']);
};
$container['StreamSaverWorker'] = $container->factory(function ($c) {
    return new \StreamSaver\Worker($c['config']['stream_url'], $c['config']['video_length'], $c['config']['video_format'], $c['config']['project_root'] . $c['config']['video_dir'], $c['DB']);
});
// Реальный соап-клиент
//$container['ScheduleSoapClient'] = function ($c) {
//	return new SoapClient(
//		$c['config']['schedule_wsdl_url']
//	);
//};
// Стаб соап-клиента
$container['ScheduleSoapClient'] = function ($c) {
    return new \Schedule\MySoapClient($c['config']['schedule_wsdl_url']);
};
$container['SoapScheduleProvider'] = function ($c) {
    return new \Schedule\SoapScheduleProvider($c['ScheduleSoapClient'], $c['DB']);
};
Example #11
0
    $pdo = new Aura\Sql\ExtendedPdo("mysql:host={$connection->host}", $connection->user, $connection->password);
    $profiler = new Aura\Sql\Profiler();
    $profiler->setActive(true);
    $pdo->setProfiler($profiler);
    return $pdo;
});
$container['db_connection_locator'] = $db_connections;
// configure the comment service connection
$container['comment_service_api'] = function () use($config) {
    $configuration = (new Jacobemerick\CommentService\Configuration())->setUsername($config->comments->user)->setPassword($config->comments->password)->addDefaultHeader('Content-Type', 'application/json')->setHost($config->comments->host)->setCurlTimeout($config->comments->timeout);
    $client = new Jacobemerick\CommentService\ApiClient($configuration);
    return new Jacobemerick\CommentService\Api\DefaultApi($client);
};
// setup mail handler
$container['mail'] = $container->factory(function ($c) {
    return (new Jacobemerick\Archangel\Archangel())->setLogger($c['logger']);
});
// setup the logger
$container['setup_logger'] = $container->protect(function ($name) use($container) {
    $logger = new Monolog\Logger($name);
    $logPath = __DIR__ . "/logs/{$name}.log";
    $streamHandler = new Monolog\Handler\StreamHandler($logPath, Monolog\Logger::INFO);
    // todo - make this more useful
    // $streamHandler->setFormatter(
    //     new Monolog\Formatter\LineFormatter("[%datetime%] %channel%.%level_name%: %message%\n")
    // );
    $logger->pushHandler($streamHandler);
    Monolog\ErrorHandler::register($logger);
    $container['logger'] = $logger;
});
// adds profiler
 private static function configure()
 {
     $container = new \Pimple\Container(array(DataFeed::FEED_STORE => function ($c) {
         global $wpdb;
         return new \DataFeed\Store\DatabaseFeedStore($wpdb, $c[DataFeed::FEED_HANDLE_FACTORY]);
     }, DataFeed::FEED_CACHE_BACKEND => function ($c) {
         if (function_exists('\\curl_init')) {
             return new \DataFeed\Cache\CurlFeedCache();
         }
         return new \DataFeed\Cache\FileGetContentsFeedCache();
     }, DataFeed::FEED_CACHE => function ($c) {
         return new \DataFeed\Cache\TransientFeedCache($c[DataFeed::FEED_CACHE_BACKEND], $c[DataFeed::TRANSIENT_CACHE]);
     }, DataFeed::FEED_HANDLE_FACTORY => function ($c) {
         return new \DataFeed\Internal\DefaultFeedHandleFactory($c[DataFeed::FEED_CACHE], $c[DataFeed::PAGE_URL_FACTORY], $c[DataFeed::PAGE_UPDATE_CHECK_FACTORY]);
     }, DataFeed::OBJECT_QUERY_LANGUAGE => function ($c) {
         return new \DataFeed\ObjectQuery\SimpleObjectQueryLanguage();
     }, DataFeed::REST_SERVICE => function ($c) {
         return new \DataFeed\Ajax\DefaultRestService($c[DataFeed::FEED_HANDLE_FACTORY], $c[DataFeed::FEED_CACHE], $c[DataFeed::REQUEST_DATA_FETCHER]);
     }, DataFeed::REQUEST_DATA_FETCHER => function ($c) {
         return new \DataFeed\Ajax\DefaultRequestDataFetcher();
     }, DataFeed::OBJECT_CACHE => function ($c) {
         return new \DataFeed\Cache\ObjectCache();
     }, DataFeed::TRANSIENT_CACHE => function ($c) {
         return new \DataFeed\Cache\TransientCache();
     }, DataFeed::PAGE_UPDATE_CHECK_FACTORY => function ($c) {
         return new \DataFeed\Pagination\PageUpdateCheckFactory();
     }, DataFeed::PAGE_URL_FACTORY => function ($c) {
         return new \DataFeed\Pagination\PageUrlFactory($c[DataFeed::OBJECT_QUERY_LANGUAGE]);
     }, DataFeed::OBJECT_MERGER => function ($c) {
         return new \DataFeed\ObjectMerge\DefaultObjectMerge();
     }));
     $container[self::FEED_HANDLE_FACTORY]->setFeedStore($container[self::FEED_STORE]);
     $container[self::MERGING_FEED_CACHE] = $container->factory(function ($c) {
         return new \DataFeed\Cache\MergingFeedCache($c[DataFeed::FEED_CACHE], $c[DataFeed::OBJECT_CACHE], $c[DataFeed::OBJECT_MERGER]);
     });
     self::$container = $container;
 }
Example #13
0
$container['pickupTweetService'] = function ($c) {
    return new sat8bit\Matomepp\Service\PickupTweetService($c['twitteroauth'], $c['pdo']);
};
$container['twitteroauth'] = function ($c) {
    $consumerKey = $c['twitterConfig']['consumer_key'];
    $consumerSecret = $c['twitterConfig']['consumer_secret'];
    $accessToken = $c['twitterConfig']['access_token'];
    $accessTokenSecret = $c['twitterConfig']['access_token_secret'];
    return new Abraham\TwitterOAuth\TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
};
$container['twitterConfig'] = function ($c) {
    return parse_ini_file(__DIR__ . "/../conf/twitter.ini");
};
$container['amqpChannelRssUrl'] = $container->factory(function ($c) {
    $channel = $c['amqpConnection']->channel();
    $channel->queue_declare('rssurl', false, false, false, false);
    return $channel;
});
$container['recommendationRepo'] = $container->factory(function ($c) {
    return new sat8bit\Matomepp\Recommendation\RecommendationRepository($c['pdo']);
});
$container['blogRepo'] = $container->factory(function ($c) {
    return new sat8bit\Matomepp\Blog\BlogRepository($c['pdo']);
});
$container['articleRepo'] = $container->factory(function ($c) {
    return new sat8bit\Matomepp\Article\ArticleRepository($c['pdo']);
});
$container['rssRepo'] = $container->factory(function ($c) {
    return new sat8bit\Matomepp\RSS\RSSRepository($c['pdo']);
});
$container['pdo'] = $container->factory(function ($c) {