/** * @expectedException \RuntimeException */ public function testGeneratorNotFound() { $generator = new PaginationGenerator(); $gm = new GeneratorManager(); $gm->addGenerator('paginator', $generator); $gm->getGenerator('paginator-1'); }
public function __construct() { parent::__construct(); $this['spress.version'] = self::VERSION; $this['spress.version.details'] = ['id' => self::VERSION_ID, 'major' => self::MAJOR_VERSION, 'minor' => self::MINOR_VERSION, 'release' => self::RELEASE_VERSION, 'extra' => self::EXTRA_VERSION]; $this['spress.externals'] = []; $this['spress.config.default_filename'] = __DIR__ . '/config/default.yml'; $this['spress.config.site_dir'] = realpath('./'); $this['spress.config.build_dir'] = function ($c) { return $c['spress.config.site_dir'] . '/build'; }; $this['spress.config.plugin_dir'] = function ($c) { return $c['spress.config.site_dir'] . '/src/plugins'; }; $this['spress.config.vendor_dir'] = function ($c) { return 'vendor'; }; $this['spress.config.composer_filename'] = 'composer.json'; $this['spress.config.env'] = null; $this['spress.config.safe'] = null; $this['spress.config.drafts'] = null; $this['spress.config.url'] = null; $this['spress.config.timezone'] = null; $this['spress.config.values'] = function ($c) { $configLoader = $c['spress.config']; $attributes = $configLoader->loadConfiguration($c['spress.config.site_dir'], $c['spress.config.env']); if (is_null($this['spress.config.drafts']) === false) { $attributes['drafts'] = (bool) $this['spress.config.drafts']; } if (is_null($this['spress.config.safe']) === false) { $attributes['safe'] = (bool) $this['spress.config.safe']; } if (is_null($this['spress.config.timezone']) === false) { $attributes['timezone'] = $this['spress.config.timezone']; } if (is_null($this['spress.config.url']) === false) { $attributes['url'] = $this['spress.config.url']; } return $attributes; }; $this['spress.config'] = function ($c) { return new Configuration($c['lib.configLoader'], $c['spress.config.default_filename']); }; $this['lib.configLoader'] = function ($c) { $locator = new FileLocator([]); return new Config([new \Yosymfony\ConfigLoader\Loaders\YamlLoader($locator), new \Yosymfony\ConfigLoader\Loaders\JsonLoader($locator)]); }; $this['lib.eventDispatcher'] = function ($c) { return new EventDispatcher(); }; $this['lib.twig.loader_array'] = function ($c) { return new \Twig_Loader_Array([]); }; $this['lib.twig.options'] = function ($c) { return ['autoescape' => false, 'debug' => $c['spress.config.values']['debug']]; }; $this['lib.twig'] = function ($c) { $options = $c['lib.twig.options']; $twig = new \Twig_Environment($c['lib.twig.loader_array'], $options); if ($options['debug'] === true) { $twig->addExtension(new \Twig_Extension_Debug()); } return $twig; }; $this['lib.embeddedComposer'] = function ($c) { $embeddedComposerBuilder = new EmbeddedComposerBuilder($c['spress.plugin.classLoader'], $c['spress.config.site_dir']); $embeddedComposer = $embeddedComposerBuilder->setComposerFilename($c['spress.config.composer_filename'])->setVendorDirectory($c['spress.config.vendor_dir'])->build(); return $embeddedComposer; }; $this['spress.io'] = function ($c) { return new NullIO(); }; $this['spress.plugin.classLoader'] = function ($c) { $autoloaders = spl_autoload_functions(); return $autoloaders[0][0]; }; $this['spress.plugin.pluginManager'] = function ($c) { $pathComposerFilename = $c['spress.config.site_dir'] . '/' . $c['spress.config.composer_filename']; if (file_exists($pathComposerFilename) === true) { $embeddedComposer = $c['lib.embeddedComposer']; $embeddedComposer->processAdditionalAutoloads(); } $excludePath = $c['spress.config.values']['plugin_manager_builder']['exclude_path']; $builder = new PluginManagerBuilder($c['spress.config.plugin_dir'], $c['lib.eventDispatcher'], $excludePath); return $builder->build(); }; $this['spress.dataWriter'] = function ($c) { $fs = new Filesystem(); return new FilesystemDataWriter($fs, $c['spress.config.build_dir']); }; $this['spress.dataSourceManager.parameters'] = function ($c) { return ['%site_dir%' => $c['spress.config.site_dir'], '%include%' => $c['spress.config.values']['include'], '%exclude%' => $c['spress.config.values']['exclude'], '%text_extensions%' => $c['spress.config.values']['text_extensions'], '%attribute_syntax%' => $c['spress.config.values']['attribute_syntax'], '%avoid_renderizer_path%' => $c['spress.config.values']['avoid_renderizer']['paths'], '%avoid_renderizer_extension%' => $c['spress.config.values']['avoid_renderizer']['filename_extensions']]; }; $this['spress.dataSourceManager'] = function ($c) { $parameters = $c['spress.dataSourceManager.parameters']; $builder = new DataSourceManagerBuilder($parameters); $dataSources = $c['spress.config.values']['data_sources']; return $builder->buildFromConfigArray($dataSources); }; $this['spress.cms.generatorManager'] = function ($c) { $pagination = new \Yosymfony\Spress\Core\ContentManager\Generator\Pagination\PaginationGenerator(); $taxonomy = new \Yosymfony\Spress\Core\ContentManager\Generator\Taxonomy\TaxonomyGenerator(); $manager = new GeneratorManager(); $manager->addGenerator('pagination', $pagination); $manager->addGenerator('taxonomy', $taxonomy); return $manager; }; $this['spress.cms.converterManager.converters'] = function ($c) { $markdownExts = $c['spress.config.values']['markdown_ext']; $extensionMappingTable = $c['spress.config.values']['map_converter_extension']; return ['MapConverter' => new \Yosymfony\Spress\Core\ContentManager\Converter\MapConverter($extensionMappingTable), 'MichelfMarkdownConverter' => new \Yosymfony\Spress\Core\ContentManager\Converter\MichelfMarkdownConverter($markdownExts)]; }; $this['spress.cms.converterManager'] = function ($c) { $cm = new ConverterManager($c['spress.config.values']['text_extensions']); $converters = $c['spress.cms.converterManager.converters']; foreach ($converters as $converter) { $cm->addConverter($converter); } return $cm; }; $this['spress.cms.collectionManager'] = function ($c) { $builder = new CollectionManagerBuilder(); return $builder->buildFromConfigArray($c['spress.config.values']['collections']); }; $this['spress.cms.permalinkGenerator'] = function ($c) { $permalink = $c['spress.config.values']['permalink']; $preservePathTitle = $c['spress.config.values']['preserve_path_title']; $noHtmlExtension = $c['spress.config.values']['no_html_extension']; return new PermalinkGenerator($permalink, $preservePathTitle, $noHtmlExtension); }; $this['spress.cms.renderizer'] = function ($c) { $twig = $c['lib.twig']; $loader = $c['lib.twig.loader_array']; $layoutExts = $c['spress.config.values']['layout_ext']; return new TwigRenderizer($twig, $loader, $layoutExts); }; $this['spress.cms.siteAttribute'] = function ($c) { return new SiteAttribute(); }; $this['spress.cms.contentManager'] = $this->factory(function ($c) { return new ContentManager($c['spress.dataSourceManager'], $c['spress.dataWriter'], $c['spress.cms.generatorManager'], $c['spress.cms.converterManager'], $c['spress.cms.collectionManager'], $c['spress.cms.permalinkGenerator'], $c['spress.cms.renderizer'], $c['spress.cms.siteAttribute'], $c['spress.plugin.pluginManager'], $c['lib.eventDispatcher'], $c['spress.io']); }); }
protected function getGeneratorManager() { $generator = new PaginationGenerator(); $gm = new GeneratorManager(); $gm->addGenerator('pagination', $generator); return $gm; }