From 43efa113d74bb31376cc1612d0c33ab28902c7b4 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 16 Jun 2014 10:39:04 +0200 Subject: [PATCH] Updating vendors --- vendor/autoload.php | 2 +- .../Bundle/BootstrapBundle/.gitignore | 7 - .../Bundle/BootstrapBundle/.scrutinizer.yml | 44 - .../Bundle/BootstrapBundle/.travis.yml | 15 - .../BraincraftedBootstrapBundle.php | 24 - .../Bundle/BootstrapBundle/CHANGELOG.md | 7 - .../Bundle/BootstrapBundle/CONTRIBUTING.md | 29 - .../Command/GenerateCommand.php | 113 - .../Command/InstallCommand.php | 91 - .../Composer/ScriptHandler.php | 98 - .../AsseticConfiguration.php | 132 - .../BraincraftedBootstrapExtension.php | 179 - .../DependencyInjection/Configuration.php | 79 - .../Form/Extension/TypeSetterExtension.php | 40 - .../Form/Type/BootstrapCollectionType.php | 98 - .../Form/Type/FormActionsType.php | 97 - .../BootstrapBundle/Form/Type/MoneyType.php | 105 - .../Bundle/BootstrapBundle/LICENSE | 9 - .../Bundle/BootstrapBundle/README.md | 217 - .../Resources/config/services/form.xml | 32 - .../Resources/config/services/session.xml | 17 - .../Resources/config/services/twig.xml | 32 - .../Resources/js/bc-bootstrap-collection.js | 123 - .../BootstrapBundle/Resources/less/form.less | 70 - .../views/Bootstrap/bootstrap.less.twig | 59 - .../Resources/views/Form/bootstrap.html.twig | 864 --- .../Resources/views/Menu/bootstrap.html.twig | 186 - .../views/Pagination/bootstrap.html.twig | 62 - .../Resources/views/flash.html.twig | 34 - .../Resources/views/ie8-support.html.twig | 4 - .../Resources/views/layout.html.twig | 27 - .../BootstrapBundle/Session/FlashMessage.php | 94 - .../Tests/Command/GenerateCommandTest.php | 130 - .../Tests/Command/InstallCommandTest.php | 138 - .../Tests/Command/fixtures/app/.gitkeep | 0 .../vendor/twbs/bootstrap/fonts/font1.txt | 0 .../Tests/Command/fixtures/web/fonts/.gitkeep | 0 .../AsseticConfigurationTest.php | 54 - .../BraincraftedBootstrapExtensionTest.php | 69 - .../Extension/TypeSetterExtensionTest.php | 47 - .../Form/Type/BootstrapCollectionTypeTest.php | 79 - .../Tests/Form/Type/FormActionsTypeTest.php | 112 - .../Tests/Form/Type/MoneyTypeTest.php | 72 - .../Tests/Session/FlashMessageTest.php | 101 - .../Twig/BootstrapBadgeExtensionTest.php | 69 - .../Tests/Twig/BootstrapFormExtensionTest.php | 107 - .../Tests/Twig/BootstrapIconExtensionTest.php | 89 - .../Twig/BootstrapLabelExtensionTest.php | 129 - .../Tests/Util/PathUtilTest.php | 46 - .../Twig/BootstrapBadgeExtension.php | 59 - .../Twig/BootstrapFormExtension.php | 174 - .../Twig/BootstrapIconExtension.php | 91 - .../Twig/BootstrapLabelExtension.php | 121 - .../Bundle/BootstrapBundle/Util/PathUtil.php | 64 - .../Bundle/BootstrapBundle/composer.json | 40 - .../Bundle/BootstrapBundle/phpunit.xml.dist | 38 - vendor/composer/autoload_classmap.php | 48 +- vendor/composer/autoload_files.php | 2 +- vendor/composer/autoload_namespaces.php | 62 +- vendor/composer/autoload_psr4.php | 40 + vendor/composer/autoload_real.php | 10 +- vendor/composer/installed.json | 6757 ++++++++++++++--- vendor/doctrine/common/.gitignore | 1 + vendor/doctrine/common/.travis.yml | 10 +- vendor/doctrine/common/README.md | 2 +- vendor/doctrine/common/composer.json | 4 + vendor/doctrine/common/composer.lock | 322 - .../lib/Doctrine/Common/EventManager.php | 2 +- .../Mapping/Driver/AnnotationDriver.php | 44 +- .../Mapping/RuntimeReflectionService.php | 11 +- .../Mapping/StaticReflectionService.php | 2 +- .../Common/Persistence/ObjectManager.php | 2 +- .../Common/Proxy/AbstractProxyFactory.php | 7 + .../Exception/UnexpectedValueException.php | 4 +- .../Doctrine/Common/Proxy/ProxyGenerator.php | 12 +- .../Reflection/StaticReflectionParser.php | 4 +- .../common/lib/Doctrine/Common/Version.php | 2 +- .../Mapping/StaticReflectionServiceTest.php | 2 +- .../Common/Proxy/AbstractProxyFactoryTest.php | 28 + .../Common/Proxy/ProxyClassGeneratorTest.php | 19 + .../Common/Proxy/ProxyMagicMethodsTest.php | 20 + .../Reflection/DeeperNamespaceParent.php | 2 +- .../Reflection/StaticReflectionParserTest.php | 78 +- .../common/tests/NativePhpunitTask.php | 246 - vendor/doctrine/orm/bin/doctrine.php | 1 - vendor/doctrine/orm/docs/en/index.rst | 3 +- .../orm/docs/en/reference/caching.rst | 2 +- .../orm/docs/en/reference/configuration.rst | 2 +- .../doctrine/orm/docs/en/reference/events.rst | 66 +- vendor/doctrine/orm/docs/en/reference/faq.rst | 2 +- vendor/doctrine/orm/docs/en/toc.rst | 12 +- .../Internal/Hydration/HydrationException.php | 14 + .../ORM/Internal/Hydration/ObjectHydrator.php | 8 +- .../Hydration/SimpleObjectHydrator.php | 8 +- .../ORM/Mapping/ClassMetadataInfo.php | 6 +- .../orm/lib/Doctrine/ORM/Query/SqlWalker.php | 5 +- .../ORM/Tools/Console/ConsoleRunner.php | 6 +- .../ORM/Tools/Export/Driver/XmlExporter.php | 2 +- .../Pagination/LimitSubqueryOutputWalker.php | 22 +- .../orm/lib/Doctrine/ORM/UnitOfWork.php | 37 +- .../doctrine/orm/lib/Doctrine/ORM/Version.php | 2 +- vendor/monolog/monolog/CHANGELOG.mdown | 7 + vendor/monolog/monolog/LICENSE | 2 +- vendor/monolog/monolog/composer.json | 2 +- .../src/Monolog/Handler/ErrorLogHandler.php | 20 +- .../Monolog/Handler/FingersCrossedHandler.php | 22 +- .../src/Monolog/Handler/NewRelicHandler.php | 4 + .../src/Monolog/Handler/RavenHandler.php | 2 +- .../Monolog/Handler/RotatingFileHandler.php | 8 +- vendor/monolog/monolog/src/Monolog/Logger.php | 16 + .../Monolog/Handler/ErrorLogHandlerTest.php | 23 +- .../Handler/FingersCrossedHandlerTest.php | 18 + .../Monolog/Handler/NewRelicHandlerTest.php | 44 +- vendor/oyejorge/less.php/README.md | 33 +- vendor/oyejorge/less.php/bin/lessc | 69 +- vendor/oyejorge/less.php/lib/Less/Cache.php | 87 +- .../less.php/lib/Less/Environment.php | 7 +- .../less.php/lib/Less/Exception/Chunk.php | 6 +- .../oyejorge/less.php/lib/Less/Functions.php | 24 +- vendor/oyejorge/less.php/lib/Less/Mime.php | 13 +- .../less.php/lib/Less/Output/Mapped.php | 4 +- vendor/oyejorge/less.php/lib/Less/Parser.php | 170 +- .../less.php/lib/Less/SourceMap/Generator.php | 52 +- .../less.php/lib/Less/Tree/Anonymous.php | 2 +- .../less.php/lib/Less/Tree/Assignment.php | 4 +- .../less.php/lib/Less/Tree/Attribute.php | 8 +- .../oyejorge/less.php/lib/Less/Tree/Call.php | 16 +- .../oyejorge/less.php/lib/Less/Tree/Color.php | 4 +- .../less.php/lib/Less/Tree/DefaultFunc.php | 10 +- .../lib/Less/Tree/DetachedRuleset.php | 8 +- .../less.php/lib/Less/Tree/Dimension.php | 6 +- .../less.php/lib/Less/Tree/Directive.php | 4 +- .../less.php/lib/Less/Tree/Element.php | 2 +- .../less.php/lib/Less/Tree/Expression.php | 6 +- .../less.php/lib/Less/Tree/Extend.php | 8 +- .../less.php/lib/Less/Tree/Import.php | 30 +- .../oyejorge/less.php/lib/Less/Tree/Media.php | 6 +- .../less.php/lib/Less/Tree/Mixin/Call.php | 4 +- .../less.php/lib/Less/Tree/NameValue.php | 2 +- .../less.php/lib/Less/Tree/Negative.php | 6 +- .../less.php/lib/Less/Tree/Operation.php | 4 +- .../oyejorge/less.php/lib/Less/Tree/Paren.php | 4 +- .../less.php/lib/Less/Tree/Quoted.php | 2 +- .../oyejorge/less.php/lib/Less/Tree/Rule.php | 8 +- .../less.php/lib/Less/Tree/Ruleset.php | 8 +- .../less.php/lib/Less/Tree/RulesetCall.php | 6 +- .../less.php/lib/Less/Tree/Selector.php | 12 +- .../oyejorge/less.php/lib/Less/Tree/Unit.php | 26 +- .../oyejorge/less.php/lib/Less/Tree/Url.php | 4 +- .../oyejorge/less.php/lib/Less/Tree/Value.php | 2 +- .../less.php/lib/Less/Tree/Variable.php | 7 +- vendor/oyejorge/less.php/lib/Less/Version.php | 2 +- vendor/oyejorge/less.php/lib/Less/Visitor.php | 10 +- .../lib/Less/Visitor/extendFinder.php | 22 +- .../lib/Less/Visitor/joinSelector.php | 12 +- .../less.php/lib/Less/Visitor/toCSS.php | 28 +- .../less.php/lib/Less/VisitorReplacing.php | 6 +- .../expected/bootstrap.map | 2 +- .../test/Fixtures/bug-reports/css/72.css | 3 + .../test/Fixtures/bug-reports/css/80.css | 3 + .../test/Fixtures/bug-reports/css/81.css | 4 +- .../test/Fixtures/bug-reports/css/87.css | 9 + .../test/Fixtures/bug-reports/css/89.css | 3 + .../test/Fixtures/bug-reports/less/bootstrap3 | 1 - vendor/oyejorge/less.php/test/index.php | 14 +- .../less.php/test/phpunit/MapTest.php | 1 + vendor/pagerfanta/pagerfanta/.gitignore | 2 +- vendor/pagerfanta/pagerfanta/.travis.yml | 14 +- vendor/pagerfanta/pagerfanta/README.md | 18 +- vendor/pagerfanta/pagerfanta/composer.json | 13 +- .../DoctrineDbalSingleTableAdapter.php | 2 +- .../Adapter/DoctrineORM/CountWalker.php | 58 - .../DoctrineORM/LimitSubqueryWalker.php | 86 - .../Adapter/DoctrineORM/Paginator.php | 153 - .../Adapter/DoctrineORM/WhereInWalker.php | 137 - .../Pagerfanta/Adapter/DoctrineORMAdapter.php | 11 +- .../Pagerfanta/Adapter/SolariumAdapter.php | 59 +- .../src/Pagerfanta/View/DefaultView.php | 2 +- .../src/Pagerfanta/View/OptionableView.php | 2 +- .../Template/TwitterBootstrap3Template.php | 12 +- .../Template/TwitterBootstrapTemplate.php | 28 +- .../Pagerfanta/View/TwitterBootstrap3View.php | 3 - .../Pagerfanta/View/TwitterBootstrapView.php | 1 - .../src/Pagerfanta/View/ViewFactory.php | 1 - .../Pagerfanta/View/ViewFactoryInterface.php | 2 - .../Tests/Adapter/DoctrineDbalTestCase.php | 4 +- .../Adapter/DoctrineORM/CountWalkerTest.php | 68 - .../DoctrineORM/LimitSubqueryWalkerTest.php | 32 - .../Adapter/DoctrineORM/WhereInWalkerTest.php | 106 - .../Tests/Adapter/SolariumAdapterTest.php | 74 +- .../DefaultViewWithCustomTemplateTest.php | 6 +- .../Tests/View/TwitterBootstrap3ViewTest.php | 52 +- .../Tests/View/TwitterBootstrapViewTest.php | 52 +- .../Bundle/FrameworkExtraBundle/CHANGELOG.md | 8 - .../Configuration/Cache.php | 54 - .../Configuration/ConfigurationInterface.php | 4 +- .../Configuration/Security.php | 48 - .../DependencyInjection/Configuration.php | 6 - .../SensioFrameworkExtraExtension.php | 10 +- .../EventListener/CacheListener.php | 58 +- .../EventListener/HttpCacheListener.php | 150 - .../EventListener/SecurityListener.php | 90 - .../Bundle/FrameworkExtraBundle/README.md | 6 - .../ParamConverter/DateTimeParamConverter.php | 16 +- .../ParamConverter/DoctrineParamConverter.php | 28 +- .../ParamConverterInterface.php | 20 +- .../Resources/config/cache.xml | 2 +- .../Resources/config/security.xml | 18 - .../Resources/doc/annotations/cache.rst | 79 +- .../Resources/doc/annotations/converters.rst | 20 +- .../Resources/doc/annotations/routing.rst | 4 +- .../Resources/doc/annotations/security.rst | 52 - .../Resources/doc/index.rst | 10 +- .../Resources/meta/LICENSE | 19 - .../Security/ExpressionLanguage.php | 33 - .../EventListener/ControllerListenerTest.php | 3 - .../EventListener/HttpCacheListenerTest.php | 191 - .../EventListener/SecurityListenerTest.php | 50 - .../DateTimeParamConverterTest.php | 22 +- .../Bundle/FrameworkExtraBundle/composer.json | 12 +- vendor/swiftmailer/swiftmailer/CHANGES | 12 + vendor/swiftmailer/swiftmailer/README.git | 67 - vendor/swiftmailer/swiftmailer/VERSION | 2 +- vendor/swiftmailer/swiftmailer/build.xml | 93 - .../swiftmailer/create_pear_package.php | 42 - .../lib/classes/Swift/Signers/DKIMSigner.php | 8 +- .../classes/Swift/Signers/DomainKeySigner.php | 8 +- .../Swift/Transport/SendmailTransport.php | 2 +- .../lib/swiftmailer_generate_mimes_config.php | 8 +- .../swiftmailer/swiftmailer/package.xml.tpl | 73 - .../Esmtp/Auth/NTLMAuthenticatorTest.php | 2 +- .../Symfony/Bundle/MonologBundle/.travis.yml | 9 +- .../Compiler/DebugHandlerPass.php | 1 - .../DependencyInjection/Configuration.php | 171 +- .../DependencyInjection/MonologExtension.php | 130 +- .../Resources/config/monolog.xml | 7 + .../Resources/config/schema/monolog-1.0.xsd | 21 +- .../FixtureMonologExtensionTest.php | 15 +- .../Fixtures/xml/multiple_handlers.xml | 7 +- .../Fixtures/yml/multiple_handlers.yml | 7 + .../MonologExtensionTest.php | 54 +- .../Bundle/MonologBundle/composer.json | 4 +- vendor/symfony/symfony/.travis.yml | 19 +- vendor/symfony/symfony/CHANGELOG-2.3.md | 34 + vendor/symfony/symfony/CHANGELOG-2.4.md | 32 + vendor/symfony/symfony/CONTRIBUTING.md | 17 +- vendor/symfony/symfony/CONTRIBUTORS.md | 42 +- vendor/symfony/symfony/UPGRADE-2.2.md | 20 + vendor/symfony/symfony/UPGRADE-3.0.md | 434 +- vendor/symfony/symfony/composer.json | 5 +- .../AbstractDoctrineExtension.php | 46 +- .../Constraints/UniqueEntityValidator.php | 4 + .../src/Symfony/Bridge/Doctrine/composer.json | 2 +- .../Monolog/Handler/SwiftMailerHandler.php | 11 + .../src/Symfony/Bridge/Monolog/composer.json | 2 +- .../Form/ChoiceList/ModelChoiceList.php | 33 +- .../Bridge/Propel1/Form/Type/ModelType.php | 4 +- .../Bridge/Propel1/Tests/Fixtures/Column.php | 5 +- .../Bridge/Propel1/Tests/Fixtures/Item.php | 10 +- .../Propel1/Tests/Fixtures/ItemQuery.php | 1 + .../Form/ChoiceList/ModelChoiceListTest.php | 22 + .../src/Symfony/Bridge/Propel1/composer.json | 2 +- .../Symfony/Bridge/ProxyManager/composer.json | 2 +- .../Symfony/Bridge/Swiftmailer/composer.json | 2 +- .../src/Symfony/Bridge/Twig/CHANGELOG.md | 5 + .../Symfony/Bridge/Twig/Node/TransNode.php | 12 +- .../views/Form/form_div_layout.html.twig | 2 - .../Extension/TranslationExtensionTest.php | 2 + .../src/Symfony/Bridge/Twig/composer.json | 3 +- .../Bundle/FrameworkBundle/CHANGELOG.md | 9 + .../CacheWarmer/TemplateFinder.php | 2 +- .../Command/AssetsInstallCommand.php | 2 +- .../Command/CacheClearCommand.php | 21 +- .../Command/CacheWarmupCommand.php | 1 + .../Command/ConfigDumpReferenceCommand.php | 69 +- .../Command/ContainerDebugCommand.php | 9 +- .../Command/RouterApacheDumperCommand.php | 5 + .../Command/RouterDebugCommand.php | 3 +- .../Command/RouterMatchCommand.php | 24 +- .../Command/ServerRunCommand.php | 24 +- .../Command/TranslationUpdateCommand.php | 9 + .../FrameworkBundle/Console/Application.php | 12 +- .../Console/Descriptor/Descriptor.php | 27 +- .../Console/Descriptor/JsonDescriptor.php | 10 + .../Console/Descriptor/MarkdownDescriptor.php | 8 + .../Console/Descriptor/TextDescriptor.php | 8 + .../Console/Descriptor/XmlDescriptor.php | 28 + .../FrameworkBundle/Controller/Controller.php | 24 +- .../Compiler/AddValidatorInitializersPass.php | 6 +- .../Compiler/CompilerDebugDumpPass.php | 8 +- .../ContainerBuilderDebugDumpPass.php | 8 +- .../DependencyInjection/Configuration.php | 50 +- .../FrameworkExtension.php | 74 +- .../FrameworkBundle/FrameworkBundle.php | 2 +- .../Resources/config/debug.xml | 16 + .../FrameworkBundle/Resources/config/form.xml | 5 + .../Resources/config/schema/symfony-1.0.xsd | 29 + .../Resources/config/services.xml | 2 + .../Resources/config/templating_php.xml | 4 +- .../Resources/config/validator.xml | 63 +- .../Resources/views/Form/form_errors.html.php | 2 +- .../views/Form/widget_attributes.html.php | 2 - .../Templating/Helper/RequestHelper.php | 33 +- .../Templating/Helper/SessionHelper.php | 37 +- .../FrameworkBundle/Test/WebTestCase.php | 141 +- .../Descriptor/AbstractDescriptorTest.php | 15 + .../Console/Descriptor/ObjectsProvider.php | 10 + .../Tests/Controller/ControllerTest.php | 6 +- .../Controller/RedirectControllerTest.php | 2 +- .../DependencyInjection/ConfigurationTest.php | 3 + .../DependencyInjection/Fixtures/php/full.php | 11 +- .../DependencyInjection/Fixtures/xml/full.xml | 9 + .../DependencyInjection/Fixtures/yml/full.yml | 4 + .../FrameworkExtensionTest.php | 129 +- .../Controller/SessionController.php | 14 +- .../Routing/RedirectableUrlMatcherTest.php | 22 +- .../Templating/Helper/RequestHelperTest.php | 20 +- .../Tests/Translation/TranslatorTest.php | 58 +- .../Translation/Translator.php | 4 +- .../Bundle/FrameworkBundle/composer.json | 6 +- .../DependencyInjection/MainConfiguration.php | 8 +- .../DependencyInjection/SecurityExtension.php | 3 +- .../Templating/Helper/LogoutUrlHelper.php | 2 +- .../CompleteConfigurationTest.php | 1 + .../Fixtures/php/container1.php | 1 + .../Fixtures/xml/container1.xml | 2 +- .../Fixtures/yml/container1.yml | 1 + .../Controller/LocalizedController.php | 11 +- .../Controller/LoginController.php | 11 +- .../Bundle/SecurityBundle/composer.json | 2 +- .../Bundle/TwigBundle/Command/LintCommand.php | 149 +- .../Controller/ExceptionController.php | 14 +- .../TwigBundle/Extension/AssetsExtension.php | 50 +- .../TwigBundle/Resources/config/twig.xml | 1 + .../Resources/views/layout.html.twig | 4 +- .../Symfony/Bundle/TwigBundle/composer.json | 8 +- .../Controller/ProfilerController.php | 2 +- .../Resources/config/profiler.xml | 5 + .../views/Collector/events.html.twig | 15 +- .../Resources/views/Collector/form.html.twig | 650 +- .../views/Collector/logger.html.twig | 37 +- .../Resources/views/Profiler/bag.html.twig | 7 +- .../views/Profiler/base_js.html.twig | 10 +- .../views/Profiler/profiler.css.twig | 7 + .../Resources/views/Profiler/table.html.twig | 7 +- .../Bundle/WebProfilerBundle/composer.json | 4 +- .../Symfony/Component/BrowserKit/Client.php | 4 - .../Symfony/Component/BrowserKit/Cookie.php | 4 +- .../Component/BrowserKit/Tests/CookieTest.php | 2 + .../Component/BrowserKit/composer.json | 2 +- .../Tests/ApcUniversalClassLoaderTest.php | 16 +- .../Component/ClassLoader/composer.json | 2 +- .../Symfony/Component/Config/ConfigCache.php | 16 +- .../Symfony/Component/Config/composer.json | 2 +- .../Symfony/Component/Console/Application.php | 114 +- .../Symfony/Component/Console/CHANGELOG.md | 10 + .../Component/Console/Command/Command.php | 30 + .../Formatter/OutputFormatterStyle.php | 60 +- .../Component/Console/Helper/DialogHelper.php | 3 + .../Component/Console/Helper/Helper.php | 65 +- .../Console/Helper/ProgressHelper.php | 7 +- .../Component/Console/Helper/TableHelper.php | 318 +- .../Component/Console/Input/StringInput.php | 2 - .../Component/Console/Output/StreamOutput.php | 4 - .../Console/Tests/ApplicationTest.php | 68 + .../application_renderexception3decorated.txt | 26 +- .../Formatter/OutputFormatterStyleTest.php | 24 +- .../Tests/Formatter/OutputFormatterTest.php | 48 +- .../Tests/Helper/FormatterHelperTest.php | 17 +- .../Tests/Helper/ProgressHelperTest.php | 14 +- .../Console/Tests/Output/OutputTest.php | 2 +- .../Symfony/Component/Console/composer.json | 8 +- .../Parser/Tokenizer/TokenizerEscaping.php | 16 +- .../Component/CssSelector/composer.json | 2 +- .../src/Symfony/Component/Debug/CHANGELOG.md | 7 + .../Component/Debug/DebugClassLoader.php | 125 +- .../Symfony/Component/Debug/ErrorHandler.php | 268 +- .../Exception/ClassNotFoundException.php | 1 + .../Debug/Exception/DummyException.php | 4 +- .../Debug/Exception/FatalErrorException.php | 50 + .../Debug/Exception/FlattenException.php | 31 +- .../Exception/UndefinedFunctionException.php | 1 + .../Component/Debug/ExceptionHandler.php | 102 +- .../ClassNotFoundFatalErrorHandler.php | 13 +- .../UndefinedFunctionFatalErrorHandler.php | 1 + .../Debug/Tests/DebugClassLoaderTest.php | 133 +- .../Debug/Tests/ErrorHandlerTest.php | 152 +- ...UndefinedFunctionFatalErrorHandlerTest.php | 3 +- .../src/Symfony/Component/Debug/composer.json | 2 +- .../DependencyInjection/CHANGELOG.md | 6 + .../Compiler/InlineServiceDefinitionsPass.php | 5 + .../Compiler/PassConfig.php | 1 + .../DependencyInjection/ContainerBuilder.php | 58 +- .../DependencyInjection/Definition.php | 36 + .../Dumper/GraphvizDumper.php | 9 +- .../DependencyInjection/Dumper/PhpDumper.php | 38 +- .../DependencyInjection/Dumper/XmlDumper.php | 7 + .../DependencyInjection/Dumper/YamlDumper.php | 8 + .../ConfigurationExtensionInterface.php | 2 +- .../Loader/XmlFileLoader.php | 254 +- .../Loader/YamlFileLoader.php | 5 + .../schema/dic/services/services-1.0.xsd | 2 + .../DependencyInjection/SimpleXMLElement.php | 2 + .../Tests/ContainerBuilderTest.php | 48 +- .../Tests/DefinitionTest.php | 20 + .../Tests/Dumper/GraphvizDumperTest.php | 8 + .../Tests/Dumper/XmlDumperTest.php | 35 +- .../Tests/Fixtures/containers/container9.php | 30 +- .../Tests/Fixtures/graphviz/services9.dot | 14 +- .../Tests/Fixtures/includes/foo.php | 2 + .../Tests/Fixtures/php/services10.php | 2 + .../Tests/Fixtures/php/services11.php | 2 + .../Tests/Fixtures/php/services9.php | 100 +- .../Tests/Fixtures/php/services9_compiled.php | 78 +- .../Tests/Fixtures/xml/services6.xml | 2 + .../Tests/Fixtures/xml/services8.xml | 2 +- .../Tests/Fixtures/xml/services9.xml | 19 +- .../Tests/Fixtures/yaml/services6.yml | 5 + .../Tests/Fixtures/yaml/services9.yml | 28 +- .../Tests/Loader/XmlFileLoaderTest.php | 49 +- .../Tests/Loader/YamlFileLoaderTest.php | 4 + .../DependencyInjection/composer.json | 2 +- .../Symfony/Component/DomCrawler/CHANGELOG.md | 9 + .../Symfony/Component/DomCrawler/Crawler.php | 137 +- .../DomCrawler/Field/ChoiceFormField.php | 44 +- .../DomCrawler/Field/FileFormField.php | 4 +- .../Component/DomCrawler/Field/FormField.php | 14 +- .../DomCrawler/Field/InputFormField.php | 6 +- .../DomCrawler/Field/TextareaFormField.php | 2 +- .../src/Symfony/Component/DomCrawler/Form.php | 64 +- .../DomCrawler/FormFieldRegistry.php | 4 +- .../src/Symfony/Component/DomCrawler/Link.php | 20 +- .../DomCrawler/Tests/CrawlerTest.php | 77 +- .../Tests/Field/ChoiceFormFieldTest.php | 56 +- .../Component/DomCrawler/Tests/FormTest.php | 49 +- .../Component/DomCrawler/composer.json | 2 +- .../Component/EventDispatcher/CHANGELOG.md | 7 + .../TraceableEventDispatcherInterface.php | 4 +- .../Component/EventDispatcher/composer.json | 7 +- .../Component/ExpressionLanguage/Parser.php | 2 +- .../ExpressionLanguage/Tests/ParserTest.php | 11 + .../ExpressionLanguage/composer.json | 2 +- .../Component/Filesystem/composer.json | 2 +- .../src/Symfony/Component/Finder/CHANGELOG.md | 4 + .../src/Symfony/Component/Finder/Finder.php | 4 +- .../Iterator/DateRangeFilterIterator.php | 4 - .../Finder/Iterator/SortableIterator.php | 12 +- .../Component/Finder/Tests/FinderTest.php | 11 + .../Iterator/DateRangeFilterIteratorTest.php | 4 - .../Tests/Iterator/SortableIteratorTest.php | 65 + .../Symfony/Component/Finder/composer.json | 2 +- .../src/Symfony/Component/Form/Button.php | 10 +- .../Symfony/Component/Form/ButtonBuilder.php | 8 + .../src/Symfony/Component/Form/CHANGELOG.md | 15 + .../Extension/Core/ChoiceList/ChoiceList.php | 4 +- .../Core/ChoiceList/ObjectChoiceList.php | 74 + .../DataTransformer/DataTransformerChain.php | 8 + .../NumberToLocalizedStringTransformer.php | 16 +- .../Core/EventListener/ResizeFormListener.php | 26 +- .../Form/Extension/Core/Type/ChoiceType.php | 2 +- .../Extension/Core/Type/CollectionType.php | 4 +- .../Form/Extension/Core/Type/FileType.php | 6 + .../Form/Extension/Core/Type/FormType.php | 21 +- .../Form/Extension/Core/Type/TimeType.php | 8 + .../DataCollector/FormDataCollector.php | 17 +- .../DataCollector/FormDataExtractor.php | 29 +- .../Type/FormTypeHttpFoundationExtension.php | 12 +- .../Validator/Constraints/FormValidator.php | 5 + .../Extension/Validator/Util/ServerParams.php | 13 + .../ViolationMapper/ViolationMapper.php | 8 +- .../src/Symfony/Component/Form/Form.php | 88 +- .../Component/Form/FormConfigBuilder.php | 2 +- .../src/Symfony/Component/Form/FormError.php | 86 +- .../Symfony/Component/Form/FormFactory.php | 4 +- .../Symfony/Component/Form/FormInterface.php | 14 +- .../src/Symfony/Component/Form/README.md | 2 +- .../Resources/translations/validators.hu.xlf | 4 +- .../Form/Tests/AbstractLayoutTest.php | 14 +- .../Component/Form/Tests/CompoundFormTest.php | 112 +- .../Core/ChoiceList/ObjectChoiceListTest.php | 113 + ...NumberToLocalizedStringTransformerTest.php | 8 +- .../EventListener/ResizeFormListenerTest.php | 10 +- .../Core/EventListener/TrimListenerTest.php | 57 +- .../Extension/Core/Type/ChoiceTypeTest.php | 45 +- .../Core/Type/CollectionTypeTest.php | 85 +- .../Extension/Core/Type/DateTimeTypeTest.php | 16 +- .../Extension/Core/Type/DateTypeTest.php | 12 +- .../Extension/Core/Type/FileTypeTest.php | 19 + .../Extension/Core/Type/FormTypeTest.php | 41 +- .../Extension/Core/Type/TimeTypeTest.php | 39 +- .../DataCollector/FormDataCollectorTest.php | 257 +- .../DataCollector/FormDataExtractorTest.php | 54 +- .../Validator/Util/ServerParamsTest.php | 25 + .../ViolationMapper/ViolationMapperTest.php | 99 +- .../Component/Form/Tests/Fixtures/Author.php | 6 + .../Component/Form/Tests/FormFactoryTest.php | 16 +- .../Component/Form/Tests/SimpleFormTest.php | 38 +- .../src/Symfony/Component/Form/composer.json | 6 +- .../HttpFoundation/BinaryFileResponse.php | 4 +- .../Component/HttpFoundation/CHANGELOG.md | 6 + .../HttpFoundation/File/UploadedFile.php | 2 +- .../Component/HttpFoundation/JsonResponse.php | 36 +- .../Component/HttpFoundation/Response.php | 50 +- .../HttpFoundation/Tests/JsonResponseTest.php | 19 + .../Component/HttpFoundation/composer.json | 2 +- .../Symfony/Component/HttpKernel/CHANGELOG.md | 5 + .../Symfony/Component/HttpKernel/Client.php | 6 +- .../DataCollector/LoggerDataCollector.php | 48 +- .../DataCollector/RequestDataCollector.php | 9 +- .../DataCollector/Util/ValueExporter.php | 23 +- .../Debug/TraceableEventDispatcher.php | 339 +- .../RegisterListenersPass.php | 91 +- .../EventListener/ErrorsLoggerListener.php | 5 +- .../Fragment/InlineFragmentRenderer.php | 4 +- .../HttpKernel/HttpCache/HttpCache.php | 14 +- .../Component/HttpKernel/HttpKernel.php | 19 + .../Symfony/Component/HttpKernel/Kernel.php | 8 +- .../HttpKernel/Tests/Bundle/BundleTest.php | 7 +- .../Component/HttpKernel/Tests/ClientTest.php | 15 + .../DataCollector/LoggerDataCollectorTest.php | 35 +- .../RequestDataCollectorTest.php | 37 +- .../Debug/TraceableEventDispatcherTest.php | 156 - .../RegisterListenersPassTest.php | 140 - .../Tests/HttpCache/HttpCacheTest.php | 99 + .../Component/HttpKernel/composer.json | 4 +- .../src/Symfony/Component/Intl/README.md | 2 +- .../AbstractNumberFormatterTest.php | 2 +- .../src/Symfony/Component/Intl/composer.json | 2 +- .../Component/Locale/Tests/LocaleTest.php | 18 +- .../Symfony/Component/Locale/composer.json | 2 +- .../OptionsResolver/OptionsResolver.php | 10 +- .../Tests/OptionsResolverTest.php | 39 + .../Component/OptionsResolver/composer.json | 2 +- .../Symfony/Component/Process/CHANGELOG.md | 9 + .../Exception/ProcessFailedException.php | 20 +- .../Component/Process/PhpExecutableFinder.php | 4 +- .../src/Symfony/Component/Process/Process.php | 204 +- .../Component/Process/ProcessBuilder.php | 45 +- .../Component/Process/ProcessPipes.php | 25 +- .../Component/Process/ProcessUtils.php | 29 + .../Process/Tests/AbstractProcessTest.php | 232 +- .../Process/Tests/ProcessBuilderTest.php | 29 + .../Tests/ProcessFailedExceptionTest.php | 55 +- .../Tests/SigchildDisabledProcessTest.php | 22 +- .../Tests/SigchildEnabledProcessTest.php | 4 +- .../Process/Tests/SimpleProcessTest.php | 4 +- .../Symfony/Component/Process/composer.json | 2 +- .../Component/PropertyAccess/CHANGELOG.md | 9 + .../PropertyAccess/PropertyAccessor.php | 343 +- .../PropertyAccessorInterface.php | 46 +- .../Component/PropertyAccess/PropertyPath.php | 2 +- .../Component/PropertyAccess/StringUtil.php | 4 +- .../Component/PropertyAccess/composer.json | 2 +- .../Symfony/Component/Routing/CHANGELOG.md | 7 + .../Generator/Dumper/PhpGeneratorDumper.php | 5 +- .../Routing/Generator/UrlGenerator.php | 23 +- .../Routing/Loader/AnnotationClassLoader.php | 108 +- .../Routing/Matcher/ApacheUrlMatcher.php | 4 + .../Matcher/Dumper/ApacheMatcherDumper.php | 4 + .../Matcher/Dumper/PhpMatcherDumper.php | 18 +- .../Matcher/RedirectableUrlMatcher.php | 7 +- .../Routing/Matcher/TraceableUrlMatcher.php | 8 +- .../Component/Routing/Matcher/UrlMatcher.php | 4 +- .../src/Symfony/Component/Routing/Route.php | 19 + .../Tests/Fixtures/dumper/url_matcher2.php | 10 +- .../Dumper/PhpGeneratorDumperTest.php | 41 +- .../Tests/Generator/UrlGeneratorTest.php | 54 +- .../Loader/AnnotationClassLoaderTest.php | 26 + .../Tests/Loader/XmlFileLoaderTest.php | 2 +- .../Matcher/RedirectableUrlMatcherTest.php | 30 +- .../Routing/Tests/Matcher/UrlMatcherTest.php | 12 +- .../Component/Routing/Tests/RouteTest.php | 8 + .../Symfony/Component/Routing/composer.json | 2 +- .../Security/Acl/Dbal/AclProvider.php | 30 +- .../Security/Acl/Dbal/MutableAclProvider.php | 80 +- .../Security/Acl/Permission/MaskBuilder.php | 54 +- .../Symfony/Component/Security/Acl/README.md | 2 +- .../Acl/Tests/Dbal/MutableAclProviderTest.php | 30 + .../Acl/Tests/Domain/AuditLoggerTest.php | 6 +- .../Security/Acl/Tests/Voter/AclVoterTest.php | 31 +- .../Component/Security/Acl/Voter/AclVoter.php | 6 +- .../Component/Security/Acl/composer.json | 2 +- ...PreAuthenticatedAuthenticationProvider.php | 20 +- .../Authorization/AccessDecisionManager.php | 6 +- .../Core/Encoder/BasePasswordEncoder.php | 4 +- .../Security/Core/Encoder/EncoderFactory.php | 27 +- .../Symfony/Component/Security/Core/README.md | 2 +- .../Security/Core/Role/RoleHierarchy.php | 4 +- .../AuthenticationProviderManagerTest.php | 2 +- .../DaoAuthenticationProviderTest.php | 5 +- ...uthenticatedAuthenticationProviderTest.php | 3 +- .../RememberMeAuthenticationProviderTest.php | 4 +- .../UserAuthenticationProviderTest.php | 16 +- .../AccessDecisionManagerTest.php | 38 +- .../Core/Tests/Encoder/EncoderFactoryTest.php | 64 + .../Constraints/UserPasswordValidator.php | 5 + .../Component/Security/Core/composer.json | 2 +- .../Symfony/Component/Security/Csrf/README.md | 2 +- .../TokenGeneratorInterface.php | 14 +- .../Component/Security/Csrf/composer.json | 2 +- .../AbstractAuthenticationListener.php | 8 +- .../Symfony/Component/Security/Http/README.md | 2 +- .../TokenBasedRememberMeServices.php | 28 +- .../Tests/Firewall/SwitchUserListenerTest.php | 8 +- .../Component/Security/Http/composer.json | 2 +- .../src/Symfony/Component/Security/README.md | 2 +- .../Symfony/Component/Security/composer.json | 2 +- .../Symfony/Component/Serializer/CHANGELOG.md | 7 + .../Serializer/Encoder/DecoderInterface.php | 4 + .../Serializer/Encoder/EncoderInterface.php | 4 + .../Serializer/Encoder/JsonDecode.php | 11 +- .../Serializer/Encoder/JsonEncode.php | 11 +- .../Serializer/Encoder/JsonEncoder.php | 31 + .../Serializer/Encoder/XmlEncoder.php | 148 +- .../Normalizer/GetSetMethodNormalizer.php | 24 +- .../Component/Serializer/Serializer.php | 91 +- .../Normalizer/GetSetMethodNormalizerTest.php | 49 +- .../Component/Serializer/composer.json | 2 +- .../Symfony/Component/Stopwatch/Stopwatch.php | 30 + .../Component/Stopwatch/StopwatchEvent.php | 11 +- .../Symfony/Component/Stopwatch/composer.json | 2 +- .../Component/Templating/Asset/Package.php | 20 +- .../Templating/Asset/PackageInterface.php | 5 +- .../Templating/Asset/PathPackage.php | 7 +- .../Component/Templating/Asset/UrlPackage.php | 7 +- .../Symfony/Component/Templating/CHANGELOG.md | 6 + .../Templating/Helper/CoreAssetsHelper.php | 9 +- .../Tests/Helper/AssetsHelperTest.php | 8 + .../Component/Templating/composer.json | 2 +- .../Component/Translation/CHANGELOG.md | 7 + .../Translation/Dumper/FileDumper.php | 63 +- .../Translation/Dumper/IcuResFileDumper.php | 27 +- .../Translation/Loader/PoFileLoader.php | 4 +- .../Translation/Loader/YamlFileLoader.php | 2 +- .../Component/Translation/MessageSelector.php | 2 +- .../Translation/PluralizationRules.php | 3 - .../Symfony/Component/Translation/README.md | 2 +- .../Tests/Dumper/IcuResFileDumperTest.php | 9 +- .../Tests/IdentityTranslatorTest.php | 4 + .../Translation/Writer/TranslationWriter.php | 10 + .../Component/Translation/composer.json | 2 +- .../Symfony/Component/Validator/CHANGELOG.md | 60 + .../Validator/ClassBasedInterface.php | 3 + .../Component/Validator/Constraint.php | 2 +- .../Validator/ConstraintValidatorFactory.php | 9 +- .../Validator/ConstraintViolation.php | 59 +- .../AbstractComparisonValidator.php | 5 + .../Validator/Constraints/AllValidator.php | 4 + .../Validator/Constraints/BlankValidator.php | 5 + .../Validator/Constraints/Callback.php | 2 +- .../Constraints/CallbackValidator.php | 32 +- .../Constraints/CardSchemeValidator.php | 5 + .../Validator/Constraints/ChoiceValidator.php | 4 + .../Constraints/CollectionValidator.php | 4 + .../Constraints/CountryValidator.php | 4 + .../Constraints/CurrencyValidator.php | 4 + .../Constraints/DateTimeValidator.php | 27 + .../Validator/Constraints/DateValidator.php | 4 + .../Component/Validator/Constraints/Email.php | 1 + .../Validator/Constraints/EmailValidator.php | 32 +- .../Constraints/ExpressionValidator.php | 41 +- .../Validator/Constraints/FalseValidator.php | 5 + .../Validator/Constraints/FileValidator.php | 85 +- .../Validator/Constraints/GroupSequence.php | 168 +- .../Validator/Constraints/IbanValidator.php | 5 + .../Validator/Constraints/ImageValidator.php | 5 + .../Component/Validator/Constraints/Ip.php | 2 +- .../Validator/Constraints/IpValidator.php | 4 + .../Component/Validator/Constraints/Isbn.php | 34 +- .../Validator/Constraints/IsbnValidator.php | 95 +- .../Validator/Constraints/IssnValidator.php | 4 + .../Constraints/LanguageValidator.php | 4 + .../Validator/Constraints/LengthValidator.php | 4 + .../Validator/Constraints/LocaleValidator.php | 4 + .../Validator/Constraints/LuhnValidator.php | 4 + .../Constraints/NotBlankValidator.php | 5 + .../Constraints/NotNullValidator.php | 5 + .../Validator/Constraints/NullValidator.php | 5 + .../Validator/Constraints/Optional.php | 2 +- .../Validator/Constraints/RangeValidator.php | 5 + .../Validator/Constraints/RegexValidator.php | 4 + .../Validator/Constraints/Required.php | 2 +- .../Validator/Constraints/TimeValidator.php | 4 + .../Validator/Constraints/TrueValidator.php | 5 + .../Validator/Constraints/TypeValidator.php | 5 + .../Validator/Constraints/UrlValidator.php | 12 +- .../Component/Validator/Constraints/Valid.php | 10 +- .../Component/Validator/DefaultTranslator.php | 2 +- .../Exception/ValidatorException.php | 2 +- .../Component/Validator/ExecutionContext.php | 23 +- .../Validator/ExecutionContextInterface.php | 51 +- .../GlobalExecutionContextInterface.php | 3 + .../Mapping/BlackholeMetadataFactory.php | 24 +- .../Validator/Mapping/Cache/ApcCache.php | 4 + .../Validator/Mapping/ClassMetadata.php | 141 +- .../Mapping/ClassMetadataFactory.php | 98 +- .../Validator/Mapping/ElementMetadata.php | 101 +- .../Validator/Mapping/GetterMetadata.php | 22 +- .../Mapping/Loader/AbstractLoader.php | 2 +- .../Mapping/Loader/AnnotationLoader.php | 10 +- .../Mapping/Loader/XmlFileLoader.php | 2 +- .../Validator/Mapping/MemberMetadata.php | 115 +- .../Validator/Mapping/PropertyMetadata.php | 13 + .../Validator/MetadataFactoryInterface.php | 15 +- .../Component/Validator/MetadataInterface.php | 17 +- .../PropertyMetadataContainerInterface.php | 3 + .../Validator/PropertyMetadataInterface.php | 3 + .../src/Symfony/Component/Validator/README.md | 2 +- .../Resources/translations/validators.hu.xlf | 16 +- .../Resources/translations/validators.id.xlf | 2 +- .../translations/validators.sr_Latn.xlf | 76 + .../Tests/Constraints/AllValidatorTest.php | 5 +- .../Constraints/CallbackValidatorTest.php | 36 +- .../Tests/Constraints/CollectionTest.php | 4 +- .../Constraints/CollectionValidatorTest.php | 8 +- .../Constraints/CountryValidatorTest.php | 6 +- .../Constraints/CurrencyValidatorTest.php | 2 +- .../Tests/Constraints/EmailValidatorTest.php | 11 +- .../Tests/Constraints/FileValidatorTest.php | 106 +- .../Tests/Constraints/IsbnValidatorTest.php | 14 +- .../Constraints/LanguageValidatorTest.php | 2 +- .../Tests/Constraints/UrlValidatorTest.php | 3 + .../Validator/Tests/Fixtures/Entity.php | 24 +- .../Tests/Fixtures/FakeMetadataFactory.php | 24 +- .../Fixtures/GroupSequenceProviderEntity.php | 8 +- .../Validator/Tests/Fixtures/Reference.php | 13 + .../Mapping/ClassMetadataFactoryTest.php | 5 +- .../Tests/Mapping/ClassMetadataTest.php | 2 - .../Tests/Mapping/ElementMetadataTest.php | 2 +- .../Tests/Mapping/GetterMetadataTest.php | 16 + .../Mapping/Loader/AnnotationLoaderTest.php | 7 +- .../Tests/Mapping/Loader/FilesLoaderTest.php | 2 +- .../Mapping/Loader/StaticMethodLoaderTest.php | 24 +- .../Mapping/Loader/XmlFileLoaderTest.php | 5 +- .../Mapping/Loader/YamlFileLoaderTest.php | 5 +- .../Mapping/Loader/constraint-mapping.xml | 6 + .../Mapping/Loader/constraint-mapping.yml | 4 + .../Tests/Mapping/MemberMetadataTest.php | 6 +- .../Validator/Tests/ValidationVisitorTest.php | 564 -- .../Validator/Tests/ValidatorBuilderTest.php | 34 + .../Validator/Tests/ValidatorTest.php | 260 +- .../Component/Validator/Validation.php | 16 + .../Component/Validator/ValidationVisitor.php | 5 +- .../Validator/ValidationVisitorInterface.php | 7 + .../Symfony/Component/Validator/Validator.php | 15 +- .../Component/Validator/ValidatorBuilder.php | 94 +- .../Validator/ValidatorBuilderInterface.php | 81 +- .../Validator/ValidatorInterface.php | 15 + .../Symfony/Component/Validator/composer.json | 17 +- .../src/Symfony/Component/Yaml/Inline.php | 24 +- .../src/Symfony/Component/Yaml/Parser.php | 25 +- .../Component/Yaml/Tests/ParserTest.php | 57 +- .../src/Symfony/Component/Yaml/Unescaper.php | 55 +- .../src/Symfony/Component/Yaml/composer.json | 2 +- vendor/twbs/bootstrap/.gitattributes | 8 - vendor/twbs/bootstrap/.gitignore | 14 +- vendor/twbs/bootstrap/.travis.yml | 7 +- vendor/twbs/bootstrap/CONTRIBUTING.md | 41 +- vendor/twbs/bootstrap/DOCS-LICENSE | 319 - vendor/twbs/bootstrap/Gruntfile.js | 160 +- vendor/twbs/bootstrap/LICENSE-MIT | 21 - vendor/twbs/bootstrap/README.md | 67 +- vendor/twbs/bootstrap/_config.yml | 14 +- vendor/twbs/bootstrap/_includes/footer.html | 34 +- vendor/twbs/bootstrap/_includes/header.html | 21 +- .../twbs/bootstrap/_includes/nav-about.html | 12 - .../bootstrap/_includes/nav-components.html | 2 +- vendor/twbs/bootstrap/_includes/nav-css.html | 12 - .../_includes/nav-getting-started.html | 4 - vendor/twbs/bootstrap/_includes/nav-main.html | 5 - vendor/twbs/bootstrap/_layouts/default.html | 7 +- vendor/twbs/bootstrap/_layouts/home.html | 11 +- vendor/twbs/bootstrap/about.html | 94 - vendor/twbs/bootstrap/bower.json | 25 +- vendor/twbs/bootstrap/components.html | 1344 +--- vendor/twbs/bootstrap/composer.json | 5 - vendor/twbs/bootstrap/css.html | 888 +-- vendor/twbs/bootstrap/customize.html | 891 +-- .../bootstrap/dist/css/bootstrap-theme.css | 245 +- .../dist/css/bootstrap-theme.min.css | 8 +- vendor/twbs/bootstrap/dist/css/bootstrap.css | 2317 +++--- .../twbs/bootstrap/dist/css/bootstrap.min.css | 14 +- .../fonts/glyphicons-halflings-regular.eot | Bin 20290 -> 14079 bytes .../fonts/glyphicons-halflings-regular.svg | 399 +- .../fonts/glyphicons-halflings-regular.ttf | Bin 41236 -> 29512 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23292 -> 16448 bytes vendor/twbs/bootstrap/dist/js/bootstrap.js | 137 +- .../twbs/bootstrap/dist/js/bootstrap.min.js | 13 +- .../twbs/bootstrap/docs-assets/css/docs.css | 1196 --- .../docs-assets/css/pygments-manni.css | 66 - .../ico/apple-touch-icon-144-precomposed.png | Bin 3549 -> 0 bytes .../bootstrap/docs-assets/ico/favicon.png | Bin 887 -> 0 bytes .../bootstrap/docs-assets/js/application.js | 103 - .../bootstrap/docs-assets/js/customizer.js | 332 - .../bootstrap/docs-assets/js/filesaver.js | 399 - .../twbs/bootstrap/docs-assets/js/holder.js | 500 -- .../js/ie8-responsive-file-warning.js | 12 - vendor/twbs/bootstrap/docs-assets/js/jszip.js | 1474 ---- vendor/twbs/bootstrap/docs-assets/js/less.js | 9 - .../bootstrap/docs-assets/js/raw-files.js | 3 - .../twbs/bootstrap/docs-assets/js/uglify.js | 14 - .../bootstrap/examples/carousel/carousel.css | 30 +- .../bootstrap/examples/carousel/index.html | 51 +- .../twbs/bootstrap/examples/grid/index.html | 53 +- .../examples/jumbotron-narrow/index.html | 12 +- .../bootstrap/examples/jumbotron/index.html | 50 +- .../examples/justified-nav/index.html | 21 +- .../examples/justified-nav/justified-nav.css | 2 +- .../examples/navbar-fixed-top/index.html | 17 +- .../examples/navbar-static-top/index.html | 17 +- .../twbs/bootstrap/examples/navbar/index.html | 17 +- .../twbs/bootstrap/examples/navbar/navbar.css | 7 +- .../examples/non-responsive/index.html | 15 +- .../non-responsive/non-responsive.css | 27 +- .../bootstrap/examples/offcanvas/index.html | 53 +- .../examples/offcanvas/offcanvas.css | 13 +- .../examples/screenshots/jumbotron.jpg | Bin 122180 -> 77911 bytes .../twbs/bootstrap/examples/signin/index.html | 16 +- .../examples/starter-template/index.html | 15 +- .../examples/sticky-footer-navbar/index.html | 17 +- .../sticky-footer-navbar.css | 7 +- .../examples/sticky-footer/index.html | 12 +- .../examples/sticky-footer/sticky-footer.css | 7 +- .../twbs/bootstrap/examples/theme/index.html | 37 +- .../fonts/glyphicons-halflings-regular.eot | Bin 20290 -> 14079 bytes .../fonts/glyphicons-halflings-regular.svg | 399 +- .../fonts/glyphicons-halflings-regular.ttf | Bin 41236 -> 29512 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23292 -> 16448 bytes vendor/twbs/bootstrap/getting-started.html | 423 +- vendor/twbs/bootstrap/index.html | 3 +- vendor/twbs/bootstrap/javascript.html | 273 +- vendor/twbs/bootstrap/js/.jshintrc | 16 +- vendor/twbs/bootstrap/js/affix.js | 8 +- vendor/twbs/bootstrap/js/alert.js | 6 +- vendor/twbs/bootstrap/js/button.js | 20 +- vendor/twbs/bootstrap/js/carousel.js | 16 +- vendor/twbs/bootstrap/js/collapse.js | 8 +- vendor/twbs/bootstrap/js/dropdown.js | 16 +- vendor/twbs/bootstrap/js/modal.js | 8 +- vendor/twbs/bootstrap/js/popover.js | 8 +- vendor/twbs/bootstrap/js/scrollspy.js | 10 +- vendor/twbs/bootstrap/js/tab.js | 10 +- vendor/twbs/bootstrap/js/tests/index.html | 2 +- vendor/twbs/bootstrap/js/tests/unit/button.js | 16 +- .../twbs/bootstrap/js/tests/unit/popover.js | 12 +- vendor/twbs/bootstrap/js/tests/unit/tab.js | 12 +- .../twbs/bootstrap/js/tests/unit/tooltip.js | 2 +- vendor/twbs/bootstrap/js/tooltip.js | 8 +- vendor/twbs/bootstrap/js/transition.js | 6 +- vendor/twbs/bootstrap/less/alerts.less | 2 +- vendor/twbs/bootstrap/less/badges.less | 12 +- vendor/twbs/bootstrap/less/bootstrap.less | 10 + vendor/twbs/bootstrap/less/breadcrumbs.less | 4 +- vendor/twbs/bootstrap/less/button-groups.less | 45 +- vendor/twbs/bootstrap/less/buttons.less | 13 +- vendor/twbs/bootstrap/less/carousel.less | 43 +- vendor/twbs/bootstrap/less/code.less | 13 +- vendor/twbs/bootstrap/less/dropdowns.less | 12 +- vendor/twbs/bootstrap/less/forms.less | 42 +- vendor/twbs/bootstrap/less/glyphicons.less | 35 +- vendor/twbs/bootstrap/less/grid.less | 341 +- vendor/twbs/bootstrap/less/input-groups.less | 11 +- vendor/twbs/bootstrap/less/jumbotron.less | 14 +- vendor/twbs/bootstrap/less/labels.less | 6 - vendor/twbs/bootstrap/less/list-group.less | 24 +- vendor/twbs/bootstrap/less/mixins.less | 250 +- vendor/twbs/bootstrap/less/modals.less | 20 +- vendor/twbs/bootstrap/less/navbar.less | 107 +- vendor/twbs/bootstrap/less/navs.less | 73 +- vendor/twbs/bootstrap/less/normalize.less | 22 +- vendor/twbs/bootstrap/less/pagination.less | 2 - vendor/twbs/bootstrap/less/panels.less | 48 +- vendor/twbs/bootstrap/less/print.less | 7 +- vendor/twbs/bootstrap/less/progress-bars.less | 23 +- .../bootstrap/less/responsive-utilities.less | 125 +- vendor/twbs/bootstrap/less/scaffolding.less | 13 +- vendor/twbs/bootstrap/less/tables.less | 95 +- vendor/twbs/bootstrap/less/theme.less | 49 +- vendor/twbs/bootstrap/less/thumbnails.less | 41 +- vendor/twbs/bootstrap/less/tooltip.less | 16 +- vendor/twbs/bootstrap/less/type.less | 167 +- vendor/twbs/bootstrap/less/utilities.less | 16 +- vendor/twbs/bootstrap/less/variables.less | 116 +- vendor/twbs/bootstrap/package.json | 45 +- .../WhiteOctober/PagerfantaBundle | 2 +- 885 files changed, 21569 insertions(+), 24561 deletions(-) delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.gitignore delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.scrutinizer.yml delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.travis.yml delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/BraincraftedBootstrapBundle.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CHANGELOG.md delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CONTRIBUTING.md delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/GenerateCommand.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/InstallCommand.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Composer/ScriptHandler.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/AsseticConfiguration.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/BraincraftedBootstrapExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/Configuration.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Extension/TypeSetterExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/BootstrapCollectionType.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/FormActionsType.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/MoneyType.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/LICENSE delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/README.md delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/form.xml delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/session.xml delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/twig.xml delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/js/bc-bootstrap-collection.js delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/less/form.less delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Bootstrap/bootstrap.less.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Form/bootstrap.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Menu/bootstrap.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Pagination/bootstrap.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/flash.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/ie8-support.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/layout.html.twig delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Session/FlashMessage.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/GenerateCommandTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/InstallCommandTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/app/.gitkeep delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/vendor/twbs/bootstrap/fonts/font1.txt delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/web/fonts/.gitkeep delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/AsseticConfigurationTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/BraincraftedBootstrapExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Extension/TypeSetterExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/BootstrapCollectionTypeTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/FormActionsTypeTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/MoneyTypeTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Session/FlashMessageTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapBadgeExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapFormExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapIconExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapLabelExtensionTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Util/PathUtilTest.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapBadgeExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapFormExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapIconExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapLabelExtension.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Util/PathUtil.php delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/composer.json delete mode 100644 vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/phpunit.xml.dist delete mode 100644 vendor/doctrine/common/composer.lock delete mode 100644 vendor/doctrine/common/tests/NativePhpunitTask.php delete mode 120000 vendor/oyejorge/less.php/test/Fixtures/bug-reports/less/bootstrap3 delete mode 100644 vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/CountWalker.php delete mode 100644 vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/LimitSubqueryWalker.php delete mode 100644 vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/Paginator.php delete mode 100644 vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/WhereInWalker.php delete mode 100644 vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/CountWalkerTest.php delete mode 100644 vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/LimitSubqueryWalkerTest.php delete mode 100644 vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/WhereInWalkerTest.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Security.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/HttpCacheListener.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/SecurityListener.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/security.xml delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/security.rst delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/meta/LICENSE delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Security/ExpressionLanguage.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/HttpCacheListenerTest.php delete mode 100644 vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/SecurityListenerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/README.git delete mode 100644 vendor/swiftmailer/swiftmailer/build.xml delete mode 100644 vendor/swiftmailer/swiftmailer/create_pear_package.php delete mode 100644 vendor/swiftmailer/swiftmailer/package.xml.tpl delete mode 100644 vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Tests/DependencyInjection/RegisterListenersPassTest.php delete mode 100644 vendor/symfony/symfony/src/Symfony/Component/Validator/Tests/ValidationVisitorTest.php delete mode 100644 vendor/twbs/bootstrap/.gitattributes delete mode 100644 vendor/twbs/bootstrap/DOCS-LICENSE delete mode 100644 vendor/twbs/bootstrap/LICENSE-MIT delete mode 100644 vendor/twbs/bootstrap/_includes/nav-about.html delete mode 100644 vendor/twbs/bootstrap/about.html delete mode 100644 vendor/twbs/bootstrap/docs-assets/css/docs.css delete mode 100644 vendor/twbs/bootstrap/docs-assets/css/pygments-manni.css delete mode 100644 vendor/twbs/bootstrap/docs-assets/ico/apple-touch-icon-144-precomposed.png delete mode 100644 vendor/twbs/bootstrap/docs-assets/ico/favicon.png delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/application.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/customizer.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/filesaver.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/holder.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/ie8-responsive-file-warning.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/jszip.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/less.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/raw-files.js delete mode 100644 vendor/twbs/bootstrap/docs-assets/js/uglify.js diff --git a/vendor/autoload.php b/vendor/autoload.php index f15b933b9b..779f683296 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer' . '/autoload_real.php'; -return ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0::getLoader(); +return ComposerAutoloaderInitafc49d8078f44ed99fdf94305db6ff51::getLoader(); diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.gitignore b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.gitignore deleted file mode 100644 index 577661e264..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/build/ -/vendor/ -/Resources/docs/code-coverage -/phpunit.xml -/composer.lock -*.sublime-project -*.sublime-workspace diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.scrutinizer.yml b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.scrutinizer.yml deleted file mode 100644 index 717da011d3..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.scrutinizer.yml +++ /dev/null @@ -1,44 +0,0 @@ -filter: - excluded_paths: - - 'vendor/*' - - 'app/*' - - 'web/*' - - 'Tests/*' -before_commands: - - 'composer --prefer-source --dev install' - - 'cp phpunit.xml.dist phpunit.xml' -tools: - php_mess_detector: - config: - naming_rules: { boolean_method_name: true } - controversial_rules: { camel_case_class_name: true, camel_case_property_name: true, camel_case_method_name: true, camel_case_parameter_name: true, camel_case_variable_name: true } - php_analyzer: - config: - parameter_reference_check: { enabled: false } - checkstyle: { enabled: true, no_trailing_whitespace: true, naming: { enabled: true, local_variable: '^[a-z][a-zA-Z0-9]*$', abstract_class_name: ^Abstract|Factory$, utility_class_name: 'Utils?$', constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$', property_name: '^[a-z][a-zA-Z0-9]*$', method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$', parameter_name: '^[a-z][a-zA-Z0-9]*$', interface_name: '^[A-Z][a-zA-Z0-9]*Interface$', type_name: '^[A-Z][a-zA-Z0-9]*$', exception_name: '^[A-Z][a-zA-Z0-9]*Exception$', isser_method_name: '^(?:is|has|should|may|supports)' } } - unreachable_code: { enabled: true } - check_access_control: { enabled: false } - typo_checks: { enabled: true } - check_variables: { enabled: true } - suspicious_code: { enabled: false, overriding_parameter: false, overriding_closure_use: false, parameter_closure_use_conflict: false, parameter_multiple_times: false, non_existent_class_in_instanceof_check: false, non_existent_class_in_catch_clause: false, assignment_of_null_return: false, non_commented_switch_fallthrough: false, non_commented_empty_catch_block: false, overriding_private_members: false, use_statement_alias_conflict: false, precedence_in_condition_assignment: false } - dead_assignments: { enabled: true } - verify_php_doc_comments: { enabled: true, parameters: true, return: true, suggest_more_specific_types: true, ask_for_return_if_not_inferrable: true, ask_for_param_type_annotation: true } - loops_must_use_braces: { enabled: true } - check_usage_context: { enabled: true, method_call_on_non_object: { enabled: true, ignore_null_pointer: true }, foreach: { value_as_reference: true, traversable: true }, missing_argument: true, argument_type_checks: lenient } - simplify_boolean_return: { enabled: true } - phpunit_checks: { enabled: true } - reflection_checks: { enabled: false } - precedence_checks: { enabled: true, assignment_in_condition: true, comparison_of_bit_result: true } - basic_semantic_checks: { enabled: true } - doc_comment_fixes: { enabled: true } - reflection_fixes: { enabled: false } - use_statement_fixes: { enabled: true, remove_unused: true, preserve_multiple: false, order_alphabetically: false } - php_code_sniffer: - config: - standard: PSR2 - sensiolabs_security_checker: true - php_code_coverage: - config_path: phpunit.xml.dist - php_cpd: true - php_loc: true - php_pdepend: true \ No newline at end of file diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.travis.yml b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.travis.yml deleted file mode 100644 index 97ba6069e1..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: php - -php: - - 5.3.3 - - 5.3 - - 5.4 - - 5.5 - -before_script: - - wget http://getcomposer.org/composer.phar - - php composer.phar --prefer-source --dev install - - cp phpunit.xml.dist phpunit.xml - -script: - - phpunit diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/BraincraftedBootstrapBundle.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/BraincraftedBootstrapBundle.php deleted file mode 100644 index f715a890fd..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/BraincraftedBootstrapBundle.php +++ /dev/null @@ -1,24 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BraincraftedBootstrapBundle extends Bundle -{ -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CHANGELOG.md b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CHANGELOG.md deleted file mode 100644 index ca3212bb9b..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -Changelog BraincraftedBootstrapBunde -==================================== - -Version 1.2.0 -------------- - -- Added support for Assetic diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CONTRIBUTING.md b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CONTRIBUTING.md deleted file mode 100644 index ca68ee264b..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/CONTRIBUTING.md +++ /dev/null @@ -1,29 +0,0 @@ -Contributing -============ - -Thank you for contributing to BraincraftedBootstrapBundle. - -Here are a few rules to make code reviews and merging your code into the repository easier. - -You MUST follow the [PSR-1](http://www.php-fig.org/psr/1/) and -[PSR-2](http://www.php-fig.org/psr/2/). If you don't know about them, read the recommendations. You can use -[PHP-CS-Fixer tool](http://cs.sensiolabs.org/) to find errors in your code. - -You MUST run the test suite. - -You MUST write (or update) unit tests. - -You SHOULD write documentation. - -Please, write [commit messages that make -sense](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html), -and [rebase your branch](http://git-scm.com/book/en/Git-Branching-Rebasing) -before submitting your Pull Request. - -If asked, [squash your -commits](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html). This is used to "clean" your Pull -Request before merging it (we don't want commits such as `fix tests`, `fix 2`, `fix 3`, etc.). - -Thank you! - -This document is based on an article by [William Durand](http://williamdurand.fr/2013/11/20/on-creating-pull-requests/). diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/GenerateCommand.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/GenerateCommand.php deleted file mode 100644 index 7c07bf7c6b..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/GenerateCommand.php +++ /dev/null @@ -1,113 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com BraincraftedBootstrapBundle - */ -class GenerateCommand extends ContainerAwareCommand -{ - /** @var PathUtil */ - private $pathUtil; - - /** - * {@inheritDoc} - */ - public function __construct($name = null) - { - $this->pathUtil = new PathUtil; - - parent::__construct($name); - } - - /** - * {@inheritDoc} - * - * @codeCoverageIgnore - */ - protected function configure() - { - $this - ->setName('braincrafted:bootstrap:generate') - ->setDescription('Generates a custom bootstrap.less') - ; - } - - /** - * {@inheritDoc} - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $config = $this->getContainer()->getParameter('braincrafted_bootstrap.customize'); - - if (false === isset($config['variables_file']) || null === $config['variables_file']) { - $output->writeln('Found no custom variables.less file.'); - - return; - } - - $filter = $this->getContainer()->getParameter('braincrafted_bootstrap.less_filter'); - if ('less' !== $filter && 'lessphp' !== $filter) { - $output->writeln( - 'Bundle must be configured with "less" or "lessphp" to generated bootstrap.less' - ); - - return; - } - - $output->writeln('Found custom variables file. Generating...'); - $this->executeGenerateBootstrap($config); - $output->writeln(sprintf('Saved to %s', $config['bootstrap_output'])); - } - - protected function executeGenerateBootstrap(array $config) - { - // In the template for bootstrap.less we need the path where Bootstraps .less files are stored and the path - // to the variables.less file. - // Absolute path do not work in LESSs import statement, we have to calculate the relative ones - - $lessDir = $this->pathUtil->getRelativePath( - dirname($config['bootstrap_output']), - $this->getContainer()->getParameter('braincrafted_bootstrap.assets_dir') - ); - $variablesDir = $this->pathUtil->getRelativePath( - dirname($config['bootstrap_output']), - dirname($config['variables_file']) - ); - $variablesFile = sprintf( - '%s%s%s', - $variablesDir, - strlen($variablesDir) > 0 ? '/' : '', - basename($config['variables_file']) - ); - - // We can now use Twig to render the bootstrap.less file and save it - $content = $this->getContainer()->get('twig')->render( - $config['bootstrap_template'], - array( - 'variables_file' => $variablesFile, - 'assets_dir' => $lessDir - ) - ); - file_put_contents($config['bootstrap_output'], $content); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/InstallCommand.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/InstallCommand.php deleted file mode 100644 index 8ee3c48ba8..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Command/InstallCommand.php +++ /dev/null @@ -1,91 +0,0 @@ -setName('braincrafted:bootstrap:install') - ->setDescription('Installs the icon font'); - } - - /** - * {@inheritDoc} - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $destDir = $this->getDestDir(); - - $finder = new Finder; - $fs = new Filesystem; - - try { - $fs->mkdir($destDir); - } catch (IOException $e) { - $output->writeln(sprintf('Could not create directory %s.', $destDir)); - - return; - } - - $srcDir = $this->getSrcDir(); - if (false === file_exists($srcDir)) { - $output->writeln(sprintf( - 'Fonts directory "%s" does not exist. Did you install twbs/bootstrap? '. - 'If you used something other than Compoer you need to manually change the path in '. - '"braincrafted_bootstrap.assets_dir".', - $srcDir - )); - - return; - } - $finder->files()->in($srcDir); - - foreach ($finder as $file) { - $dest = sprintf('%s/%s', $destDir, $file->getBaseName()); - try { - $fs->copy($file, $dest); - } catch (IOException $e) { - $output->writeln(sprintf('Could not copy %s', $file->getBaseName())); - return; - } - } - - $output->writeln(sprintf('Copied Glyphicon fonts to %s.', $destDir)); - } - - /** - * @return string - */ - protected function getSrcDir() - { - return sprintf('%s/fonts', $this->getContainer()->getParameter('braincrafted_bootstrap.assets_dir')); - } - - /** - * @return string - */ - protected function getDestDir() - { - $outputDir = $this->getContainer()->getParameter('braincrafted_bootstrap.output_dir'); - if (strlen($outputDir) > 0 && '/' !== substr($outputDir, -1)) { - $outputDir .= '/'; - } - - return sprintf( - '%s/../web/%sfonts', - $this->getContainer()->getParameter('kernel.root_dir'), - $outputDir - ); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Composer/ScriptHandler.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Composer/ScriptHandler.php deleted file mode 100644 index 3602531417..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Composer/ScriptHandler.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Braincrafted\Bundle\BootstrapBundle\Composer; - -use Symfony\Component\Process\Process; -use Symfony\Component\Process\PhpExecutableFinder; -use Composer\Script\CommandEvent; - -/** - * ScriptHandler - * - * @package BraincraftedBootstrapBundle - * @subpackage Composer - * @author Florian Eckerstorfer - * @copyright 2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * - * @codeCoverageIgnore - */ -class ScriptHandler -{ - /** - * @param CommandEvent $event - */ - public static function install(CommandEvent $event) - { - $options = self::getOptions($event); - $appDir = $options['symfony-app-dir']; - - if (!is_dir($appDir)) { - printf( - 'The symfony-app-dir (%s) specified in composer.json was not found in %s, can not build bootstrap '. - 'file.%s', - $appDir, - getcwd(), - PHP_EOL - ); - - return; - } - - static::executeCommand($event, $appDir, 'braincrafted:bootstrap:install', $options['process-timeout']); - } - - protected static function executeCommand(CommandEvent $event, $appDir, $cmd, $timeout = 300) - { - $php = escapeshellarg(self::getPhp()); - $console = escapeshellarg($appDir.'/console'); - if ($event->getIO()->isDecorated()) { - $console .= ' --ansi'; - } - - $process = new Process($php.' '.$console.' '.$cmd, null, null, null, $timeout); - $process->run(function ($type, $buffer) { - echo $buffer; - }); - if (!$process->isSuccessful()) { - throw new \RuntimeException( - sprintf('An error occurred when executing the "%s" command.', escapeshellarg($cmd)) - ); - } - } - - protected static function getOptions(CommandEvent $event) - { - $options = array_merge(array( - 'symfony-app-dir' => 'app', - 'symfony-web-dir' => 'web', - 'symfony-assets-install' => 'hard' - ), $event->getComposer()->getPackage()->getExtra()); - - $options['symfony-assets-install'] = getenv('SYMFONY_ASSETS_INSTALL') ?: $options['symfony-assets-install']; - - $options['process-timeout'] = $event->getComposer()->getConfig()->get('process-timeout'); - - return $options; - } - - protected static function getPhp() - { - $phpFinder = new PhpExecutableFinder; - if (!$phpPath = $phpFinder->find()) { - throw new \RuntimeException( - 'The php executable could not be found, add it to your PATH environment variable and try again' - ); - } - - return $phpPath; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/AsseticConfiguration.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/AsseticConfiguration.php deleted file mode 100644 index 020bd75977..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/AsseticConfiguration.php +++ /dev/null @@ -1,132 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class AsseticConfiguration -{ - /** - * Builds the assetic configuration. - * - * @param array $config - * - * @return array - */ - public function build(array $config) - { - $output = array(); - - // Fix path in output dir - if ('/' !== substr($config['output_dir'], -1) && strlen($config['output_dir']) > 0) { - $config['output_dir'] .= '/'; - } - - if ('none' !== $config['less_filter']) { - $output['bootstrap_css'] = $this->buildCssWithLess($config); - } else { - $output['bootstrap_css'] = $this->buildCssWithoutLess($config); - } - - $output['bootstrap_js'] = $this->buildJs($config); - $output['jquery'] = $this->buildJquery($config); - - return $output; - } - - /** - * @param array $config - * - * @return array - */ - protected function buildCssWithoutLess(array $config) - { - $inputs = array( - $config['assets_dir'].'/dist/css/bootstrap.css', - ); - - return array( - 'inputs' => $inputs, - 'filters' => array('cssrewrite'), - 'output' => $config['output_dir'].'css/bootstrap.css' - ); - } - - /** - * @param array $config - * - * @return array - */ - protected function buildCssWithLess(array $config) - { - $bootstrapFile = $config['assets_dir'].'/less/bootstrap.less'; - if (true === isset($config['customize']['variables_file']) && - null !== $config['customize']['variables_file']) { - $bootstrapFile = $config['customize']['bootstrap_output']; - } - - $inputs = array( - $bootstrapFile, - __DIR__.'/../Resources/less/form.less' - ); - - return array( - 'inputs' => $inputs, - 'filters' => array($config['less_filter']), - 'output' => $config['output_dir'].'css/bootstrap.css' - ); - } - - /** - * @param array $config - * - * @return array - */ - protected function buildJs(array $config) - { - return array( - 'inputs' => array( - $config['assets_dir'].'/js/transition.js', - $config['assets_dir'].'/js/alert.js', - $config['assets_dir'].'/js/button.js', - $config['assets_dir'].'/js/carousel.js', - $config['assets_dir'].'/js/collapse.js', - $config['assets_dir'].'/js/dropdown.js', - $config['assets_dir'].'/js/modal.js', - $config['assets_dir'].'/js/tooltip.js', - $config['assets_dir'].'/js/popover.js', - $config['assets_dir'].'/js/scrollspy.js', - $config['assets_dir'].'/js/tab.js', - $config['assets_dir'].'/js/affix.js', - __DIR__.'/../Resources/js/bc-bootstrap-collection.js' - ), - 'output' => $config['output_dir'].'js/bootstrap.js' - ); - } - - /** - * @param array $config - * - * @return array - */ - protected function buildJquery(array $config) - { - return array( - 'inputs' => array($config['jquery_path']), - 'output' => $config['output_dir'].'js/jquery.js' - ); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/BraincraftedBootstrapExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/BraincraftedBootstrapExtension.php deleted file mode 100644 index f2518a8365..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/BraincraftedBootstrapExtension.php +++ /dev/null @@ -1,179 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BraincraftedBootstrapExtension extends Extension implements PrependExtensionInterface -{ - /** @var string */ - protected $formTemplate = 'BraincraftedBootstrapBundle:Form:bootstrap.html.twig'; - - /** @var string */ - protected $menuTemplate = 'BraincraftedBootstrapBundle:Menu:bootstrap.html.twig'; - - /** @var string */ - protected $paginationTemplate = 'BraincraftedBootstrapBundle:Pagination:bootstrap.html.twig'; - - /** - * {@inheritDoc} - */ - public function load(array $configs, ContainerBuilder $container) - { - $configuration = new Configuration(); - $config = $this->processConfiguration($configuration, $configs); - - $loader = new Loader\XmlFileLoader( - $container, - new FileLocator(__DIR__.'/../Resources/config') - ); - $loader->load('services/form.xml'); - $loader->load('services/twig.xml'); - $loader->load('services/session.xml'); - - if (true === isset($config['customize'])) { - $container->setParameter('braincrafted_bootstrap.customize', $config['customize']); - } - $container->setParameter('braincrafted_bootstrap.assets_dir', $config['assets_dir']); - $container->setParameter('braincrafted_bootstrap.output_dir', $config['output_dir']); - $container->setParameter('braincrafted_bootstrap.less_filter', $config['less_filter']); - } - - /** - * {@inheritDoc} - */ - public function prepend(ContainerBuilder $container) - { - $bundles = $container->getParameter('kernel.bundles'); - - $configs = $container->getExtensionConfig($this->getAlias()); - $config = $this->processConfiguration(new Configuration(), $configs); - - // Configure Assetic if AsseticBundle is activated and the option - // "braincrafted_bootstrap.auto_configure.assetic" is set to TRUE (default value). - if (true === isset($bundles['AsseticBundle']) && true === $config['auto_configure']['assetic']) { - $this->configureAsseticBundle($container, $config); - } - - // Configure Twig if TwigBundle is activated and the option - // "braincrafted_bootstrap.auto_configure.twig" is set to TRUE (default value). - if (true === isset($bundles['TwigBundle']) && true === $config['auto_configure']['twig']) { - $this->configureTwigBundle($container); - } - - // Configure KnpMenu if KnpMenuBundle and TwigBundle are activated and the option - // "braincrafted_bootstrap.auto_configure.knp_menu" is set to TRUE (default value). - if (true === isset($bundles['TwigBundle']) && - true === isset($bundles['KnpMenuBundle']) && - true === $config['auto_configure']['knp_menu']) { - $this->configureKnpMenuBundle($container); - } - - // Configure KnpPaginiator if KnpPaginatorBundle and TwigBundle are activated and the option - // "braincrafted_bootstrap.auto_configure.knp_paginator" is set to TRUE (default value). - if (true === isset($bundles['TwigBundle']) && - true === isset($bundles['KnpPaginatorBundle']) && - true === $config['auto_configure']['knp_paginator']) { - $this->configureKnpPaginatorBundle($container); - } - } - - /** - * @param ContainerBuilder $container The service container - * @param array $config The bundle configuration - * - * @return void - */ - protected function configureAsseticBundle(ContainerBuilder $container, array $config) - { - foreach (array_keys($container->getExtensions()) as $name) { - switch ($name) { - case 'assetic': - $asseticConfig = new AsseticConfiguration; - $container->prependExtensionConfig( - $name, - array('assets' => $asseticConfig->build($config)) - ); - break; - } - } - } - - /** - * @param ContainerBuilder $container The service container - * - * @return void - */ - protected function configureTwigBundle(ContainerBuilder $container) - { - foreach (array_keys($container->getExtensions()) as $name) { - switch ($name) { - case 'twig': - $container->prependExtensionConfig( - $name, - array('form' => array('resources' => array($this->formTemplate))) - ); - break; - } - } - } - - /** - * @param ContainerBuilder $container The service container - * - * @return void - */ - protected function configureKnpMenuBundle(ContainerBuilder $container) - { - foreach (array_keys($container->getExtensions()) as $name) { - switch ($name) { - case 'knp_menu': - $container->prependExtensionConfig( - $name, - array('twig' => array('template' => $this->menuTemplate)) - ); - break; - } - } - } - - /** - * @param ContainerBuilder $container The service container - * - * @return void - */ - protected function configureKnpPaginatorBundle(ContainerBuilder $container) - { - foreach (array_keys($container->getExtensions()) as $name) { - switch ($name) { - case 'knp_paginator': - $container->prependExtensionConfig( - $name, - array('template' => array('pagination' => $this->paginationTemplate)) - ); - break; - } - } - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/Configuration.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/Configuration.php deleted file mode 100644 index dcce8d0208..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/DependencyInjection/Configuration.php +++ /dev/null @@ -1,79 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class Configuration implements ConfigurationInterface -{ - /** - * {@inheritDoc} - */ - public function getConfigTreeBuilder() - { - return $this->buildConfigTree(); - } - - private function buildConfigTree() - { - $treeBuilder = new TreeBuilder(); - $rootNode = $treeBuilder->root('braincrafted_bootstrap'); - - $rootNode - ->children() - ->scalarNode('output_dir')->defaultValue('')->end() - ->scalarNode('assets_dir') - ->defaultValue('%kernel.root_dir%/../vendor/twbs/bootstrap') - ->end() - ->scalarNode('jquery_path') - ->defaultValue('%kernel.root_dir%/../vendor/jquery/jquery/jquery-1.10.2.js') - ->end() - ->scalarNode('less_filter') - ->defaultValue('less') - ->validate() - ->ifNotInArray(array('less', 'lessphp', 'none')) - ->thenInvalid('Invalid less filter "%s"') - ->end() - ->end() - ->arrayNode('customize') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('variables_file')->end() - ->scalarNode('bootstrap_output') - ->defaultValue('%kernel.root_dir%/Resources/less/bootstrap.less') - ->end() - ->scalarNode('bootstrap_template') - ->defaultValue('BraincraftedBootstrapBundle:Bootstrap:bootstrap.less.twig') - ->end() - ->end() - ->end() - ->arrayNode('auto_configure') - ->addDefaultsIfNotSet() - ->children() - ->booleanNode('assetic')->defaultValue(true)->end() - ->booleanNode('twig')->defaultValue(true)->end() - ->booleanNode('knp_menu')->defaultValue(true)->end() - ->booleanNode('knp_paginator')->defaultValue(true)->end() - ->end() - ->end() - ->end(); - - return $treeBuilder; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Extension/TypeSetterExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Extension/TypeSetterExtension.php deleted file mode 100644 index 1746d4fb50..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Extension/TypeSetterExtension.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class TypeSetterExtension extends AbstractTypeExtension -{ - /** - * {@inheritDoc} - */ - public function buildView(FormView $view, FormInterface $form, array $options) - { - $view->vars['original_type'] = $form->getConfig()->getType()->getName(); - } - - /** - * {@inheritDoc} - */ - public function getExtendedType() - { - return "form"; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/BootstrapCollectionType.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/BootstrapCollectionType.php deleted file mode 100644 index da33edc614..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/BootstrapCollectionType.php +++ /dev/null @@ -1,98 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BootstrapCollectionType extends AbstractType -{ - /** - * {@inheritdoc} - */ - public function buildView(FormView $view, FormInterface $form, array $options) - { - $view->vars = array_replace( - $view->vars, - array( - 'allow_add' => $options['allow_add'], - 'allow_delete' => $options['allow_delete'], - 'add_button_text' => $options['add_button_text'], - 'delete_button_text' => $options['delete_button_text'], - 'sub_widget_col' => $options['sub_widget_col'], - 'button_col' => $options['button_col'], - 'prototype_name' => $options['prototype_name'] - ) - ); - - if (false === $view->vars['allow_delete']) { - $view->vars['sub_widget_col'] += $view->vars['button_col']; - } - - if ($form->getConfig()->hasAttribute('prototype')) { - $view->vars['prototype'] = $form->getConfig()->getAttribute('prototype')->createView($view); - } - } - - /** - * {@inheritDoc} - */ - public function setDefaultOptions(OptionsResolverInterface $resolver) - { - $optionsNormalizer = function (Options $options, $value) { - // @codeCoverageIgnoreStart - $value['block_name'] = 'entry'; - - return $value; - // @codeCoverageIgnoreEnd - }; - - $resolver->setDefaults(array( - 'allow_add' => false, - 'allow_delete' => false, - 'prototype' => true, - 'prototype_name' => '__name__', - 'type' => 'text', - 'add_button_text' => 'Add', - 'delete_button_text' => 'Delete', - 'sub_widget_col' => 10, - 'button_col' => 2, - 'options' => array(), - )); - - $resolver->setNormalizers(array('options' => $optionsNormalizer)); - } - - /** - * {@inheritDoc} - */ - public function getParent() - { - return 'collection'; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'bootstrap_collection'; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/FormActionsType.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/FormActionsType.php deleted file mode 100644 index 3d7ea72e13..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/FormActionsType.php +++ /dev/null @@ -1,97 +0,0 @@ - - */ -class FormActionsType extends AbstractType -{ - /** - * {@inheritdoc} - */ - public function buildForm(FormBuilderInterface $builder, array $options) - { - foreach ($options['buttons'] as $name => $config) { - $this->addButton($builder, $name, $config); - } - } - - /** - * {@inheritdoc} - * - * @param FormView $view - * @param FormInterface $form - * @param array $options - */ - public function buildView(FormView $view, FormInterface $form, array $options) - { - if ($form->count() == 0) { - return; - } - - array_map(array($this, 'validateButton'), $form->all()); - } - - /** - * Adds a button - * - * @param FormBuilderInterface $builder - * @param $name - * @param $config - * @throws \InvalidArgumentException - * @return ButtonBuilder - */ - protected function addButton($builder, $name, $config) - { - $options = (isset($config['options']))? $config['options'] : array(); - $builder->add($name, $config['type'], $options); - } - - /** - * Validates if child is a Button - * - * @param FormInterface $field - * @throws \InvalidArgumentException - */ - protected function validateButton(FormInterface $field) - { - if (!$field instanceof Button) { - throw new \InvalidArgumentException("Children of FormActionsType must be instances of the Button class"); - } - } - - /** - * {@inheritdoc} - */ - public function setDefaultOptions(OptionsResolverInterface $resolver) - { - $resolver->setDefaults(array( - 'buttons' => array(), - 'options' => array(), - 'mapped' => false, - )); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'form_actions'; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/MoneyType.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/MoneyType.php deleted file mode 100644 index d2f5f45252..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Form/Type/MoneyType.php +++ /dev/null @@ -1,105 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class MoneyType extends BaseMoneyType -{ - /** - * {@inheritdoc} - */ - public function buildView(FormView $view, FormInterface $form, array $options) - { - $view->vars['money_pattern'] = self::getPattern($options['currency']); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'money'; - } - - /** - * Returns the pattern for this locale - * - * The pattern contains the placeholder "{{ widget }}" where the HTML tag should - * be inserted - * - * @param string $currency - * - * @return string Returns the pattern - */ - protected static function getPattern($currency) - { - if (!$currency) { - return '{{ widget }}'; - } - - $locale = \Locale::getDefault(); - - if (!isset(self::$patterns[$locale])) { - self::$patterns[$locale] = array(); - } - - if (!isset(self::$patterns[$locale][$currency])) { - $format = new \NumberFormatter($locale, \NumberFormatter::CURRENCY); - $pattern = $format->formatCurrency('123', $currency); - - // the spacings between currency symbol and number are ignored, because - // a single space leads to better readability in combination with input - // fields - // the regex also considers non-break spaces (0xC2 or 0xA0 in UTF-8) - - preg_match( - '/^([^\s\xc2\xa0]*)[\s\xc2\xa0]*123(?:[,.]0+)?[\s\xc2\xa0]*([^\s\xc2\xa0]*)$/u', - $pattern, - $matches - ); - - self::$patterns[$locale][$currency] = self::parsePatternMatches($matches); - } - - return self::$patterns[$locale][$currency]; - } - - /** - * Parses the given pattern matches array and returns the pattern string. - * - * @param array $matches Pattern matches - * - * @return string Pattern - */ - protected static function parsePatternMatches(array $matches) - { - if (!empty($matches[1])) { - return '{{ tag_start }}'.$matches[1].'{{ tag_end }} {{ widget }}'; - } - - if (!empty($matches[2])) { - return '{{ widget }} {{ tag_start }}'.$matches[2].'{{ tag_end }}'; - } - - // @codeCoverageIgnoreStart - return '{{ widget }}'; - // @codeCoverageIgnoreEnd - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/LICENSE b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/LICENSE deleted file mode 100644 index e7f601cea9..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2013 Florian Eckerstorfer - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/README.md b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/README.md deleted file mode 100644 index 432f978645..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/README.md +++ /dev/null @@ -1,217 +0,0 @@ -[BraincraftedBootstrapBundle](http://bootstrap.braincrafted.com) -================= - -BraincraftedBootstrapBundle helps you integrate [Bootstrap](http://getbootstrap.com) in your [Symfony2](http://symfony.com) project. - -[![Build Status](https://secure.travis-ci.org/braincrafted/bootstrap-bundle.png)](http://travis-ci.org/braincrafted/bootstrap-bundle) -[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/braincrafted/bootstrap-bundle/badges/quality-score.png?s=28e07378182fddc3cdf2c764437a72b6eaf55a45)](https://scrutinizer-ci.com/g/braincrafted/bootstrap-bundle/) -[![Code Coverage](https://scrutinizer-ci.com/g/braincrafted/bootstrap-bundle/badges/coverage.png?s=6258b68071860a349841a0450f39e7cc6ad5da23)](https://scrutinizer-ci.com/g/braincrafted/bootstrap-bundle/) - -[![Latest Stable Version](https://poser.pugx.org/braincrafted/bootstrap-bundle/v/stable.png)](https://packagist.org/packages/braincrafted/bootstrap-bundle) -[![Total Downloads](https://poser.pugx.org/braincrafted/bootstrap-bundle/downloads.png)](https://packagist.org/packages/braincrafted/bootstrap-bundle) - -Developed by [Florian Eckerstorfer](http://florian.ec) and many amazing [contributors](https://github.com/braincrafted/bootstrap-bundle/contributors). - - -Installation ------------- - -First you need to add `braincrafted/bootstrap-bundle` to `composer.json`: - -```json -{ - "require": { - "braincrafted/bootstrap-bundle": "dev-master" - } -} -``` - -Please note that `dev-master` points to the latest release. If you want to use the latest development version please use `dev-develop`. Of course you can also use an explicit version number, e.g., `2.0.*`. - -You also have to add `BraincraftedBootstrapBundle` to your `AppKernel.php`: - -```php -// app/AppKernel.php -//... -class AppKernel extends Kernel -{ - //... - public function registerBundles() - { - $bundles = array( - ... - new Braincrafted\Bundle\BootstrapBundle\BraincraftedBootstrapBundle() - ); - //... - - return $bundles; - } - //... -} -``` -Additionally you have to install Bootstrap and jQuery as dependencies and configure Assetic to compile the LESS files. You can find more information in the [Getting Started](http://bootstrap.braincrafted.com/getting-started.html) section of the documentation. - - -Compatibility -------------- - -This bundle has two main dependencies, Symfony and Bootstrap. The following table shows which version of BraincraftedBootstrapBundle is compatible with which version of Symfony and Bootstrap. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BootstrapBundleSymfonyBootstrapjQuery
v1.3.*v2.2.*v2.3.*v1.9.*
v1.4.*v2.2.*v2.3.*v1.9.*
v1.5.*v2.2.*v2.3.*v1.9.*
v2.0.*v2.3.*
v2.4.*
v3.0.*
v3.1.*
v1.10.*
v1.11.*
- - -Changelog ---------- - -### Version 2.0.1 (3 April 2014) - -- #168 Removed CSS class `row` from form-group -- #182 Added support for form actions (row with multiple buttons) (by [rdohms](https://github.com/rdohms)) -- #187 Made default button class changable (by [sandello-alkr](https://github.com/sandello-alkr)) -- #188 Added icons to form buttons (by [mvrhov](https://github.com/mvrhov)) -- #190 Added support for stacked tabs (by [aur1mas](https://github.com/aur1mas)) -- #192 Added method to reset flash bag (by [JulienRamel](https://github.com/JulienRamel)) -- #196 Removed CSS class `nav` from child elements (by [dylanschoenmakers](https://github.com/dylanschoenmakers)) -- #198 Added parsing of icons in prepend and append input groups (by [yvh](https://github.com/yvh)) -- Fixed `file` form type (by [hsz](https://github.com/hsz)) - -### Version 2.0.0-alpha1 - -- Updated to Symfony v2.3.6 -- Updated to Bootstrap v3.0.1 -- Updated to jQuery v1.10.2 -- Remove `include_responsive` option because Bootstrap 3.0 no longer has a non responsive version -- Added `boostrap_money` form type that uses Bootstraps prepend or append style to display the currency -- `percent` form type uses Bootstraps append style to display the percent sign -- Changed namespace back to `Braincrafted\Bundle\BootstrapBundle` -- Support for custom `variables.less` -- Several Twig filters are now functions -- Added `bootstrap_set_style` and `bootstrap_get_style` Twig functions to globally set the style of forms -- Added command to generate custom `bootstrap.less` file -- Added command to copy icon fonts into `web/` directory -- Added Composer script handler for copying icon fonts -- Pagination now supports disabled links -- Added Twig function `badge` -- Removed Twig filters `badge_*` (Bootstrap v3.0 does not include multiply badge styles) -- Twig filters `label_*` are now Twig functions -- Twig filter `icon` is now a Twig function -- Added `braincrafted_collection` form type - -#### Version 2.0.0-alpha2 - -- Fixed compatibility with PHP 5.3 (Fixes [#111](https://github.com/braincrafted/bootstrap-bundle/issues/111)) -- Renamed `braincrafted_collection` to `bootstrap_collection` -- `widget_col`, `label_col` and `simple_col` can be defined in form builder (Fixes [#113](https://github.com/braincrafted/bootstrap-bundle/issues/113)) -- Add support for input groups -- Fix bug with inline forms when no placeholder is defined - -#### Version 2.0.0-alpha3 - -- Fixed configuration of input groups in form builder (Fixes [#115](https://github.com/braincrafted/bootstrap-bundle/issues/115)) -- Fixed trailing slash in `braincrafted_bootstrap.output_dir` option -- Fixed undefined variable in pagination template -- Better tested - -#### Version 2.0.0-beta1 - -- Fixed duplicate `div.form-group` in `choice_widget_expanded` (Fixes [#131](https://github.com/braincrafted/bootstrap-bundle/issues/131)) -- Use correct assets when not using LESS (Fixes [#128](https://github.com/braincrafted/bootstrap-bundle/issues/128)) [[amcgowanca](https://github.com/amcgowanca)] -- Add `col_size` option to set the column size for form widgets (Fixes [#127](https://github.com/braincrafted/bootstrap-bundle/issues/127)) -- Add support for `simple_col` options in `textarea_widget` -- Renamed views -- Add error messages in `checkbox_row` and `radio_widget` (Fixes [#118](https://github.com/braincrafted/bootstrap-bundle/issues/118)) - -#### Version 2.0.0-beta2 (9 December 2013) - -- #133: Fix `label_col`, `widget_col`, `col_size` and `simple_col` options in collection widgets -- #136: Added translation to `bootstrap_collection` widget -- #137: Removed `cssrewrite` filter from default Assetic configuration -- #139: Fix JavaScript for nested `bootstrap_collection` widgets (by [wizart](https://github.com/wizart)) -- #140: Improved dependency list in `composer.json` (by [hason](https://github.com/hason)) -- #142: Added translation for help block and error messages -- #143: Added translation to flash message template (by [rdohms](https://github.com/rdohms)) -- #144: Fix class attribute for checkbox widget (by [squaye85](https://github.com/squaye85)) -- #145: Added possibility to style global error messages -- Renamed `customize_variables` configuration option into `customize` - -#### Version 2.0.0-stable (2 January 2014) - -- #152: Add form name attribute (by [nonlux](https://github.com/nonlux)) -- #154: Fix Bootstrap Collection form type for nested types -- #155: Use `braincrafted_bootstrap.output_dir` option when installing icon font -- #52: Add class option for pagination -- #148: Add `label_col` and `widget_col` option for the whole form (by [florianeckerstorfer](https://github.com/florianeckerstorfer) and [dirkluijk](https://github.com/dirkluijk)) -- #156: Add support for error messages with parameters (by [thanosp](https://github.com/thanosp)) -- #157: Use print shiv instead of standard shiv (by [mvrhov](https://github.com/mvrhov)) -- #161: Set `style` option in FormBuilder -- #162: Set depth of navigation. - -### Version 1.5.0 - -- Works with new Bootstrap repository `twbs/bootstrap` -- Basic support for Bootstrap v3.0 -- Allow override options in menus -- Extend from base form layout -- Fixed problems with removing elemnts in JavaScript collection form type -- Various other bugfixes - -### Version 1.4.0 - -- Changed namespace to `Bc\Bundle\BootstrapBundle` -- Automatically configure Twig -- Automatically configure KnpMenuBundle -- Automatically configure KnpPaginatorBundle -- Automatically configure Assetic -- Improved layout of error messages in compound fields -- Improved code style (usage of PHP_CodeSniffer and PHPMD) -- Support for `data-prototype` option in collection fields -- Helper and template for flash messages - -### Version 1.2.0 - -- Added support for Assetic - - -License -------- - -- The bundle is licensed under the [MIT License](http://opensource.org/licenses/MIT) -- The CSS and Javascript from the Twitter Bootstrap are licensed under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) - - -[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/braincrafted/bootstrap-bundle/trend.png)](https://bitdeli.com/free "Bitdeli Badge") diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/form.xml b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/form.xml deleted file mode 100644 index 7fb161a714..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/form.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Braincrafted\Bundle\BootstrapBundle\Form\Type\BootstrapCollectionType - Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType - Braincrafted\Bundle\BootstrapBundle\Form\Type\FormActionsType - Braincrafted\Bundle\BootstrapBundle\Form\Extension\TypeSetterExtension - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/session.xml b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/session.xml deleted file mode 100644 index e4ba67bd03..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/session.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage - - - - - - - - - - diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/twig.xml b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/twig.xml deleted file mode 100644 index 8db814f313..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/config/services/twig.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension - Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension - Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapBadgeExtension - Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/js/bc-bootstrap-collection.js b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/js/bc-bootstrap-collection.js deleted file mode 100644 index 211e54241b..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/js/bc-bootstrap-collection.js +++ /dev/null @@ -1,123 +0,0 @@ -/* ========================================================== - * bc-bootstrap-collection.js - * http://bootstrap.braincrafted.com - * ========================================================== - * Copyright 2013 Florian Eckerstorfer - * - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - /* COLLECTION CLASS DEFINITION - * ====================== */ - - var addField = '[data-addfield="collection"]', - removeField = '[data-removefield="collection"]', - CollectionAdd = function (el) { - $(el).on('click', addField, this.addField); - }, - CollectionRemove = function (el) { - $(el).on('click', removeField, this.removeField); - } - ; - - CollectionAdd.prototype.addField = function (e) { - var $this = $(this), - selector = $this.attr('data-collection'), - prototypeName = $this.attr('data-prototype-name') - ; - - e && e.preventDefault(); - - var collection = $('#'+selector), - list = collection.find('> ul'), - count = list.find('li').size() - ; - - var newWidget = collection.attr('data-prototype'); - - // Check if an element with this ID already exists. - // If it does, increase the count by one and try again - var newName = newWidget.match(/id="(.*?)"/); - var re = new RegExp(prototypeName, "g"); - while ($('#' + newName[1].replace(re, count)).size() > 0) { - count++; - } - newWidget = newWidget.replace(re, count); - newWidget = newWidget.replace(/__id__/g, newName[1].replace(re, count)); - var newLi = $('
  • ').html(newWidget); - newLi.appendTo(list); - }; - - CollectionRemove.prototype.removeField = function (e) { - var $this = $(this), - selector = $this.attr('data-field') - ; - - e && e.preventDefault(); - - var listElement = $this.closest('li').remove(); - } - - - /* COLLECTION PLUGIN DEFINITION - * ======================= */ - - var oldAdd = $.fn.addField; - var oldRemove = $.fn.removeField; - - $.fn.addField = function (option) { - return this.each(function () { - var $this = $(this), - data = $this.data('addfield') - ; - if (!data) { - $this.data('addfield', (data = new CollectionAdd(this))); - } - if (typeof option == 'string') { - data[option].call($this); - } - }); - }; - - $.fn.removeField = function (option) { - return this.each(function() { - var $this = $(this), - data = $this.data('removefield') - ; - if (!data) { - $this.data('removefield', (data = new CollectionRemove(this))); - } - if (typeof option == 'string') { - data[option].call($this); - } - }); - }; - - $.fn.addField.Constructor = CollectionAdd; - $.fn.removeField.Constructor = CollectionRemove; - - - /* COLLECTION NO CONFLICT - * ================= */ - - $.fn.addField.noConflict = function () { - $.fn.addField = oldAdd; - return this; - } - $.fn.removeField.noConflict = function () { - $.fn.removeField = oldRemove; - return this; - } - - - /* COLLECTION DATA-API - * ============== */ - - $(document).on('click.addfield.data-api', addField, CollectionAdd.prototype.addField); - $(document).on('click.removefield.data-api', removeField, CollectionRemove.prototype.removeField); - - }(window.jQuery); \ No newline at end of file diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/less/form.less b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/less/form.less deleted file mode 100644 index d097a3b6ed..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/less/form.less +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Additional styles for BraincraftedBootstrapBundle - * (c) 2013 Florian Eckerstorfer (http://braincrafted.com) - * http://bootstrap.braincrafted.com - */ - -.bootstrap-time { - width: 100%; - select { - display: inline-block; - width: auto; - } -} - -.bootstrap-date { - width: 100%; - select { - display: inline-block; - width: auto; - margin-right: 5px; - } -} - -.bootstrap-datetime { - .bootstrap-time, - .bootstrap-date { - display: inline-block; - width: auto; - } -} - -.form-group { - .bc-collection { - li + li { - margin-top: 10px; - } - } -} - -.form-inline { - .form-group { - margin-left: 0; - margin-right: 0; - } -} - -.form-horizontal { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg12 { - .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - padding-left: 0; - } - } -} - - -form { - .has-error { - ul.help-block { - list-style: none; - padding-left: 0; - } - } - .alert { - ul { - list-style: none; - padding-left: 0; - } - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Bootstrap/bootstrap.less.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Bootstrap/bootstrap.less.twig deleted file mode 100644 index b8b8945a93..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Bootstrap/bootstrap.less.twig +++ /dev/null @@ -1,59 +0,0 @@ -/*! - * Bootstrap v3.0.0 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - */ - -// Core variables and mixins -@import "{{ variables_file }}"; -@import "{{ assets_dir }}less/mixins.less"; - -// Reset -@import "{{ assets_dir }}less/normalize.less"; -@import "{{ assets_dir }}less/print.less"; - -// Core CSS -@import "{{ assets_dir }}less/scaffolding.less"; -@import "{{ assets_dir }}less/type.less"; -@import "{{ assets_dir }}less/code.less"; -@import "{{ assets_dir }}less/grid.less"; -@import "{{ assets_dir }}less/tables.less"; -@import "{{ assets_dir }}less/forms.less"; -@import "{{ assets_dir }}less/buttons.less"; - -// Components -@import "{{ assets_dir }}less/component-animations.less"; -@import "{{ assets_dir }}less/glyphicons.less"; -@import "{{ assets_dir }}less/dropdowns.less"; -@import "{{ assets_dir }}less/button-groups.less"; -@import "{{ assets_dir }}less/input-groups.less"; -@import "{{ assets_dir }}less/navs.less"; -@import "{{ assets_dir }}less/navbar.less"; -@import "{{ assets_dir }}less/breadcrumbs.less"; -@import "{{ assets_dir }}less/pagination.less"; -@import "{{ assets_dir }}less/pager.less"; -@import "{{ assets_dir }}less/labels.less"; -@import "{{ assets_dir }}less/badges.less"; -@import "{{ assets_dir }}less/jumbotron.less"; -@import "{{ assets_dir }}less/thumbnails.less"; -@import "{{ assets_dir }}less/alerts.less"; -@import "{{ assets_dir }}less/progress-bars.less"; -@import "{{ assets_dir }}less/media.less"; -@import "{{ assets_dir }}less/list-group.less"; -@import "{{ assets_dir }}less/panels.less"; -@import "{{ assets_dir }}less/wells.less"; -@import "{{ assets_dir }}less/close.less"; - -// Components w/ JavaScript -@import "{{ assets_dir }}less/modals.less"; -@import "{{ assets_dir }}less/tooltip.less"; -@import "{{ assets_dir }}less/popovers.less"; -@import "{{ assets_dir }}less/carousel.less"; - -// Utility classes -@import "{{ assets_dir }}less/utilities.less"; -@import "{{ assets_dir }}less/responsive-utilities.less"; diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Form/bootstrap.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Form/bootstrap.html.twig deleted file mode 100644 index 8305df1bbd..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Form/bootstrap.html.twig +++ /dev/null @@ -1,864 +0,0 @@ -{% use "form_div_layout.html.twig" %} - -{# Widgets #} - -{% block form_widget %} -{% spaceless %} - {% if compound %} - {{ block('form_widget_compound') }} - {% else %} - {{ block('form_widget_simple') }} - {% endif %} -{% endspaceless %} -{% endblock form_widget %} - -{% block form_widget_simple %} -{% spaceless %} - {% set style = style|default(bootstrap_get_style()) %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if simple_col is not defined and bootstrap_get_simple_col() %} - {% set simple_col = bootstrap_get_simple_col() %} - {% endif %} - {% if attr.simple_col is defined and attr.simple_col is not empty %} - {% set simple_col = attr.simple_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% if simple_col is defined and simple_col %} -
    - {% endif %} - - {% set type = type|default('text') %} - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' form-control')|trim }) %} - - {% if style == 'inline' and (attr.placeholder is not defined or attr.placeholder is empty) %} - {% if label is empty %} - {% set attr = attr|merge({ 'placeholder': name|humanize }) %} - {% else %} - {% set attr = attr|merge({ 'placeholder': label}) %} - {% endif %} - {% endif %} - - - - {% if simple_col is defined %} -
    - {% endif %} -{% endspaceless %} -{% endblock form_widget_simple %} - -{% block form_widget_compound %} -{% spaceless %} -
    - {% if form.parent is empty %} - {{ block('global_form_errors') }} - {% endif %} - {{ block('form_rows') }} - {{ form_rest(form) }} -
    -{% endspaceless %} -{% endblock form_widget_compound %} - -{% block collection_widget %} -{% spaceless %} - {% if prototype is defined %} - {% set attr = attr|merge({'data-prototype': form_row(prototype) }) %} - {% endif %} - {{ block('form_widget') }} -{% endspaceless %} -{% endblock collection_widget %} - -{% block bootstrap_collection_widget %} -{% spaceless %} - {% if prototype is defined %} - {% set prototype_vars = {} %} - {% if style is defined %} - {% set prototype_vars = prototype_vars|merge({'style': style}) %} - {% endif %} - {% set prototype_html = '
    ' ~ form_widget(prototype, prototype_vars) ~ '
    ' %} - {% if form.vars.allow_delete %} - {% set prototype_html = prototype_html ~ '' %} - {% endif %} - {% set prototype_html = '
    ' ~ prototype_html ~ '
    ' %} - - {% set attr = attr|merge({'data-prototype': prototype_html }) %} - {% set attr = attr|merge({'data-prototype-name': prototype_name }) %} - {% endif %} -
    - - {% if form.vars.allow_add %} - {{ form.vars.add_button_text|trans({}, translation_domain) }} - {% endif %} -
    -{% endspaceless %} -{% endblock bootstrap_collection_widget %} - -{% block textarea_widget %} -{% spaceless %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.simple_col is defined and attr.simple_col is not empty %} - {% set simple_col = attr.simple_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - - {% if simple_col is defined %} -
    - {% endif %} - - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' form-control')|trim }) %} - - - - {% if simple_col is defined %} -
    - {% endif %} -{% endspaceless %} -{% endblock textarea_widget %} - -{% block file_widget %} -{% spaceless %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.simple_col is defined and attr.simple_col is not empty %} - {% set simple_col = attr.simple_col %} - {% endif %} - - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - - {% if simple_col is defined %} -
    - {% endif %} - - - - {% if simple_col is defined %} -
    - {% endif %} -{% endspaceless %} -{% endblock file_widget %} - -{% block choice_widget %} -{% spaceless %} - {% if expanded %} - {{ block('choice_widget_expanded') }} - {% else %} - {{ block('choice_widget_collapsed') }} - {% endif %} -{% endspaceless %} -{% endblock choice_widget %} - -{% block choice_widget_expanded %} -{% spaceless %} -
    - {% for child in form %} - {% if form.multiple is defined %} - {{ checkbox_row(child, { 'no_form_group': true }) }} - {% else %} - {{ radio_row(child, { 'no_form_group': true }) }} - {% endif %} - {% endfor %} -
    -{% endspaceless %} -{% endblock choice_widget_expanded %} - -{% block choice_widget_collapsed %} -{% spaceless %} - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' form-control')|trim }) %} - - -{% endspaceless %} -{% endblock choice_widget_collapsed %} - -{% block choice_widget_options %} -{% spaceless %} - {% for group_label, choice in options %} - {% if choice is iterable %} - - {% set options = choice %} - {{ block('choice_widget_options') }} - - {% else %} - - {% endif %} - {% endfor %} -{% endspaceless %} -{% endblock choice_widget_options %} - -{% block checkbox_row %} -{% spaceless %} - {% set style = style|default(bootstrap_get_style()) %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.label_col is defined and attr.label_col is not empty %} - {% set label_col = attr.label_col %} - {% endif %} - {% if attr.widget_col is defined and attr.widget_col is not empty %} - {% set widget_col = attr.widget_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% set class = '' %} - {% if align_with_widget is defined or attr.align_with_widget is defined %} - {% set widget_col = widget_col|default(bootstrap_get_widget_col()) %} - {% set label_col = label_col|default(bootstrap_get_label_col()) %} - {% set class = 'col-' ~ col_size ~ '-' ~ widget_col ~ ' col-' ~ col_size ~ '-offset-' ~ label_col %} -
    -
    - {% elseif no_form_group is not defined or no_form_group == false %} -
    - {% endif %} -
    - {% if label is not sameas(false) %} - {% if not compound %} - {% set label_attr = label_attr|merge({'for': id}) %} - {% endif %} - {% if required %} - {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} - {% endif %} - {% if label is empty %} - {% set label = name|humanize %} - {% endif %} - - {{ block('checkbox_widget') }} - {{ label|trans({}, translation_domain) }} - - {% else %} - {{ block('checkbox_widget') }} - {% endif %} - {{ form_errors(form) }} -
    - {% if align_with_widget is defined or attr.align_with_widget is defined %} -
    -
    - {% elseif no_form_group is not defined or no_form_group == false %} -
    - {% endif %} - - {% if style == 'inline' %} {% endif %} -{% endspaceless %} -{% endblock checkbox_row %} - -{% block radio_row %} -{% spaceless %} - {% set class = '' %} - - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.label_col is defined and attr.label_col is not empty %} - {% set label_col = attr.label_col %} - {% endif %} - {% if attr.widget_col is defined and attr.widget_col is not empty %} - {% set widget_col = attr.widget_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - - {% if align_with_widget is defined or attr.align_with_widget is defined %} - {% set widget_col = widget_col|default(bootstrap_get_widget_col()) %} - {% set label_col = label_col|default(bootstrap_get_label_col()) %} - {% set class = ' col-'~ col_size ~ '-' ~ widget_col ~ ' col-' ~ col_size ~ '-offset-' ~ label_col %} -
    -
    - {% elseif no_form_group is not defined or no_form_group == false %} -
    - {% endif %} - -
    - {% if label is not sameas(false) %} - {% if not compound %} - {% set label_attr = label_attr|merge({'for': id}) %} - {% endif %} - {% if required %} - {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} - {% endif %} - {% if label is empty %} - {% set label = name|humanize %} - {% endif %} - - {{ block('radio_widget') }} - {{ label|trans({}, translation_domain) }} - - {% else %} - {{ block('radio_widget') }} - {% endif %} - {{ form_errors(form) }} -
    - {% if align_with_widget is defined or attr.align_with_widget is defined %} -
    -
    - {% elseif no_form_group is not defined or no_form_group == false %} -
    - {% endif %} -{% endspaceless %} -{% endblock radio_row %} - -{% block checkbox_widget %} -{% spaceless %} - -{% endspaceless %} -{% endblock checkbox_widget %} - -{% block radio_widget %} -{% spaceless %} - -{% endspaceless %} -{% endblock radio_widget %} - -{% block datetime_widget %} -{% spaceless %} - {% if widget == 'single_text' %} - {{ block('form_widget_simple') }} - {% else %} - {% set attr = attr|merge({ 'class': 'bootstrap-datetime' }) %} -
    - {{ form_widget(form.date) }} - {{ form_widget(form.time) }} - {{ form_errors(form.date) }} - {{ form_errors(form.time) }} -
    - {% endif %} -{% endspaceless %} -{% endblock datetime_widget %} - -{% block date_widget %} -{% spaceless %} - {% if widget == 'single_text' %} - {{ block('form_widget_simple') }} - {% else %} - {% set attr = attr|merge({ 'class': 'bootstrap-date' }) %} -
    - {{ date_pattern|replace({ - '{{ year }}': form_widget(form.year), - '{{ month }}': form_widget(form.month), - '{{ day }}': form_widget(form.day), - })|raw }} -
    - {% endif %} -{% endspaceless %} -{% endblock date_widget %} - -{% block time_widget %} -{% spaceless %} - {% if widget == 'single_text' %} - {{ block('form_widget_simple') }} - {% else %} - {% set vars = widget == 'text' ? { 'attr': { 'size': 1 }} : {} %} - {% set attr = attr|merge({ 'class': 'bootstrap-time' }) %} -
    - {{ form_widget(form.hour, vars) }} - {% if with_minutes %}:{{ form_widget(form.minute, vars) }}{% endif %} - {% if with_seconds %}:{{ form_widget(form.second, vars) }}{% endif %} -
    - {% endif %} -{% endspaceless %} -{% endblock time_widget %} - -{% block number_widget %} -{% spaceless %} - {# type="number" doesn't work with floats #} - {% set type = type|default('text') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock number_widget %} - -{% block integer_widget %} -{% spaceless %} - {% set type = type|default('number') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock integer_widget %} - -{% block money_widget %} -{% spaceless %} -
    - {{ money_pattern|replace({ - '{{ widget }}': block('form_widget_simple'), - '{{ tag_start }}': '', - '{{ tag_end }}': '' - })|raw }} -
    -{% endspaceless %} -{% endblock money_widget %} - -{% block url_widget %} -{% spaceless %} - {% set type = type|default('url') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock url_widget %} - -{% block search_widget %} -{% spaceless %} - {% set type = type|default('search') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock search_widget %} - -{% block percent_widget %} -{% spaceless %} - {% set type = type|default('text') %} -
    - {{ block('form_widget_simple') }} - % -
    -{% endspaceless %} -{% endblock percent_widget %} - -{% block password_widget %} -{% spaceless %} - {% set type = type|default('password') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock password_widget %} - -{% block hidden_widget %} -{% spaceless %} - {% set type = type|default('hidden') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock hidden_widget %} - -{% block email_widget %} -{% spaceless %} - {% set type = type|default('email') %} - {{ block('form_widget_simple') }} -{% endspaceless %} -{% endblock email_widget %} - -{% block button_widget %} -{% spaceless %} - {% if label is empty %} - {% set label = name|humanize %} - {% endif %} - {% if type is defined and type == 'submit' %} - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~attr.type|default('primary'))|trim }) %} - {% else %} - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' btn btn-'~attr.type|default('default'))|trim }) %} - {% endif %} - -{% endspaceless %} -{% endblock button_widget %} - -{% block submit_widget %} -{% spaceless %} - {% set type = type|default('submit') %} - {{ block('button_widget') }} -{% endspaceless %} -{% endblock submit_widget %} - -{% block reset_widget %} -{% spaceless %} - {% set type = type|default('reset') %} - {{ block('button_widget') }} -{% endspaceless %} -{% endblock reset_widget %} - -{% block form_actions_widget %} - {% for button in form.children %} - {{ form_widget(button) }}  {# this needs to be here due to https://github.com/twbs/bootstrap/issues/3245 #} - {% endfor %} -{% endblock %} - -{# Labels #} - -{% block form_label %} -{% spaceless %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.label_col is defined and attr.label_col is not empty %} - {% set label_col = attr.label_col %} - {% endif %} - {% if attr.widget_col is defined and attr.widget_col is not empty %} - {% set widget_col = attr.widget_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - - {% if label is not sameas(false) %} - {% set style = style|default(bootstrap_get_style()) %} - {% set label_col = label_col|default(bootstrap_get_label_col()) %} - - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% set label_attr = label_attr|merge({ 'class': (label_attr.class|default('') ~ ' control-label')|trim }) %} - {% if style == 'horizontal' %} - {% set label_attr = label_attr|merge({ 'class': (label_attr.class|default('') ~ ' col-' ~ col_size ~ '-' ~ label_col)|trim }) %} - {% elseif style == 'inline' %} - {% set label_attr = label_attr|merge({ 'class': (label_attr.class|default('') ~ ' sr-only')|trim }) %} - {% endif %} - - {% if not compound %} - {% set label_attr = label_attr|merge({'for': id}) %} - {% endif %} - {% if required %} - {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} - {% endif %} - {% if label is empty %} - {% set label = name|humanize %} - {% endif %} - {{ label|trans({}, translation_domain) }} - {% endif %} -{% endspaceless %} -{% endblock form_label %} - -{% block button_label %}{% endblock %} - -{# Rows #} - -{% block repeated_row %} -{% spaceless %} - {# - No need to render the errors here, as all errors are mapped - to the first child (see RepeatedTypeValidatorExtension). - #} - {{ block('form_rows') }} -{% endspaceless %} -{% endblock repeated_row %} - -{% block form_row %} -{% spaceless %} - {% set style = style|default(bootstrap_get_style()) %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.label_col is defined and attr.label_col is not empty %} - {% set label_col = attr.label_col %} - {% endif %} - {% if attr.widget_col is defined and attr.widget_col is not empty %} - {% set widget_col = attr.widget_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% set label_col = label_col|default(bootstrap_get_label_col()) %} - {% set widget_col = widget_col|default(bootstrap_get_widget_col()) %} - -
    - {% if style == 'horizontal' %} - {{ form_label(form) }} -
    - {{ block('form_input_group') }} - {{ block('form_help') }} - {{ form_errors(form) }} -
    - {% else %} - {{ form_label(form) }} - {{ block('form_input_group') }} - {{ block('form_help') }} - {{ form_errors(form) }} - {% endif %} -
    - - {% if style == 'inline' %} {% endif %} -{% endspaceless %} -{% endblock form_row %} - -{% block form_input_group %} -{% spaceless %} - {% if attr.input_group is defined and attr.input_group is not empty %} - {% set input_group = attr.input_group %} - {% endif %} - {% set input_group = input_group|default({}) %} - {% if input_group is not empty %} - {% set ig_size_class = '' %} - {% if input_group.size is defined and input_group.size == 'large' %} - {% set ig_size_class = ' input-group-lg' %} - {% endif %} - {% if input_group.size is defined and input_group.size == 'small' %} - {% set ig_size_class = ' input-group-sm' %} - {% endif %} -
    - {% if input_group.prepend is defined and input_group.prepend is not empty %} - {{ input_group.prepend|raw|parse_icons }} - {% endif %} - {{ form_widget(form) }} - {% if input_group.append is defined and input_group.append is not empty %} - {{ input_group.append|raw|parse_icons }} - {% endif %} -
    - {% else %} - {{ form_widget(form) }} - {% endif %} -{% endspaceless %} -{% endblock form_input_group %} - -{% block form_help %} -{% spaceless %} - {% if attr.help_text is defined and attr.help_text is not empty %} - {% set help_text = attr.help_text %} - {% endif %} - {% set help_text = help_text|default('') %} - {% if help_text is not empty %} - {{ help_text|trans({}, translation_domain) }} - {% endif %} -{% endspaceless %} -{% endblock form_help %} - -{% block button_row %} -{% spaceless %} - {% set style = style|default(bootstrap_get_style()) %} - {% set col_size = col_size|default(bootstrap_get_col_size()) %} - - {% if attr.label_col is defined and attr.label_col is not empty %} - {% set label_col = attr.label_col %} - {% endif %} - {% if attr.widget_col is defined and attr.widget_col is not empty %} - {% set widget_col = attr.widget_col %} - {% endif %} - {% if attr.col_size is defined and attr.col_size is not empty %} - {% set col_size = attr.col_size %} - {% endif %} - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% set label_col = label_col|default(bootstrap_get_label_col()) %} - {% set widget_col = widget_col|default(bootstrap_get_widget_col()) %} - - {% if style == 'horizontal' %} -
    -
    - {% endif %} - - {{ form_widget(form) }} - - {% if style == 'horizontal' %} -
    -
    - {% endif %} -{% endspaceless %} -{% endblock button_row %} - -{% block hidden_row %} - {{ form_widget(form) }} -{% endblock hidden_row %} - -{% block form_actions_row %} - {{ block('button_row') }} -{% endblock %} - -{# Misc #} - -{% block form %} -{% spaceless %} - {{ form_start(form) }} - {{ form_widget(form) }} - {{ form_end(form) }} -{% endspaceless %} -{% endblock form %} - -{% block form_start %} -{% spaceless %} - {% set method = method|upper %} - {% if method in ["GET", "POST"] %} - {% set form_method = method %} - {% else %} - {% set form_method = "POST" %} - {% endif %} - - {% if style is defined %} - {% set attr = attr|merge({ 'class': (attr.class|default('') ~ ' form-' ~ style)|trim }) %} - {{ bootstrap_set_style(style) }} - {% endif %} - - {% if col_size is defined %} - {{ bootstrap_set_col_size(col_size) }} - {% endif %} - - {% if widget_col is defined %} - {{ bootstrap_set_widget_col(widget_col) }} - {% endif %} - - {% if label_col is defined %} - {{ bootstrap_set_label_col(label_col) }} - {% endif %} - - {% if simple_col is defined %} - {{ bootstrap_set_simple_col(simple_col) }} - {% endif %} - - {% if attr.role is not defined or attr.role is empty %} - {% set attr = attr|merge({ 'role': 'form' }) %} - {% endif %} - -
    - {% if form_method != method %} - - {% endif %} -{% endspaceless %} -{% endblock form_start %} - -{% block form_end %} -{% spaceless %} - {% if not render_rest is defined or render_rest %} - {{ form_rest(form) }} - {% endif %} -
    - {% if bootstrap_get_style() %} - {{ bootstrap_set_style('') }} - {% endif %} - {% if bootstrap_get_col_size() %} - {{ bootstrap_set_col_size('lg') }} - {% endif %} - {% if bootstrap_get_widget_col() %} - {{ bootstrap_set_widget_col(10) }} - {% endif %} - {% if bootstrap_get_label_col() %} - {{ bootstrap_set_label_col(2) }} - {% endif %} - {% if bootstrap_get_simple_col() %} - {{ bootstrap_set_simple_col(false) }} - {% endif %} -{% endspaceless %} -{% endblock form_end %} - -{% block form_enctype %} -{% spaceless %} - {% if multipart %}enctype="multipart/form-data"{% endif %} -{% endspaceless %} -{% endblock form_enctype %} - -{% block global_form_errors %} - {% if errors|length > 0 %} - {% set global_errors = true %} - {{ block('form_errors') }} - {% endif %} -{% endblock global_form_errors %} - -{% block form_errors %} -{% spaceless %} - {% set global_errors = global_errors|default(false) %} - {% set style = style|default(bootstrap_get_style()) %} - - {% if attr.style is defined and attr.style is not empty %} - {% set style = attr.style %} - {% endif %} - - {% if errors|length > 0 %} - {% if global_errors %} -
    - {% endif %} - - {% for error in errors %} -
  • {{ error.message|trans(error.messageParameters, translation_domain) }}
  • - {% endfor %} - - {% if global_errors == true %} -
    - {% endif %} - {% endif %} -{% endspaceless %} -{% endblock form_errors %} - -{% block form_rest %} -{% spaceless %} - {% for child in form %} - {% if not child.rendered %} - {{ form_row(child) }} - {% endif %} - {% endfor %} -{% endspaceless %} -{% endblock form_rest %} - -{# Support #} - -{% block form_rows %} -{% spaceless %} - {% for child in form %} - {% set childAttr = {} %} - {% if attr.col_size is defined %} - {% set childAttr = childAttr|merge({ 'col_size': attr.col_size }) %} - {% endif %} - {% if attr.widget_col is defined %} - {% set childAttr = childAttr|merge({ 'widget_col': attr.widget_col }) %} - {% endif %} - {% if attr.label_col is defined %} - {% set childAttr = childAttr|merge({ 'label_col': attr.label_col }) %} - {% endif %} - {% if attr.simple_col is defined %} - {% set childAttr = childAttr|merge({ 'simple_col': attr.simple_col }) %} - {% endif %} - {% if attr.style is defined %} - {% set childAttr = childAttr|merge({ 'style': attr.style }) %} - {% endif %} - {{ form_row(child, childAttr) }} - {% endfor %} -{% endspaceless %} -{% endblock form_rows %} - -{% block widget_attributes %} -{% spaceless %} - id="{{ id }}" name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %} - {% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% elseif attrname in ['input_group'] %}{% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %} -{% endspaceless %} -{% endblock widget_attributes %} - -{% block widget_container_attributes %} -{% spaceless %} - {% if attr.style is defined and (attr.style == 'inline' or attr.style == 'horizontal') %} - {% set attr = attr|merge({ 'class': 'form-'~attr.style~attr.class|default('') }) %} - {% set attr = attr|merge({ 'style': null }) %} - {% endif %} - {% if id is not empty %}id="{{ id }}" {% endif %} - {% for attrname, attrvalue in attr %}{% if attrvalue is not null %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %} -{% endspaceless %} -{% endblock widget_container_attributes %} - -{% block button_attributes %} -{% spaceless %} - id="{{ id }}" name="{{ full_name }}"{% if disabled %} disabled="disabled"{% endif %} - {% for attrname, attrvalue in attr %}{{ attrname }}="{{ attrvalue }}" {% endfor %} -{% endspaceless %} -{% endblock button_attributes %} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Menu/bootstrap.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Menu/bootstrap.html.twig deleted file mode 100644 index 0ebb3f6ce8..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Menu/bootstrap.html.twig +++ /dev/null @@ -1,186 +0,0 @@ -{% macro attributes(attributes) %} -{% for name, value in attributes %} - {%- if value is not none and value is not sameas(false) -%} - {{- ' %s="%s"'|format(name, value is sameas(true) ? name|e : value|e)|raw -}} - {%- endif -%} -{%- endfor -%} -{% endmacro %} - -{% block compressed_root %} -{% spaceless %} -{{ block('root') }} -{% endspaceless %} -{% endblock %} - -{% block root %} -{# - Twitter Bootstrap uses the CSS class "active" to indicate - the current item, so lets change that. -#} -{% set options = options|merge({'currentDepth': 0}) %} -{% if options.style is defined and options.currentClass is defined and options.currentClass == 'current' %} - {% set options = options|merge({'currentClass': 'active'}) %} - {% set options = options|merge({'ancestorClass': 'active'}) %} -{% endif %} - -{% set listAttributes = item.childrenAttributes %} -{{ block('list') -}} -{% endblock %} - -{% block list %} -{% if item.hasChildren and options.depth is not sameas(0) and item.displayChildren %} - {% set listAttributes = listAttributes|merge({'class': listAttributes.class|default('')|trim}) %} - - {% set listClass = '' %} - {% if options.style is defined and options.style == 'tabs' %} - {% set listClass = 'nav-tabs' %} - {% elseif options.style is defined and options.style == 'stacked-tabs' %} - {% set listClass = 'nav-tabs nav-stacked' %} - {% elseif options.style is defined and options.style == 'justified-tabs' %} - {% set listClass = 'nav-tabs nav-justified' %} - {% elseif options.style is defined and options.style == 'pills' %} - {% set listClass = 'nav-pills' %} - {% elseif options.style is defined and options.style == 'justified-pills' %} - {% set listClass = 'nav-pills nav-justified' %} - {% elseif options.style is defined and options.style == 'stacked-pills' %} - {% set listClass = 'nav-pills nav-stacked' %} - {% elseif options.style is defined and options.style == 'list' %} - {% set listClass = 'nav-list' %} - {% elseif options.style is defined and options.style == 'navbar' %} - {% set listClass = 'navbar-nav' %} - {% elseif options.style is defined and options.style == 'navbar-right' %} - {% set listClass = 'navbar-nav navbar-right' %} - {% endif %} - - {% if options.pull is defined and options.pull == 'right' %} - {% set listClass = (listClass|default('') ~ ' pull-right')|trim %} - {% elseif options.pull is defined and options.pull == 'left' %} - {% set listClass = (listClass|default('') ~ 'pull-left')|trim %} - {% endif %} - - {% set listClass = (item.parent is null) ? listClass ~ ' nav' : listClass %} - - {% set listAttributes = listAttributes|merge({'class': (listAttributes.class|default('') ~ ' ' ~ listClass)|trim}) %} - - - {{ block('children') }} - -{% endif %} -{% endblock %} - -{% block dropdownList %} -{% spaceless %} - {% if item.hasChildren and options.depth is not sameas(0) and ((item.extras.dropdown is not defined and item.displayChildren is sameas(true) or item.extras.dropdown is defined and item.extras.dropdown is sameas(true) and item.displayChildren is sameas(true))) %} - {% set listAttributes = listAttributes|merge({'class': (listAttributes.class|default('') ~ ' dropdown-menu')|trim}) %} - - {{ block('children') }} - - {% endif %} -{% endspaceless %} -{% endblock dropdownList %} - -{% block listList %} -{% spaceless %} - {% if item.hasChildren and options.depth is not sameas(0) and item.displayChildren %} - {{ block('children') }} - {% endif %} -{% endspaceless %} -{% endblock listList %} - -{% block children %} -{# save current variables #} -{% set currentOptions = options %} -{% set currentItem = item %} -{# update the depth for children #} -{% if options.depth is not none %} -{% set options = currentOptions|merge({'depth': currentOptions.depth - 1}) %} -{% endif %} -{% set options = options|merge({'currentDepth': options.currentDepth + 1}) %} -{% for item in currentItem.children %} - {{ block('item') }} -{% endfor %} -{# restore current variables #} -{% set item = currentItem %} -{% set options = currentOptions %} -{% endblock %} - -{% block item %} -{% if item.displayed %} -{# building the class of the item #} - {%- set classes = item.attribute('class') is not empty ? [item.attribute('class')] : [] %} - {%- if (matcher is defined and matcher.isCurrent(item)) or (item.current is defined and item.current) %} - {%- set classes = classes|merge([options.currentClass]) %} - {%- elseif (matcher is defined and matcher.isAncestor(item, options.depth)) or (item.currentAncestor is defined and item.currentAncestor) %} - {%- set classes = classes|merge([options.ancestorClass]) %} - {%- endif %} - {%- if item.actsLikeFirst %} - {%- set classes = classes|merge([options.firstClass]) %} - {%- endif %} - {%- if item.actsLikeLast %} - {%- set classes = classes|merge([options.lastClass]) %} - {%- endif %} - {%- if item.hasChildren and ((options.style is defined and options.style == 'list') or options.currentDepth is not sameas(1)) %} - {%- set classes = classes|merge(['nav-header']) %} - {%- elseif item.hasChildren and options.style is defined and options.style in ['tabs', 'justified-tabs', 'pills', 'justified-pills', 'navbar', 'navbar-right', 'navbar_justified'] and ((item.extras.dropdown is not defined and item.displayChildren is sameas(true) or item.extras.dropdown is defined and item.extras.dropdown is sameas(true) and item.displayChildren is sameas(true))) %} - {%- set classes = classes|merge(['dropdown']) %} - {%- endif %} - - {%- set attributes = item.attributes %} - - {%- if options.style is defined and options.style == 'navbar' and attributes.divider is defined and attributes.divider is not empty and options.currentDepth is sameas(1) %} - {%- set classes = classes|merge(['divider-vertical']) %} - {%- elseif attributes.divider is defined and attributes.divider is not empty %} - {%- set classes = classes|merge(['divider']) %} - {%- endif %} - - {%- if classes is not empty %} - {%- set attributes = attributes|merge({'class': classes|join(' ')}) %} - {%- endif %} -{# displaying the item #} - - {%- if attributes.divider is defined and attributes.divider is not empty %} - {%- elseif item.hasChildren and options.style is defined and options.style in ['tabs', 'justified-tabs', 'pills', 'justified-pills', 'navbar', 'navbar-right', 'navbar_justified'] and options.currentDepth is sameas(1) and ((item.extras.dropdown is not defined and item.displayChildren is sameas(true) or item.extras.dropdown is defined and item.extras.dropdown is sameas(true) and item.displayChildren is sameas(true))) %} - {{ block('dropdownElement') }} - {%- elseif item.hasChildren and options.style is defined and options.style in ['tabs', 'justified-tabs', 'pills', 'justified-pills', 'navbar', 'navbar-right', 'navbar_justified'] and options.currentDepth is sameas(1) and ((item.extras.dropdown is defined and item.extras.dropdown is sameas(false) or item.displayChildren(false) )) %} - {{ block('linkElement') }} - {%- elseif item.uri is not empty and ((matcher is defined and not matcher.isCurrent(item)) or options.currentAsLink) %} - {{ block('linkElement') }} - {%- elseif item.uri is not empty and ((item.current is defined and not item.current) or options.currentAsLink) %} - {{ block('linkElement') }} - {%- else %} - {{ block('spanElement') }} - {%- endif %} -{# render the list of children#} - {%- set childrenClasses = item.childrenAttribute('class') is not empty ? [item.childrenAttribute('class')] : [] %} - {%- set childrenClasses = childrenClasses|merge(['menu_level_' ~ item.level]) %} - {%- set listAttributes = item.childrenAttributes|merge({'class': childrenClasses|join(' ') }) %} - {%- if item.hasChildren and options.style is defined and (options.style == 'list' or options.currentDepth is not sameas(1)) %} - {{ block('listList') }} - {%- elseif item.hasChildren and options.style is defined and options.style in ['tabs', 'justified-tabs', 'pills', 'justified-pills', 'navbar', 'navbar-right', 'navbar_justified'] %} - {{ block('dropdownList') }} - {%- else %} - {{ block('list') }} - {%- endif %} - -{% endif %} -{% endblock %} - -{% block linkElement %}{{ block('label') }}{% endblock %} - -{% block dropdownElement %} -{% spaceless %} - {% set labelAttributes = item.labelAttributes %} - {% set labelAttributes = labelAttributes|merge({'class': (labelAttributes.class|default('') ~ ' dropdown-toggle')|trim}) %} - {% set labelAttributes = labelAttributes|merge({'data-toggle': 'dropdown'}) %} - {{ block('label') }} -{% endspaceless %} -{% endblock dropdownElement %} - -{% block dividerElement %} -{% spaceless %} -{% endspaceless %} -{% endblock dividerElement %} - -{% block spanElement %}{{ block('label') }}{% endblock %} - -{% block label %}{% if options.allow_safe_labels and item.getExtra('safe_label', false) %}{{ item.label|raw|parse_icons }}{% else %}{{ item.label|parse_icons }}{% endif %}{% endblock %} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Pagination/bootstrap.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Pagination/bootstrap.html.twig deleted file mode 100644 index bd6a36140c..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Pagination/bootstrap.html.twig +++ /dev/null @@ -1,62 +0,0 @@ -{% set class = class|default('') %} - -{% if pageCount > 1 %} - {% if style is defined and style == 'pager' %} - - {% set prev_label = prev_label|default('Previous') %} - {% set next_label = next_label|default('Next') %} - {% set aligned = aligned|default(false) %} - -
      - {% if previous is defined %} - {{ prev_label|raw }} - {% else %} -
    • {{ prev_label|raw }}
    • - {% endif %} - {% if next is defined %} - {{ next_label|raw }} - {% else %} -
    • {{ next_label|raw }}
    • - {% endif %} -
    - {% else %} - - {% set prev_label = prev_label|default('«') %} - {% set next_label = next_label|default('»') %} - -
      - {% if first_label is defined and first is defined and current != first %} -
    • {{ first_label|raw }}
    • - {% elseif last_label is defined %} -
    • {{ first_label|raw }}
    • - {% endif %} - - {% if previous is defined %} -
    • {{ prev_label|raw }}
    • - {% else %} -
    • {{ prev_label|raw }}
    • - {% endif %} - - {% for page in pagesInRange %} - {% if page != current %} -
    • {{ page }}
    • - {% else %} -
    • {{ page }}
    • - {% endif %} - - {% endfor %} - - {% if next is defined %} -
    • {{ next_label|raw }}
    • - {% else %} -
    • {{ next_label|raw }}
    • - {% endif %} - - {% if last_label is defined and last is defined and current != last %} -
    • {{ last_label|raw }}
    • - {% elseif last_label is defined %} -
    • {{ last_label|raw }}
    • - {% endif %} -
    - {% endif %} -{% endif %} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/flash.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/flash.html.twig deleted file mode 100644 index ddc5072115..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/flash.html.twig +++ /dev/null @@ -1,34 +0,0 @@ -{% if translation_domain is not defined %} - {% set translation_domain = null %} -{% endif %} -{% if close is not defined %} - {% set close = false %} -{% endif %} - -{% for flashMessage in app.session.flashbag.get('alert') %} -
    - {% if close %}{% endif %} - {{ flashMessage|trans({}, translation_domain) }} -
    -{% endfor %} - -{% for flashMessage in app.session.flashbag.get('error') %} -
    - {% if close %}{% endif %} - {{ flashMessage|trans({}, translation_domain) }} -
    -{% endfor %} - -{% for flashMessage in app.session.flashbag.get('info') %} -
    - {% if close %}{% endif %} - {{ flashMessage|trans({}, translation_domain) }} -
    -{% endfor %} - -{% for flashMessage in app.session.flashbag.get('success') %} -
    - {% if close %}{% endif %} - {{ flashMessage|trans({}, translation_domain) }} -
    -{% endfor %} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/ie8-support.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/ie8-support.html.twig deleted file mode 100644 index c941a4e362..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/ie8-support.html.twig +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/layout.html.twig b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/layout.html.twig deleted file mode 100644 index e1cccd54f8..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/layout.html.twig +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -{% block title %}BraincraftedBootstrapBundle by Florian Eckerstorfer{% endblock title %} - - - - - - - - - -{% block body %}{% endblock body %} - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Session/FlashMessage.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Session/FlashMessage.php deleted file mode 100644 index 98e680b3e0..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Session/FlashMessage.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class FlashMessage -{ - /** @var SessionInterface */ - private $session; - - /** - * Constructor. - * - * @param SessionInterface $session The session - */ - public function __construct(SessionInterface $session) - { - $this->session = $session; - } - - /** - * Sets an alert message. - * - * @param string $message The message - * - * @return void - */ - public function alert($message) - { - $this->session->getFlashBag()->add('alert', $message); - } - - /** - * Sets an error message. - * - * @param string $message The message - * - * @return void - */ - public function error($message) - { - $this->session->getFlashBag()->add('error', $message); - } - - /** - * Sets an info message. - * - * @param string $message The message - * - * @return void - */ - public function info($message) - { - $this->session->getFlashBag()->add('info', $message); - } - - /** - * Sets a success message. - * - * @param string $message The message - * - * @return void - */ - public function success($message) - { - $this->session->getFlashBag()->add('success', $message); - } - - /** - * Resets the flash bag. - * - * @return void - */ - public function reset() - { - $this->session->getFlashBag()->clear(); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/GenerateCommandTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/GenerateCommandTest.php deleted file mode 100644 index 8d8213c2b2..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/GenerateCommandTest.php +++ /dev/null @@ -1,130 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com BraincraftedBootstrapBundle - * @group unit - */ -class GenerateCommandTest extends \PHPUnit_Framework_TestCase -{ - public function setUp() - { - $this->twig = m::mock('\Twig_Environment'); - - $this->container = m::mock('Symfony\Component\DependencyInjection\ContainerInterface'); - $this->container->shouldReceive('get')->with('twig')->andReturn($this->twig); - - $this->kernel = m::mock('Symfony\Component\HttpKernel\KernelInterface'); - $this->kernel->shouldReceive('getName')->andReturn('app'); - $this->kernel->shouldReceive('getEnvironment')->andReturn('prod'); - $this->kernel->shouldReceive('isDebug')->andReturn(false); - $this->kernel->shouldReceive('getContainer')->andReturn($this->container); - } - - public function tearDown() - { - if (true === file_exists(sprintf('%s/bootstrap.less', __DIR__))) { - unlink(sprintf('%s/bootstrap.less', __DIR__)); - } - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\GenerateCommand::execute() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\GenerateCommand::executeGenerateBootstrap() - */ - public function testExecute() - { - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.customize') - ->andReturn(array( - 'variables_file' => __DIR__.'/x/variables.less', - 'bootstrap_output' => __DIR__.'/bootstrap.less', - 'bootstrap_template' => __DIR__.'/bootstrap.html.twig' - )); - $this->container->shouldReceive('getParameter')->with('braincrafted_bootstrap.less_filter')->andReturn('less'); - $this->container->shouldReceive('getParameter')->with('braincrafted_bootstrap.assets_dir')->andReturn(__DIR__); - - $this->twig - ->shouldReceive('render') - ->with(__DIR__.'/bootstrap.html.twig', array( - 'variables_file' => './x/variables.less', - 'assets_dir' => '' - )); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new GenerateCommand()); - - $command = $application->find('braincrafted:bootstrap:generate'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/Found custom variables file/', $commandTester->getDisplay()); - $this->assertRegExp('/bootstrap\.less/', $commandTester->getDisplay()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\GenerateCommand::execute() - */ - public function testExecuteNoVariablesFile() - { - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.customize') - ->andReturn(array('variables_file' => null)); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new GenerateCommand()); - - $command = $application->find('braincrafted:bootstrap:generate'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/Found no custom variables\.less file/', $commandTester->getDisplay()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\GenerateCommand::execute() - */ - public function testExecuteNoLessFilter() - { - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.customize') - ->andReturn(array('variables_file' => __DIR__.'/x/variables.less')); - $this->container->shouldReceive('getParameter')->with('braincrafted_bootstrap.less_filter')->andReturn('none'); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new GenerateCommand()); - - $command = $application->find('braincrafted:bootstrap:generate'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/configured with "less" or "lessphp"/', $commandTester->getDisplay()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/InstallCommandTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/InstallCommandTest.php deleted file mode 100644 index 13b49f5876..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/InstallCommandTest.php +++ /dev/null @@ -1,138 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com BraincraftedBootstrapBundle - * @group unit - */ -class InstallCommandTest extends \PHPUnit_Framework_TestCase -{ - public function setUp() - { - $this->container = m::mock('Symfony\Component\DependencyInjection\ContainerInterface'); - - $this->kernel = m::mock('Symfony\Component\HttpKernel\KernelInterface'); - $this->kernel->shouldReceive('getName')->andReturn('app'); - $this->kernel->shouldReceive('getEnvironment')->andReturn('prod'); - $this->kernel->shouldReceive('isDebug')->andReturn(false); - $this->kernel->shouldReceive('getContainer')->andReturn($this->container); - } - - public function tearDown() - { - $file = sprintf('%s/fixtures/web/fonts/font1.txt', __DIR__); - if (true === file_exists($file)) { - unlink($file); - } - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::execute() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getSrcDir() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getDestDir() - */ - public function testExecute() - { - $this->container - ->shouldReceive('getParameter') - ->with('kernel.root_dir') - ->andReturn(__DIR__.'/fixtures/app'); - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.assets_dir') - ->andReturn(__DIR__.'/fixtures/vendor/twbs/bootstrap'); - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.output_dir') - ->andReturn(''); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new InstallCommand()); - - $command = $application->find('braincrafted:bootstrap:install'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/Copied Glyphicon fonts/', $commandTester->getDisplay()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::execute() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getSrcDir() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getDestDir() - */ - public function testExecuteSrcNotExists() - { - $this->container - ->shouldReceive('getParameter') - ->with('kernel.root_dir') - ->andReturn(__DIR__.'/fixtures/app'); - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.assets_dir') - ->andReturn(__DIR__.'/invalid'); - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.output_dir') - ->andReturn(''); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new InstallCommand()); - - $command = $application->find('braincrafted:bootstrap:install'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/does not exist/', $commandTester->getDisplay()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::execute() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getSrcDir() - * @covers Braincrafted\Bundle\BootstrapBundle\Command\InstallCommand::getDestDir() - */ - public function testExecuteInvalidDestDirectory() - { - $this->container - ->shouldReceive('getParameter') - ->with('kernel.root_dir') - ->andReturn('/'); - $this->container - ->shouldReceive('getParameter') - ->with('braincrafted_bootstrap.output_dir') - ->andReturn(''); - - // mock the Kernel or create one depending on your needs - $application = new Application($this->kernel); - $application->add(new InstallCommand()); - - $command = $application->find('braincrafted:bootstrap:install'); - $commandTester = new CommandTester($command); - $commandTester->execute(array('command' => $command->getName())); - - $this->assertRegExp('/Could not create directory/', $commandTester->getDisplay()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/app/.gitkeep b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/app/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/vendor/twbs/bootstrap/fonts/font1.txt b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/vendor/twbs/bootstrap/fonts/font1.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/web/fonts/.gitkeep b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Command/fixtures/web/fonts/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/AsseticConfigurationTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/AsseticConfigurationTest.php deleted file mode 100644 index caed86f872..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/AsseticConfigurationTest.php +++ /dev/null @@ -1,54 +0,0 @@ -asseticConfig = new AsseticConfiguration; - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::build() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildCssWithLess() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildJs() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildJquery() - */ - public function testBuild() - { - $this->asseticConfig->build(array( - 'less_filter' => 'less', - 'assets_dir' => './assets', - 'output_dir' => './web', - 'jquery_path' => './assets/jquery.js', - 'customize' => array( - 'variables_file' => './assets/variables.less', - 'bootstrap_output' => './assets/bootstrap.less' - ) - )); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::build() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildCssWithoutLess() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildJs() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\AsseticConfiguration::buildJquery() - */ - public function testBuildWithoutLess() - { - $this->asseticConfig->build(array( - 'less_filter' => 'none', - 'assets_dir' => './assets', - 'output_dir' => './web', - 'jquery_path' => './assets/jquery.js' - )); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/BraincraftedBootstrapExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/BraincraftedBootstrapExtensionTest.php deleted file mode 100644 index 0776419fc2..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/DependencyInjection/BraincraftedBootstrapExtensionTest.php +++ /dev/null @@ -1,69 +0,0 @@ -extension = new BraincraftedBootstrapExtension; - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::load() - */ - public function testLoad() - { - $bag = m::mock('Symfony\Component\DependencyInjection\ParameterBag\ParameterBag'); - $bag->shouldReceive('add'); - - $container = m::mock('Symfony\Component\DependencyInjection\ContainerBuilder'); - $container->shouldReceive('hasExtension')->andReturn(false); - $container->shouldReceive('addResource'); - $container->shouldReceive('getParameterBag')->andReturn($bag); - $container->shouldReceive('setDefinition'); - $container->shouldReceive('setParameter'); - - $this->extension->load(array(), $container); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::prepend() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::configureAsseticBundle() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::configureTwigBundle() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::configureKnpMenuBundle() - * @covers Braincrafted\Bundle\BootstrapBundle\DependencyInjection\BraincraftedBootstrapExtension::configureKnpPaginatorBundle() - */ - public function testPrepend() - { - $bundles = array( - 'AsseticBundle' => '', - 'TwigBundle' => '', - 'KnpMenuBundle' => '', - 'KnpPaginatorBundle' => '' - ); - - $extensions = array( - 'assetic' => array(), - 'twig' => array(), - 'knp_menu' => array(), - 'knp_paginator' => array() - ); - $container = m::mock('Symfony\Component\DependencyInjection\ContainerBuilder'); - $container->shouldReceive('getParameter')->with('kernel.bundles')->andReturn($bundles); - $container->shouldReceive('getExtensions')->andReturn($extensions); - $container->shouldReceive('getExtensionConfig')->andReturn(array()); - $container->shouldReceive('prependExtensionConfig'); - - $this->extension->prepend($container); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Extension/TypeSetterExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Extension/TypeSetterExtensionTest.php deleted file mode 100644 index e8a020df96..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Extension/TypeSetterExtensionTest.php +++ /dev/null @@ -1,47 +0,0 @@ -extension = new TypeSetterExtension; - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Extension\TypeSetterExtension::buildView() - */ - public function testBuildView() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $type = m::mock('Symfony\Component\Form\ResolvedFormTypeInterface'); - $type->shouldReceive('getName')->andReturn('type'); - $config = m::mock('Symfony\Component\Form\FormConfigInterface'); - $config->shouldReceive('getType')->andReturn($type); - $form = m::mock('Symfony\Component\Form\FormInterface'); - $form->shouldReceive('getConfig')->andReturn($config); - - $this->extension->buildView($view, $form, array()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Extension\TypeSetterExtension::getExtendedType() - */ - public function testGetExtendedType() - { - $this->assertEquals('form', $this->extension->getExtendedType()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/BootstrapCollectionTypeTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/BootstrapCollectionTypeTest.php deleted file mode 100644 index a66d929b7d..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/BootstrapCollectionTypeTest.php +++ /dev/null @@ -1,79 +0,0 @@ -type = new BootstrapCollectionType; - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\BootstrapCollectionType::buildView() - */ - public function testBuildView() - { - $view = m::mock('Symfony\Component\Form\FormView'); - - $prototype = m::mock('Symfony\Component\Form\FormInterface'); - $prototype->shouldReceive('createView')->with($view); - - $config = m::mock('Symfony\Component\Form\FormConfigInterface'); - $config->shouldReceive('hasAttribute')->andReturn(true); - $config->shouldReceive('getAttribute')->andReturn($prototype); - - $form = m::mock('Symfony\Component\Form\FormInterface'); - $form->shouldReceive('getConfig')->andReturn($config); - - $this->type->buildView($view, $form, array( - 'allow_add' => true, - 'allow_delete' => false, - 'add_button_text' => 'Add', - 'delete_button_text' => 'Delete', - 'sub_widget_col' => 2, - 'button_col' => 2, - 'prototype_name' => '___name___' - )); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\BootstrapCollectionType::setDefaultOptions() - */ - public function testSetDefaultOptions() - { - $resolver = m::mock('Symfony\Component\OptionsResolver\OptionsResolverInterface'); - $resolver->shouldReceive('setDefaults'); - $resolver->shouldReceive('setNormalizers'); - - $this->type->setDefaultOptions($resolver); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\BootstrapCollectionType::getParent() - */ - public function testGetParent() - { - $this->assertEquals('collection', $this->type->getParent()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\BootstrapCollectionType::getName() - */ - public function testGetName() - { - $this->assertEquals('bootstrap_collection', $this->type->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/FormActionsTypeTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/FormActionsTypeTest.php deleted file mode 100644 index 9103b8d965..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/FormActionsTypeTest.php +++ /dev/null @@ -1,112 +0,0 @@ -type = new FormActionsType(); - } - - public function testBuildForm() - { - $builder = m::mock('Symfony\Component\Form\FormBuilderInterface'); - - $input = array( - 'buttons' => array( - 'save' => array('type' => 'submit', 'options' => array('label' => 'button.save')), - 'cancel' => array('type' => 'button', 'options' => array('label' => 'button.cancel')), - ) - ); - - $buttonBuilder = new ButtonBuilder('name'); - $builder->shouldReceive('add') - ->with(m::anyOf('save', 'cancel'), m::anyOf('submit', 'button'), m::hasKey('label')) - ->twice() - ->andReturn($buttonBuilder); - - $this->type = new FormActionsType(); - $this->type->buildForm($builder, $input); - } - - public function testBuildView() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $form = m::mock('Symfony\Component\Form\FormInterface'); - $button = m::mock('Symfony\Component\Form\Button'); - $options = array(); - - $buttons = array( - $button, - $button - ); - - $form->shouldReceive('count')->andReturn(2)->once(); - $form->shouldReceive('all')->andReturn($buttons)->once(); - - $this->type = new FormActionsType(); - $this->type->buildView($view, $form, $options); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testBuildViewWithBadField() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $form = m::mock('Symfony\Component\Form\FormInterface'); - $button = m::mock('Symfony\Component\Form\Button'); - $input = m::mock('Symfony\Component\Form\FormInterface'); - $options = array(); - - $buttons = array( - $button, - $button, - $input - ); - - $form->shouldReceive('count')->andReturn(2)->once(); - $form->shouldReceive('all')->andReturn($buttons)->once(); - - $this->type = new FormActionsType(); - $this->type->buildView($view, $form, $options); - } - - public function testSetDefaultOptions() - { - - $defaults = array( - 'buttons' => array(), - 'options' => array(), - 'mapped' => false, - ); - - $resolver = m::mock('Symfony\Component\OptionsResolver\OptionsResolverInterface'); - $resolver->shouldReceive('setDefaults')->with($defaults)->once(); - - $this->type->setDefaultOptions($resolver); - } - - public function testGetName() - { - $this->assertEquals('form_actions', $this->type->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/MoneyTypeTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/MoneyTypeTest.php deleted file mode 100644 index b3f57d9e7b..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Form/Type/MoneyTypeTest.php +++ /dev/null @@ -1,72 +0,0 @@ -type = new MoneyType; - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::buildView() - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::getPattern() - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::parsePatternMatches() - */ - public function testBuildViewLeftSide() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $form = m::mock('Symfony\Component\Form\FormInterface'); - - $this->type->buildView($view, $form, array('currency' => 'EUR')); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::buildView() - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::getPattern() - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::parsePatternMatches() - */ - public function testBuildViewRightSide() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $form = m::mock('Symfony\Component\Form\FormInterface'); - - $default = \Locale::getDefault(); - \Locale::setDefault('fr-CA'); - $this->type->buildView($view, $form, array('currency' => 'EUR')); - \Locale::setDefault($default); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::buildView() - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::getPattern() - */ - public function testGetPatternEmpty() - { - $view = m::mock('Symfony\Component\Form\FormView'); - $form = m::mock('Symfony\Component\Form\FormInterface'); - - $this->type->buildView($view, $form, array('currency' => null)); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Form\Type\MoneyType::getName() - */ - public function testGetName() - { - $this->assertEquals('money', $this->type->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Session/FlashMessageTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Session/FlashMessageTest.php deleted file mode 100644 index 0e9c21ace3..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Session/FlashMessageTest.php +++ /dev/null @@ -1,101 +0,0 @@ -flashBag = m::mock('Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface'); - $this->session = m::mock('Symfony\Component\HttpFoundation\Session\SessionInterface'); - $this->session - ->shouldReceive('getFlashBag') - ->withNoArgs() - ->atLeast()->once() - ->andReturn($this->flashBag); - - $this->flash = new FlashMessage($this->session); - } - - /** - * Tests the alert() method. - * - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::__construct() - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::alert() - */ - public function testAlert() - { - $this->flashBag - ->shouldReceive('add') - ->with('alert', 'Foobar Alert') - ->once(); - - $this->flash->alert('Foobar Alert'); - } - - /** - * Tests the error() method. - * - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::__construct() - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::error() - */ - public function testError() - { - $this->flashBag - ->shouldReceive('add') - ->with('error', 'Foobar Error') - ->once(); - - $this->flash->error('Foobar Error'); - } - - /** - * Tests the info() method. - * - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::__construct() - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::info() - */ - public function testInfo() - { - $this->flashBag - ->shouldReceive('add') - ->with('info', 'Foobar Info') - ->once(); - - $this->flash->info('Foobar Info'); - } - - /** - * Tests the success() method. - * - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::__construct() - * @covers Braincrafted\Bundle\BootstrapBundle\Session\FlashMessage::success() - */ - public function testSuccess() - { - $this->flashBag - ->shouldReceive('add') - ->with('success', 'Foobar Success') - ->once(); - - $this->flash->success('Foobar Success'); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapBadgeExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapBadgeExtensionTest.php deleted file mode 100644 index 689408c3e1..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapBadgeExtensionTest.php +++ /dev/null @@ -1,69 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - * @group unit - */ -class BootstrapBadgeExtensionTest extends \PHPUnit_Framework_TestCase -{ - /** @var BootstrapBadgeExtension */ - private $extension; - - /** - * Set up - */ - public function setUp() - { - $this->extension = new BootstrapBadgeExtension(); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapBadgeExtension::getFunctions() - */ - public function testGetFunctions() - { - $this->assertCount(1, $this->extension->getFunctions()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapBadgeExtension::badgeFunction - */ - public function testBadgeFunction() - { - $this->assertEquals( - 'Hello World', - $this->extension->badgeFunction('Hello World'), - '->badgeFunction() returns the HTML code for the given badge.' - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapBadgeExtension::getName() - */ - public function testGetName() - { - $this->assertEquals('braincrafted_bootstrap_badge', $this->extension->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapFormExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapFormExtensionTest.php deleted file mode 100644 index 2318cec3f1..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapFormExtensionTest.php +++ /dev/null @@ -1,107 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - * @group unit - */ -class BootstrapFormExtensionTest extends \PHPUnit_Framework_TestCase -{ - /** @var BootstrapFormExtension */ - private $extension; - - /** - * Set up - */ - public function setUp() - { - $this->extension = new BootstrapFormExtension(); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getFunctions() - */ - public function testGetFunctions() - { - $this->assertCount(13, $this->extension->getFunctions()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::setStyle() - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getStyle() - */ - public function testSetStyleGetStyle() - { - $this->extension->setStyle('inline'); - $this->assertEquals('inline', $this->extension->getStyle()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::setColSize() - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getColSize() - */ - public function testSetColSizeGetColSize() - { - $this->extension->setColSize('sm'); - $this->assertEquals('sm', $this->extension->getColSize()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::setWidgetCol() - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getWidgetCol() - */ - public function testSetWidgetColGetWidgetCol() - { - $this->extension->setWidgetCol(5); - $this->assertEquals(5, $this->extension->getWidgetCol()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::setLabelCol() - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getLabelCol() - */ - public function testSetLabelColGetLabelCol() - { - $this->extension->setLabelCol(4); - $this->assertEquals(4, $this->extension->getLabelCol()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::setSimpleCol() - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getSimpleCol() - */ - public function testSetSimpleColGetSimpleCol() - { - $this->extension->setSimpleCol(8); - $this->assertEquals(8, $this->extension->getSimpleCol()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapFormExtension::getName() - */ - public function testGetName() - { - $this->assertEquals('braincrafted_bootstrap_form', $this->extension->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapIconExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapIconExtensionTest.php deleted file mode 100644 index 645e1c264c..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapIconExtensionTest.php +++ /dev/null @@ -1,89 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - * @group unit - */ -class BootstrapIconExtensionTest extends \PHPUnit_Framework_TestCase -{ - /** @var BootstrapIconExtension */ - private $extension; - - /** - * Set up - */ - public function setUp() - { - $this->extension = new BootstrapIconExtension(); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension::getFilters() - */ - public function testGetFilters() - { - $this->assertCount(1, $this->extension->getFilters()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension::getFunctions() - */ - public function testGetFunctions() - { - $this->assertCount(1, $this->extension->getFunctions()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension::iconFunction - */ - public function testIconFilter() - { - $this->assertEquals( - '', - $this->extension->iconFunction('heart'), - '->iconFunction() returns the HTML code for the given icon.' - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension::parseIconsFilter - */ - public function testParseIconsFilter() - { - $this->assertEquals( - ' foobar', - $this->extension->parseIconsFilter('.icon-heart foobar'), - '->parseIconsFilter() returns the HTML code with the replaced icons.' - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapIconExtension::getName() - */ - public function testGetName() - { - $this->assertEquals('braincrafted_bootstrap_icon', $this->extension->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapLabelExtensionTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapLabelExtensionTest.php deleted file mode 100644 index 7fd6a81dc7..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Twig/BootstrapLabelExtensionTest.php +++ /dev/null @@ -1,129 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - * @group unit - */ -class BootstrapLabelExtensionTest extends \PHPUnit_Framework_TestCase -{ - /** @var BootstrapLabelExtension */ - private $extension; - - /** - * @return void - */ - public function setUp() - { - $this->extension = new BootstrapLabelExtension(); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::getFunctions() - */ - public function testGetFunctions() - { - $this->assertCount(6, $this->extension->getFunctions()); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelFunction - */ - public function testLabelFunction() - { - $this->assertEquals( - 'Hello World', - $this->extension->labelFunction('Hello World'), - '->labelFunction() returns the HTML code for the given label.' - ); - $this->assertEquals( - 'Hello World', - $this->extension->labelFunction('Hello World', 'success'), - '->labelFunction() returns the HTML code for the given success label.' - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelSuccessFunction - */ - public function testLabelSuccessFunction() - { - $this->assertEquals( - 'Foobar', - $this->extension->labelSuccessFunction('Foobar') - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelWarningFunction - */ - public function testLabelWarningFunction() - { - $this->assertEquals( - 'Foobar', - $this->extension->labelWarningFunction('Foobar') - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelDangerFunction - */ - public function testLabelDangerFunction() - { - $this->assertEquals( - 'Foobar', - $this->extension->labelDangerFunction('Foobar') - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelInfoFunction - */ - public function testLabelInfoFunction() - { - $this->assertEquals( - 'Foobar', - $this->extension->labelInfoFunction('Foobar') - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::labelPrimaryFunction - */ - public function testLabelPrimaryFunction() - { - $this->assertEquals( - 'Foobar', - $this->extension->labelPrimaryFunction('Foobar') - ); - } - - /** - * @covers Braincrafted\Bundle\BootstrapBundle\Twig\BootstrapLabelExtension::getName() - */ - public function testGetName() - { - $this->assertEquals('braincrafted_bootstrap_label', $this->extension->getName()); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Util/PathUtilTest.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Util/PathUtilTest.php deleted file mode 100644 index 704a7bfee0..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Tests/Util/PathUtilTest.php +++ /dev/null @@ -1,46 +0,0 @@ -util = new PathUtil; - } - - /** - * @param $expected string - * @param $from string - * @param $to string - * - * @covers Braincrafted\Bundle\BootstrapBundle\Util\PathUtil::getRelativePath() - * @dataProvider relativePathProvider - */ - public function testGetRelativePath($expected, $from, $to) - { - $this->assertEquals($expected, $this->util->getRelativePath($from, $to)); - } - - /** - * @return array - */ - public function relativePathProvider() - { - return array( - array('', '/var/user', '/var/user'), - array('./foo/a.php', '/var/user/a.php', '/var/user/foo/a.php'), - array('../bar/a.php', '/var/user/foo/a.php', '/var/user/bar/a.php') - ); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapBadgeExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapBadgeExtension.php deleted file mode 100644 index 2585198a36..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapBadgeExtension.php +++ /dev/null @@ -1,59 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BootstrapBadgeExtension extends Twig_Extension -{ - /** - * {@inheritDoc} - */ - public function getFunctions() - { - return array( - 'badge' => new Twig_Function_Method( - $this, - 'badgeFunction', - array('pre_escape' => 'html', 'is_safe' => array('html')) - ) - ); - } - - /** - * Returns the HTML code for a badge. - * - * @param string $text The text of the badge - * - * @return string The HTML code of the badge - */ - public function badgeFunction($text) - { - return sprintf('%s', $text); - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'braincrafted_bootstrap_badge'; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapFormExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapFormExtension.php deleted file mode 100644 index af4603448d..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapFormExtension.php +++ /dev/null @@ -1,174 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BootstrapFormExtension extends \Twig_Extension -{ - /** @var string */ - private $style; - - /** @var string */ - private $colSize = 'lg'; - - /** @var integer */ - private $widgetCol = 10; - - /** @var integer */ - private $labelCol = 2; - - /** @var integer */ - private $simpleCol = false; - - /** - * {@inheritdoc} - */ - public function getFunctions() - { - return array( - new \Twig_SimpleFunction('bootstrap_set_style', array($this, 'setStyle')), - new \Twig_SimpleFunction('bootstrap_get_style', array($this, 'getStyle')), - new \Twig_SimpleFunction('bootstrap_set_col_size', array($this, 'setColSize')), - new \Twig_SimpleFunction('bootstrap_get_col_size', array($this, 'getColSize')), - new \Twig_SimpleFunction('bootstrap_set_widget_col', array($this, 'setWidgetCol')), - new \Twig_SimpleFunction('bootstrap_get_widget_col', array($this, 'getWidgetCol')), - new \Twig_SimpleFunction('bootstrap_set_label_col', array($this, 'setLabelCol')), - new \Twig_SimpleFunction('bootstrap_get_label_col', array($this, 'getLabelCol')), - new \Twig_SimpleFunction('bootstrap_set_simple_col', array($this, 'setSimpleCol')), - new \Twig_SimpleFunction('bootstrap_get_simple_col', array($this, 'getSimpleCol')), - 'checkbox_row' => new \Twig_Function_Node( - 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', - array('is_safe' => array('html')) - ), - 'radio_row' => new \Twig_Function_Node( - 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', - array('is_safe' => array('html')) - ), - 'global_form_errors' => new \Twig_Function_Node( - 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', - array('is_safe' => array('html')) - ) - ); - } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'braincrafted_bootstrap_form'; - } - - /** - * Sets the style. - * - * @param string $style Name of the style - */ - public function setStyle($style) - { - $this->style = $style; - } - - /** - * Returns the style. - * - * @return string Name of the style - */ - public function getStyle() - { - return $this->style; - } - - /** - * Sets the column size. - * - * @param string $colSize Column size (xs, sm, md or lg) - */ - public function setColSize($colSize) - { - $this->colSize = $colSize; - } - - /** - * Returns the column size. - * - * @return string Column size (xs, sm, md or lg) - */ - public function getColSize() - { - return $this->colSize; - } - - /** - * Sets the number of columns of widgets. - * - * @param integer $widgetCol Number of columns. - */ - public function setWidgetCol($widgetCol) - { - $this->widgetCol = $widgetCol; - } - - /** - * Returns the number of columns of widgets. - * - * @return integer Number of columns. - */ - public function getWidgetCol() - { - return $this->widgetCol; - } - - /** - * Sets the number of columns of labels. - * - * @param integer $labelCol Number of columns. - */ - public function setLabelCol($labelCol) - { - $this->labelCol = $labelCol; - } - - /** - * Returns the number of columns of labels. - * - * @return integer Number of columns. - */ - public function getLabelCol() - { - return $this->labelCol; - } - - /** - * Sets the number of columns of simple widgets. - * - * @param integer $simpleCol Number of columns. - */ - public function setSimpleCol($simpleCol) - { - $this->simpleCol = $simpleCol; - } - - /** - * Returns the number of columns of simple widgets. - * - * @return integer Number of columns. - */ - public function getSimpleCol() - { - return $this->simpleCol; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapIconExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapIconExtension.php deleted file mode 100644 index 4b4a810bb9..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapIconExtension.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BootstrapIconExtension extends Twig_Extension -{ - /** - * {@inheritDoc} - */ - public function getFilters() - { - return array( - 'parse_icons' => new Twig_Filter_Method( - $this, - 'parseIconsFilter', - array('pre_escape' => 'html', 'is_safe' => array('html')) - ) - ); - } - - /** - * {@inheritDoc} - */ - public function getFunctions() - { - return array( - 'icon' => new Twig_Function_Method( - $this, - 'iconFunction', - array('pre_escape' => 'html', 'is_safe' => array('html')) - ) - ); - } - - /** - * Parses the given string and replaces all occurrences of .icon-[name] with the corresponding icon. - * - * @param string $text The text to parse - * - * @return string The HTML code with the icons - */ - public function parseIconsFilter($text) - { - $that = $this; - return preg_replace_callback( - '/\.icon-([a-z0-9-]+)/', - function ($matches) use ($that) { - return $that->iconFunction($matches[1]); - }, - $text - ); - } - - /** - * Returns the HTML code for the given icon. - * - * @param string $icon The name of the icon - * - * @return string The HTML code for the icon - */ - public function iconFunction($icon) - { - return sprintf('', $icon); - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'braincrafted_bootstrap_icon'; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapLabelExtension.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapLabelExtension.php deleted file mode 100644 index 23e3a28f78..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Twig/BootstrapLabelExtension.php +++ /dev/null @@ -1,121 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class BootstrapLabelExtension extends Twig_Extension -{ - /** - * {@inheritDoc} - */ - public function getFunctions() - { - $options = array('pre_escape' => 'html', 'is_safe' => array('html')); - - return array( - 'label' => new Twig_Function_Method($this, 'labelFunction', $options), - 'label_primary' => new Twig_Function_Method($this, 'labelPrimaryFunction', $options), - 'label_success' => new Twig_Function_Method($this, 'labelSuccessFunction', $options), - 'label_info' => new Twig_Function_Method($this, 'labelInfoFunction', $options), - 'label_warning' => new Twig_Function_Method($this, 'labelWarningFunction', $options), - 'label_danger' => new Twig_Function_Method($this, 'labelDangerFunction', $options) - ); - } - - /** - * Returns the HTML code for a label. - * - * @param string $text The text of the label - * @param string $type The type of label - * - * @return string The HTML code of the label - */ - public function labelFunction($text, $type = 'default') - { - return sprintf('%s', ($type ? ' label-' . $type : ''), $text); - } - - /** - * @param string $text - * - * @return string - */ - public function labelPrimaryFunction($text) - { - return $this->labelFunction($text, 'primary'); - } - - /** - * Returns the HTML code for a success label. - * - * @param string $text The text of the label - * - * @return string The HTML code of the label - */ - public function labelSuccessFunction($text) - { - return $this->labelFunction($text, 'success'); - } - - /** - * Returns the HTML code for a warning label. - * - * @param string $text The text of the label - * - * @return string The HTML code of the label - */ - public function labelWarningFunction($text) - { - return $this->labelFunction($text, 'warning'); - } - - /** - * Returns the HTML code for a important label. - * - * @param string $text The text of the label - * - * @return string The HTML code of the label - */ - public function labelDangerFunction($text) - { - return $this->labelFunction($text, 'danger'); - } - - /** - * Returns the HTML code for a info label. - * - * @param string $text The text of the label - * - * @return string The HTML code of the label - */ - public function labelInfoFunction($text) - { - return $this->labelFunction($text, 'info'); - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'braincrafted_bootstrap_label'; - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Util/PathUtil.php b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Util/PathUtil.php deleted file mode 100644 index 2099127680..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Util/PathUtil.php +++ /dev/null @@ -1,64 +0,0 @@ - - * @copyright 2012-2013 Florian Eckerstorfer - * @license http://opensource.org/licenses/MIT The MIT License - * @link http://bootstrap.braincrafted.com Bootstrap for Symfony2 - */ -class PathUtil -{ - /** - * Returns the relative path $from to $to. - * - * @param string $from - * @param string $to - * - * @return string - * - * @link http://stackoverflow.com/a/2638272/776654 - */ - public function getRelativePath($from, $to) - { - // some compatibility fixes for Windows paths - $from = is_dir($from) ? rtrim($from, '\/') . '/' : $from; - $to = is_dir($to) ? rtrim($to, '\/') . '/' : $to; - $from = str_replace('\\', '/', $from); - $to = str_replace('\\', '/', $to); - - $from = explode('/', $from); - $to = explode('/', $to); - $relPath = $to; - - foreach ($from as $depth => $dir) { - // find first non-matching dir - if ($dir === $to[$depth]) { - // ignore this directory - array_shift($relPath); - } else { - // get number of remaining dirs to $from - $remaining = count($from) - $depth; - if ($remaining > 1) { - // add traversals up to first matching dir - $padLength = (count($relPath) + $remaining - 1) * -1; - $relPath = array_pad($relPath, $padLength, '..'); - break; - } else { - $relPath[0] = './' . $relPath[0]; - } - } - } - return implode('/', $relPath); - } -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/composer.json b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/composer.json deleted file mode 100644 index 24938b0268..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/composer.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "braincrafted/bootstrap-bundle", - "description": "BraincraftedBootstrapBundle integrates Bootstrap into Symfony2 by providing templates, Twig extensions, services and commands.", - "keywords": ["bootstrap"], - "type": "symfony-bundle", - "license": "MIT", - "authors": [ - { - "name": "Florian Eckerstorfer", - "email": "florian@eckerstorfer.co", - "homepage": "http://florian.ec" - } - ], - "require": { - "php": ">=5.3.3", - "symfony/framework-bundle": "~2.3", - "symfony/twig-bundle": "~2.3", - "symfony/form": "~2.3", - "symfony/console": "~2.3", - "symfony/finder": "~2.3" - }, - "require-dev": { - "symfony/assetic-bundle": "~2.3", - "knplabs/knp-menu": "~2.0@alpha", - "knplabs/knp-menu-bundle": "~2.0@alpha", - "knplabs/knp-paginator-bundle": "dev-master", - "phpunit/phpunit": "3.7.*", - "mockery/mockery": "0.8.*" - }, - "suggest": { - "knplabs/knp-paginator-bundle": "BraincraftedBootstrapBundle styles the pagination provided by KnpPaginatorBundle.", - "knplabs/knp-menu": "Required to use KnpMenuBundle.", - "knplabs/knp-menu-bundle": "BraincraftedBootstrapBundle styles the menus provided by KnpMenuBundle.", - "twbs/bootstrap": "Twitter Bootstrap provides the assets (images, CSS and JS)" - }, - "autoload": { - "psr-0": { "Braincrafted\\Bundle\\BootstrapBundle": "" } - }, - "target-dir": "Braincrafted/Bundle/BootstrapBundle" -} diff --git a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/phpunit.xml.dist b/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/phpunit.xml.dist deleted file mode 100644 index efe808d5d1..0000000000 --- a/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/phpunit.xml.dist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - ./Tests - - - - - - - ./ - - ./Resources - ./Tests - ./vendor - - - - - - - - - diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 96a3d98ac7..9369904da3 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -31,14 +31,12 @@ return array( 'Attribute_Translator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/attribute_translator.cls.php', 'AuthLib' => $baseDir . '/main/inc/lib/auth.lib.php', 'AutoLoader' => $baseDir . '/main/inc/lib/phpdocx/classes/AutoLoader.inc', - 'BaseFacebook' => $baseDir . '/main/auth/external_login/facebook-php-sdk/src/base_facebook.php', 'Block_Frame_Decorator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/block_frame_decorator.cls.php', 'Block_Frame_Reflower' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/block_frame_reflower.cls.php', 'Block_Positioner' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/block_positioner.cls.php', 'Block_Renderer' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/block_renderer.cls.php', 'Blog' => $baseDir . '/main/inc/lib/blog.lib.php', 'Browser' => $baseDir . '/main/inc/lib/browser/Browser.php', - 'CASClient' => $baseDir . '/main/auth/cas/lib/CAS/client.php', 'CPDF_Adapter' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/cpdf_adapter.cls.php', 'CSS_Color' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/css_color.cls.php', 'Cached_PDF_Decorator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/cached_pdf_decorator.cls.php', @@ -53,7 +51,6 @@ return array( 'ChamiloIndexer' => $baseDir . '/main/inc/lib/search/ChamiloIndexer.class.php', 'ChamiloSession' => $baseDir . '/main/inc/lib/chamilo_session.class.php', 'Chat' => $baseDir . '/main/inc/lib/chat.lib.php', - 'ClassManager' => $baseDir . '/main/inc/lib/classmanager.lib.php', 'Collator' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/Collator.php', 'ConditionalLogin' => $baseDir . '/main/inc/lib/conditional_login.class.php', 'Course' => $baseDir . '/main/coursecopy/classes/Course.class.php', @@ -119,7 +116,7 @@ return array( 'EvalForm' => $baseDir . '/main/gradebook/lib/fe/evalform.class.php', 'EvalLink' => $baseDir . '/main/gradebook/lib/be/evallink.class.php', 'Evaluation' => $baseDir . '/main/gradebook/lib/be/evaluation.class.php', - 'Event' => $baseDir . '/main/coursecopy/classes/Event.class.php', + 'Event' => $baseDir . '/main/inc/lib/events.lib.inc.php', 'EventEmailTemplate' => $baseDir . '/main/inc/lib/event_email_template.class.php', 'EventsDispatcher' => $baseDir . '/main/inc/lib/events_dispatcher.class.php', 'EventsMail' => $baseDir . '/main/inc/lib/events_email.class.php', @@ -132,8 +129,6 @@ return array( 'ExtraField' => $baseDir . '/main/inc/lib/extra_field.lib.php', 'ExtraFieldOption' => $baseDir . '/main/inc/lib/extra_field_option.lib.php', 'ExtraFieldValue' => $baseDir . '/main/inc/lib/extra_field_value.lib.php', - 'Facebook' => $baseDir . '/main/auth/external_login/facebook-php-sdk/src/facebook.php', - 'FacebookApiException' => $baseDir . '/main/auth/external_login/facebook-php-sdk/src/base_facebook.php', 'FileManager' => $baseDir . '/main/inc/lib/fileManager.lib.php', 'FillBlanks' => $baseDir . '/main/exercice/fill_blanks.class.php', 'FlatViewDataGenerator' => $baseDir . '/main/gradebook/lib/flatview_data_generator.class.php', @@ -276,10 +271,8 @@ return array( 'ImsAnswerHotspot' => $baseDir . '/main/exercice/export/qti2/qti2_classes.php', 'ImsAnswerMatching' => $baseDir . '/main/exercice/export/qti2/qti2_classes.php', 'ImsAnswerMultipleChoice' => $baseDir . '/main/exercice/export/qti2/qti2_classes.php', - 'ImsAnswerTrueFalse' => $baseDir . '/main/exercice/export/qti/qti_classes.php', 'ImsAssessmentItem' => $baseDir . '/main/exercice/export/qti2/qti2_export.php', 'ImsItem' => $baseDir . '/main/exercice/export/qti2/qti2_export.php', - 'ImsQuestion' => $baseDir . '/main/exercice/export/qti/qti_classes.php', 'ImsSection' => $baseDir . '/main/exercice/export/qti2/qti2_export.php', 'IndexableChunk' => $baseDir . '/main/inc/lib/search/IndexableChunk.class.php', 'Inline_Frame_Decorator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/inline_frame_decorator.cls.php', @@ -288,7 +281,6 @@ return array( 'Inline_Renderer' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/inline_renderer.cls.php', 'IntlDateFormatter' => $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/IntlDateFormatter.php', 'Javascript_Embedder' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/javascript_embedder.cls.php', - 'KeyAuth' => $baseDir . '/main/auth/key/key_auth.class.php', 'LearnpathLink' => $baseDir . '/main/gradebook/lib/be/learnpathlink.class.php', 'LearnpathList' => $baseDir . '/main/newscorm/learnpathList.class.php', 'LegalManager' => $baseDir . '/main/inc/lib/legal.lib.php', @@ -395,9 +387,6 @@ return array( 'PEAR5' => $baseDir . '/main/inc/lib/pear/PEAR5.php', 'PEAR_Error' => $baseDir . '/main/inc/lib/pear/PEAR.php', 'PEAR_Exception' => $baseDir . '/main/inc/lib/pear/Exception.php', - 'PGTStorage' => $baseDir . '/main/auth/cas/lib/CAS/PGTStorage/pgt-main.php', - 'PGTStorageDB' => $baseDir . '/main/auth/cas/lib/CAS/PGTStorage/pgt-db.php', - 'PGTStorageFile' => $baseDir . '/main/auth/cas/lib/CAS/PGTStorage/pgt-file.php', 'PHP_Evaluator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/php_evaluator.cls.php', 'Page_Cache' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/page_cache.cls.php', 'Page_Frame_Decorator' => $baseDir . '/main/inc/lib/phpdocx/pdf/include/page_frame_decorator.cls.php', @@ -448,30 +437,6 @@ return array( 'SessionHandlerInterface' => $vendorDir . '/symfony/symfony/src/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php', 'SessionManager' => $baseDir . '/main/inc/lib/sessionmanager.lib.php', 'SessionModel' => $baseDir . '/main/inc/lib/session_model.lib.php', - 'Shibboleth\\Admin' => $baseDir . '/main/auth/shibboleth/app/model/admin.class.php', - 'Shibboleth\\AdminStore' => $baseDir . '/main/auth/shibboleth/app/model/admin.class.php', - 'Shibboleth\\Model' => $baseDir . '/main/auth/shibboleth/lib/model.class.php', - 'Shibboleth\\Scaffolder' => $baseDir . '/main/auth/shibboleth/lib/scaffolder/scaffolder.class.php', - 'Shibboleth\\Shibboleth' => $baseDir . '/main/auth/shibboleth/app/shibboleth.class.php', - 'Shibboleth\\ShibbolethConfig' => $baseDir . '/main/auth/shibboleth/lib/shibboleth_config.class.php', - 'Shibboleth\\ShibbolethController' => $baseDir . '/main/auth/shibboleth/app/controller/shibboleth_controller.class.php', - 'Shibboleth\\ShibbolethDisplay' => $baseDir . '/main/auth/shibboleth/app/view/shibboleth_display.class.php', - 'Shibboleth\\ShibbolethEmailForm' => $baseDir . '/main/auth/shibboleth/app/view/shibboleth_email_form.class.php', - 'Shibboleth\\ShibbolethSession' => $baseDir . '/main/auth/shibboleth/lib/shibboleth_session.class.php', - 'Shibboleth\\ShibbolethStatusRequestForm' => $baseDir . '/main/auth/shibboleth/app/view/shibboleth_status_request_form.class.php', - 'Shibboleth\\ShibbolethStore' => $baseDir . '/main/auth/shibboleth/app/model/shibboleth_store.class.php', - 'Shibboleth\\ShibbolethTest' => $baseDir . '/main/auth/shibboleth/test/shibboleth_test.class.php', - 'Shibboleth\\ShibbolethTestHelper' => $baseDir . '/main/auth/shibboleth/test/shibboleth_test_helper.class.php', - 'Shibboleth\\ShibbolethUpgrade' => $baseDir . '/main/auth/shibboleth/db/shibboleth_upgrade.class.php', - 'Shibboleth\\ShibbolethUser' => $baseDir . '/main/auth/shibboleth/app/model/shibboleth_user.class.php', - 'Shibboleth\\Store' => $baseDir . '/main/auth/shibboleth/lib/store.class.php', - 'Shibboleth\\User' => $baseDir . '/main/auth/shibboleth/app/model/user.class.php', - 'Shibboleth\\UserStore' => $baseDir . '/main/auth/shibboleth/app/model/user.class.php', - 'Shibboleth\\_Admin' => $baseDir . '/main/auth/shibboleth/app/model/scaffold/admin.class.php', - 'Shibboleth\\_AdminStore' => $baseDir . '/main/auth/shibboleth/app/model/scaffold/admin.class.php', - 'Shibboleth\\_User' => $baseDir . '/main/auth/shibboleth/app/model/scaffold/user.class.php', - 'Shibboleth\\_UserStore' => $baseDir . '/main/auth/shibboleth/app/model/scaffold/user.class.php', - 'Shibboleth\\aai' => $baseDir . '/main/auth/shibboleth/config/aai.class.php', 'Skill' => $baseDir . '/main/inc/lib/skill.lib.php', 'SkillProfile' => $baseDir . '/main/inc/lib/skill.lib.php', 'SkillRelGradebook' => $baseDir . '/main/inc/lib/skill.lib.php', @@ -638,16 +603,6 @@ return array( 'nusoap_wsdlcache' => $baseDir . '/main/inc/lib/nusoap/class.wsdlcache.php', 'nusoap_xmlschema' => $baseDir . '/main/inc/lib/nusoap/class.xmlschema.php', 'nusoapservermime' => $baseDir . '/main/inc/lib/nusoap/nusoapmime.php', - 'php4DOMAttr' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMDocument' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMElement' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMNode' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMNodelist' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMText' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DOMXPath' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DomProcessingInstruction' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'php4DomXsltStylesheet' => $baseDir . '/main/auth/cas/lib/CAS/domxml-php4-to-php5.php', - 'phpCAS' => $baseDir . '/main/auth/cas/lib/CAS.php', 'quiz_processor' => $baseDir . '/main/inc/lib/search/tool_processors/quiz_processor.class.php', 'scorm' => $baseDir . '/main/newscorm/scorm.class.php', 'scormItem' => $baseDir . '/main/newscorm/scormItem.class.php', @@ -662,7 +617,6 @@ return array( 'soapclient' => $baseDir . '/main/inc/lib/nusoap/class.soapclient.php', 'soapclientmime' => $baseDir . '/main/inc/lib/nusoap/nusoapmime.php', 'soapval' => $baseDir . '/main/inc/lib/nusoap/class.soap_val.php', - 'sso' => $baseDir . '/main/auth/sso/sso.class.php', 'survey_manager' => $baseDir . '/main/survey/survey.lib.php', 'survey_question' => $baseDir . '/main/survey/survey.lib.php', 'wsdl' => $baseDir . '/main/inc/lib/nusoap/class.wsdl.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index d786dc92fc..6d6864507a 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,7 +6,7 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - $vendorDir . '/kriswallsmith/assetic/src/functions.php', $vendorDir . '/symfony/symfony/src/Symfony/Component/Intl/Resources/stubs/functions.php', $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', + $vendorDir . '/kriswallsmith/assetic/src/functions.php', ); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index 1800044171..9d472cb5dd 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -6,34 +6,94 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'dflydev\\markdown' => array($vendorDir . '/dflydev/markdown/src'), + 'Zend\\Stdlib\\' => array($vendorDir . '/zendframework/zend-stdlib'), + 'Zend\\Config\\' => array($vendorDir . '/zendframework/zend-config'), 'WhiteOctober\\PagerfantaBundle' => array($vendorDir . '/white-october/pagerfanta-bundle'), + 'URLify' => array($vendorDir . '/jbroadway/urlify'), 'Twig_Extensions_' => array($vendorDir . '/twig/extensions/lib'), 'Twig_' => array($vendorDir . '/twig/twig/lib'), 'Symfony\\Component\\Icu\\' => array($vendorDir . '/symfony/icu'), + 'Symfony\\Cmf\\Component\\Routing' => array($vendorDir . '/symfony-cmf/routing'), + 'Symfony\\Cmf\\Bundle\\RoutingBundle' => array($vendorDir . '/symfony-cmf/routing-bundle'), 'Symfony\\Bundle\\SwiftmailerBundle' => array($vendorDir . '/symfony/swiftmailer-bundle'), 'Symfony\\Bundle\\MonologBundle' => array($vendorDir . '/symfony/monolog-bundle'), 'Symfony\\Bundle\\AsseticBundle' => array($vendorDir . '/symfony/assetic-bundle'), 'Symfony\\' => array($vendorDir . '/symfony/symfony/src'), + 'Stof\\DoctrineExtensionsBundle' => array($vendorDir . '/stof/doctrine-extensions-bundle'), + 'Spy\\TimelineBundle' => array($vendorDir . '/stephpy/TimelineBundle'), + 'Spy\\Timeline' => array($vendorDir . '/stephpy/timeline/src'), + 'Sonata\\MarkItUpBundle' => array($vendorDir . '/sonata-project/markitup-bundle'), + 'SimpleThings\\EntityAudit' => array($vendorDir . '/simplethings/entity-audit-bundle/src'), 'Sensio\\Bundle\\GeneratorBundle' => array($vendorDir . '/sensio/generator-bundle'), 'Sensio\\Bundle\\FrameworkExtraBundle' => array($vendorDir . '/sensio/framework-extra-bundle'), 'Sensio\\Bundle\\DistributionBundle' => array($vendorDir . '/sensio/distribution-bundle'), + 'Seld\\JsonLint' => array($vendorDir . '/seld/jsonlint/src'), 'Psr\\Log\\' => array($vendorDir . '/psr/log'), + 'Pimple' => array($vendorDir . '/pimple/pimple/lib'), + 'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src'), + 'PhpCollection' => array($vendorDir . '/phpcollection/phpcollection/src'), 'Pagerfanta\\' => array($vendorDir . '/pagerfanta/pagerfanta/src'), + 'Nelmio\\ApiDocBundle' => array($vendorDir . '/nelmio/api-doc-bundle'), + 'Negotiation' => array($vendorDir . '/willdurand/negotiation/src'), + 'Mopa\\Bundle\\BootstrapBundle\\' => array($vendorDir . '/mopa/bootstrap-bundle'), + 'Mopa\\Bridge\\Composer' => array($vendorDir . '/mopa/composer-bridge/src'), + 'Michelf' => array($vendorDir . '/michelf/php-markdown'), + 'Metadata\\' => array($vendorDir . '/jms/metadata/src'), + 'Liip\\ThemeBundle' => array($vendorDir . '/liip/theme-bundle'), + 'Lexik\\Bundle\\MaintenanceBundle' => array($vendorDir . '/lexik/maintenance-bundle'), 'Less' => array($vendorDir . '/oyejorge/less.php/lib'), 'Knp\\Menu\\' => array($vendorDir . '/knplabs/knp-menu/src'), + 'Knp\\Component' => array($vendorDir . '/knplabs/knp-components/src'), + 'Knp\\Bundle\\PaginatorBundle' => array($vendorDir . '/knplabs/knp-paginator-bundle'), 'Knp\\Bundle\\MenuBundle' => array($vendorDir . '/knplabs/knp-menu-bundle'), + 'Knp\\Bundle\\MarkdownBundle' => array($vendorDir . '/knplabs/knp-markdown-bundle'), + 'JsonpCallbackValidator' => array($vendorDir . '/willdurand/jsonp-callback-validator/src'), + 'JsonSchema' => array($vendorDir . '/justinrainbow/json-schema/src'), + 'JMS\\SerializerBundle' => array($vendorDir . '/jms/serializer-bundle'), + 'JMS\\Serializer' => array($vendorDir . '/jms/serializer/src'), + 'JMS\\SecurityExtraBundle' => array($vendorDir . '/jms/security-extra-bundle'), + 'JMS\\DiExtraBundle' => array($vendorDir . '/jms/di-extra-bundle'), + 'JMS\\AopBundle' => array($vendorDir . '/jms/aop-bundle'), + 'JMS\\' => array($vendorDir . '/jms/parser-lib/src'), + 'Ivory\\JsonBuilder' => array($vendorDir . '/egeloen/json-builder'), + 'Ivory\\CKEditorBundle' => array($vendorDir . '/egeloen/ckeditor-bundle'), 'Incenteev\\ParameterHandler' => array($vendorDir . '/incenteev/composer-parameter-handler'), + 'Imagine' => array($vendorDir . '/imagine/imagine/lib'), + 'HWI\\Bundle\\OAuthBundle\\' => array($vendorDir . '/hwi/oauth-bundle'), + 'Guzzle\\Tests' => array($vendorDir . '/guzzle/guzzle/tests'), + 'Guzzle' => array($vendorDir . '/guzzle/guzzle/src'), 'Gedmo\\' => array($vendorDir . '/gedmo/doctrine-extensions/lib'), + 'Gaufrette' => array($vendorDir . '/knplabs/gaufrette/src'), + 'Faker\\PHPUnit' => array($vendorDir . '/fzaninotto/faker/test'), + 'Faker' => array($vendorDir . '/fzaninotto/faker/src'), + 'FOS\\UserBundle' => array($vendorDir . '/friendsofsymfony/user-bundle'), + 'FOS\\RestBundle' => array($vendorDir . '/friendsofsymfony/rest-bundle'), + 'FOS\\MessageBundle' => array($vendorDir . '/friendsofsymfony/message-bundle'), + 'FOS\\CommentBundle' => array($vendorDir . '/friendsofsymfony/comment-bundle'), + 'FOS\\AdvancedEncoderBundle' => array($vendorDir . '/friendsofsymfony/advanced-encoder-bundle'), + 'Exporter' => array($vendorDir . '/sonata-project/exporter/lib'), + 'Elao\\WebProfilerExtraBundle' => array($vendorDir . '/elao/web-profiler-extra-bundle'), 'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/lib'), + 'Doctrine\\DBAL\\Migrations' => array($vendorDir . '/doctrine/migrations/lib'), 'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/lib'), 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'), 'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib'), + 'Doctrine\\Common\\DataFixtures' => array($vendorDir . '/doctrine/data-fixtures/lib'), 'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/lib'), 'Doctrine\\Common\\Cache\\' => array($vendorDir . '/doctrine/cache/lib'), 'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib'), 'Doctrine\\Common\\' => array($vendorDir . '/doctrine/common/lib'), + 'Doctrine\\Bundle\\MigrationsBundle' => array($vendorDir . '/doctrine/doctrine-migrations-bundle'), + 'Doctrine\\Bundle\\FixturesBundle' => array($vendorDir . '/doctrine/doctrine-fixtures-bundle'), 'Doctrine\\Bundle\\DoctrineBundle' => array($vendorDir . '/doctrine/doctrine-bundle'), - 'Braincrafted\\Bundle\\BootstrapBundle' => array($vendorDir . '/braincrafted/bootstrap-bundle'), + 'Composer' => array($vendorDir . '/composer/composer/src'), + 'Chash' => array($vendorDir . '/chamilo/chash/src'), + 'CG\\' => array($vendorDir . '/jms/cg/src'), + 'Buzz' => array($vendorDir . '/kriswallsmith/buzz/lib'), + 'Bazinga\\Bundle\\FakerBundle' => array($vendorDir . '/willdurand/faker-bundle'), + 'Avanzu\\AdminThemeBundle' => array($vendorDir . '/avanzu/admin-theme-bundle'), 'Assetic' => array($vendorDir . '/kriswallsmith/assetic/src'), + 'Alchemy' => array($vendorDir . '/alchemy/zippy/src'), '' => array($baseDir . '/src'), ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index b6ab7d06d9..1ad7f39c72 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,9 +6,49 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'Sylius\\Bundle\\FlowBundle\\' => array($vendorDir . '/sylius/flow-bundle'), + 'Sonata\\jQueryBundle\\' => array($vendorDir . '/sonata-project/jquery-bundle'), + 'Sonata\\UserBundle\\' => array($vendorDir . '/sonata-project/user-bundle'), + 'Sonata\\TimelineBundle\\' => array($vendorDir . '/sonata-project/timeline-bundle'), + 'Sonata\\Tests\\ProductBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/ProductBundle'), + 'Sonata\\Tests\\PriceBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/PriceBundle'), + 'Sonata\\Tests\\PaymentBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/PaymentBundle'), + 'Sonata\\Tests\\OrderBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/OrderBundle'), + 'Sonata\\Tests\\InvoiceBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/InvoiceBundle'), + 'Sonata\\Tests\\DeliveryBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/DeliveryBundle'), + 'Sonata\\Tests\\CustomerBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/CustomerBundle'), + 'Sonata\\Tests\\Component\\' => array($vendorDir . '/sonata-project/ecommerce/tests/Component'), + 'Sonata\\Tests\\BasketBundle\\' => array($vendorDir . '/sonata-project/ecommerce/tests/BasketBundle'), + 'Sonata\\SeoBundle\\' => array($vendorDir . '/sonata-project/seo-bundle'), + 'Sonata\\ProductBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/ProductBundle'), + 'Sonata\\PriceBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/PriceBundle'), + 'Sonata\\PaymentBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/PaymentBundle'), + 'Sonata\\PageBundle\\' => array($vendorDir . '/sonata-project/page-bundle'), + 'Sonata\\OrderBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/OrderBundle'), + 'Sonata\\NotificationBundle\\' => array($vendorDir . '/sonata-project/notification-bundle'), + 'Sonata\\NewsBundle\\' => array($vendorDir . '/sonata-project/news-bundle'), + 'Sonata\\MediaBundle\\' => array($vendorDir . '/sonata-project/media-bundle'), + 'Sonata\\InvoiceBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/InvoiceBundle'), + 'Sonata\\IntlBundle\\' => array($vendorDir . '/sonata-project/intl-bundle'), + 'Sonata\\FormatterBundle\\' => array($vendorDir . '/sonata-project/formatter-bundle'), + 'Sonata\\EasyExtendsBundle\\' => array($vendorDir . '/sonata-project/easy-extends-bundle'), + 'Sonata\\Doctrine\\Tests\\' => array($vendorDir . '/sonata-project/doctrine-extensions/tests'), + 'Sonata\\Doctrine\\' => array($vendorDir . '/sonata-project/doctrine-extensions/src'), + 'Sonata\\DoctrineORMAdminBundle\\' => array($vendorDir . '/sonata-project/doctrine-orm-admin-bundle'), + 'Sonata\\DeliveryBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/DeliveryBundle'), + 'Sonata\\DatagridBundle\\' => array($vendorDir . '/sonata-project/datagrid-bundle'), + 'Sonata\\CustomerBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/CustomerBundle'), 'Sonata\\CoreBundle\\' => array($vendorDir . '/sonata-project/core-bundle'), + 'Sonata\\Component\\' => array($vendorDir . '/sonata-project/ecommerce/src/Component'), + 'Sonata\\CommentBundle\\' => array($vendorDir . '/sonata-project/comment-bundle'), + 'Sonata\\ClassificationBundle\\' => array($vendorDir . '/sonata-project/classification-bundle'), 'Sonata\\Cache\\Tests\\' => array($vendorDir . '/sonata-project/cache/test'), 'Sonata\\Cache\\' => array($vendorDir . '/sonata-project/cache/lib'), + 'Sonata\\CacheBundle\\' => array($vendorDir . '/sonata-project/cache-bundle'), 'Sonata\\BlockBundle\\' => array($vendorDir . '/sonata-project/block-bundle'), + 'Sonata\\BasketBundle\\' => array($vendorDir . '/sonata-project/ecommerce/src/BasketBundle'), + 'Sonata\\AdminBundle\\' => array($vendorDir . '/sonata-project/admin-bundle'), 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), + 'Google\\Authenticator\\Tests\\' => array($vendorDir . '/sonata-project/google-authenticator/tests'), + 'Google\\Authenticator\\' => array($vendorDir . '/sonata-project/google-authenticator/lib'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index a7f5d953d2..08dd14c4a8 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0 +class ComposerAutoloaderInitafc49d8078f44ed99fdf94305db6ff51 { private static $loader; @@ -19,9 +19,9 @@ class ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitafc49d8078f44ed99fdf94305db6ff51', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitafc49d8078f44ed99fdf94305db6ff51', 'loadClassLoader')); $vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); @@ -45,14 +45,14 @@ class ComposerAutoloaderInitca20699ee9202cfa1080a45cd822b9c0 $includeFiles = require __DIR__ . '/autoload_files.php'; foreach ($includeFiles as $file) { - composerRequireca20699ee9202cfa1080a45cd822b9c0($file); + composerRequireafc49d8078f44ed99fdf94305db6ff51($file); } return $loader; } } -function composerRequireca20699ee9202cfa1080a45cd822b9c0($file) +function composerRequireafc49d8078f44ed99fdf94305db6ff51($file) { require $file; } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 427b738239..e030b437f3 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,56 +1,4 @@ [ - { - "name": "jdorn/sql-formatter", - "version": "v1.2.17", - "version_normalized": "1.2.17.0", - "source": { - "type": "git", - "url": "https://github.com/jdorn/sql-formatter.git", - "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", - "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", - "shasum": "" - }, - "require": { - "php": ">=5.2.4" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*" - }, - "time": "2014-01-12 16:20:24", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "lib" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "http://jeremydorn.com/" - } - ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/jdorn/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ] - }, { "name": "psr/log", "version": "1.0.0", @@ -392,7 +340,7 @@ ], "authors": [ { - "name": "Jonathan H. Wage", + "name": "Jonathan Wage", "email": "jonwage@gmail.com", "homepage": "http://www.jwage.com/", "role": "Creator" @@ -492,17 +440,17 @@ }, { "name": "doctrine/common", - "version": "v2.4.1", - "version_normalized": "2.4.1.0", + "version": "v2.4.2", + "version_normalized": "2.4.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "ceb18cf9b0230f3ea208b6238130fd415abda0a7" + "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/ceb18cf9b0230f3ea208b6238130fd415abda0a7", - "reference": "ceb18cf9b0230f3ea208b6238130fd415abda0a7", + "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b", + "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b", "shasum": "" }, "require": { @@ -513,7 +461,10 @@ "doctrine/lexer": "1.*", "php": ">=5.3.2" }, - "time": "2013-09-07 10:20:34", + "require-dev": { + "phpunit/phpunit": "~3.7" + }, + "time": "2014-05-21 19:28:51", "type": "library", "extra": { "branch-alias": { @@ -568,98 +519,57 @@ ] }, { - "name": "symfony/symfony", - "version": "v2.4.4", - "version_normalized": "2.4.4.0", + "name": "kriswallsmith/assetic", + "version": "v1.1.2", + "version_normalized": "1.1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "4697c33cdfb520dcf83fd6e4f7864fa26ddaebea" + "url": "https://github.com/kriswallsmith/assetic.git", + "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/4697c33cdfb520dcf83fd6e4f7864fa26ddaebea", - "reference": "4697c33cdfb520dcf83fd6e4f7864fa26ddaebea", + "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/735cffd3982c6e8cdebe292d5db39d077f65890f", + "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "php": ">=5.3.3", - "psr/log": "~1.0", - "symfony/icu": "~1.0", - "twig/twig": "~1.11" - }, - "replace": { - "symfony/browser-kit": "self.version", - "symfony/class-loader": "self.version", - "symfony/config": "self.version", - "symfony/console": "self.version", - "symfony/css-selector": "self.version", - "symfony/debug": "self.version", - "symfony/dependency-injection": "self.version", - "symfony/doctrine-bridge": "self.version", - "symfony/dom-crawler": "self.version", - "symfony/event-dispatcher": "self.version", - "symfony/expression-language": "self.version", - "symfony/filesystem": "self.version", - "symfony/finder": "self.version", - "symfony/form": "self.version", - "symfony/framework-bundle": "self.version", - "symfony/http-foundation": "self.version", - "symfony/http-kernel": "self.version", - "symfony/intl": "self.version", - "symfony/locale": "self.version", - "symfony/monolog-bridge": "self.version", - "symfony/options-resolver": "self.version", - "symfony/process": "self.version", - "symfony/propel1-bridge": "self.version", - "symfony/property-access": "self.version", - "symfony/proxy-manager-bridge": "self.version", - "symfony/routing": "self.version", - "symfony/security": "self.version", - "symfony/security-acl": "self.version", - "symfony/security-bundle": "self.version", - "symfony/security-core": "self.version", - "symfony/security-csrf": "self.version", - "symfony/security-http": "self.version", - "symfony/serializer": "self.version", - "symfony/stopwatch": "self.version", - "symfony/swiftmailer-bridge": "self.version", - "symfony/templating": "self.version", - "symfony/translation": "self.version", - "symfony/twig-bridge": "self.version", - "symfony/twig-bundle": "self.version", - "symfony/validator": "self.version", - "symfony/web-profiler-bundle": "self.version", - "symfony/yaml": "self.version" + "php": ">=5.3.1", + "symfony/process": "~2.1" }, "require-dev": { - "doctrine/data-fixtures": "1.0.*", - "doctrine/dbal": "~2.2", - "doctrine/orm": "~2.2,>=2.2.3", - "ircmaxell/password-compat": "1.0.*", - "monolog/monolog": "~1.3", - "ocramius/proxy-manager": ">=0.3.1,<0.6-dev", - "propel/propel1": "1.6.*" + "cssmin/cssmin": "*", + "joliclic/javascript-packer": "*", + "kamicane/packager": "*", + "leafo/lessphp": "*", + "leafo/scssphp": "*", + "leafo/scssphp-compass": "*", + "mrclay/minify": "*", + "phpunit/phpunit": "~3.7", + "ptachoire/cssembed": "*", + "twig/twig": "~1.6" + }, + "suggest": { + "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler", + "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler", + "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin", + "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris", + "twig/twig": "Assetic provides the integration with the Twig templating engine" }, - "time": "2014-04-27 13:39:18", + "time": "2013-07-19 00:03:27", "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "1.1-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Symfony\\": "src/" + "Assetic": "src/" }, - "classmap": [ - "src/Symfony/Component/HttpFoundation/Resources/stubs", - "src/Symfony/Component/Intl/Resources/stubs" - ], "files": [ - "src/Symfony/Component/Intl/Resources/stubs/functions.php" + "src/functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -668,49 +578,57 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com", + "homepage": "http://kriswallsmith.net/" } ], - "description": "The Symfony PHP framework", - "homepage": "http://symfony.com", + "description": "Asset Management for PHP", + "homepage": "https://github.com/kriswallsmith/assetic", "keywords": [ - "framework" + "assets", + "compression", + "minification" ] }, { - "name": "symfony/icu", - "version": "v1.2.1", - "version_normalized": "1.2.1.0", - "target-dir": "Symfony/Component/Icu", + "name": "doctrine/data-fixtures", + "version": "dev-master", + "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Icu.git", - "reference": "98e197da54df1f966dd5e8a4992135703569c987" + "url": "https://github.com/doctrine/data-fixtures.git", + "reference": "e847b073c2b5350045edbb40443645ad09a59538" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Icu/zipball/98e197da54df1f966dd5e8a4992135703569c987", - "reference": "98e197da54df1f966dd5e8a4992135703569c987", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/e847b073c2b5350045edbb40443645ad09a59538", + "reference": "e847b073c2b5350045edbb40443645ad09a59538", "shasum": "" }, "require": { - "lib-icu": ">=4.4", - "php": ">=5.3.3", - "symfony/intl": "~2.3" + "doctrine/common": "~2.2", + "php": ">=5.3.2" }, - "time": "2013-10-04 10:06:38", + "require-dev": { + "doctrine/orm": "~2.2" + }, + "suggest": { + "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", + "doctrine/orm": "For loading ORM fixtures", + "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" + }, + "time": "2014-03-13 12:26:17", "type": "library", - "installation-source": "dist", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "source", "autoload": { "psr-0": { - "Symfony\\Component\\Icu\\": "" + "Doctrine\\Common\\DataFixtures": "lib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -719,54 +637,51 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" } ], - "description": "Contains an excerpt of the ICU data and classes to load it.", - "homepage": "http://symfony.com", + "description": "Data Fixtures for all Doctrine Object Managers", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "icu", - "intl" + "database" ] }, { - "name": "doctrine/dbal", - "version": "v2.4.2", - "version_normalized": "2.4.2.0", + "name": "jdorn/sql-formatter", + "version": "v1.2.17", + "version_normalized": "1.2.17.0", "source": { "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "fec965d330c958e175c39e61c3f6751955af32d0" + "url": "https://github.com/jdorn/sql-formatter.git", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/fec965d330c958e175c39e61c3f6751955af32d0", - "reference": "fec965d330c958e175c39e61c3f6751955af32d0", + "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", "shasum": "" }, "require": { - "doctrine/common": "~2.4", - "php": ">=5.3.2" + "php": ">=5.2.4" }, "require-dev": { - "phpunit/phpunit": "3.7.*", - "symfony/console": "~2.0" - }, - "suggest": { - "symfony/console": "Allows use of the command line interface" + "phpunit/phpunit": "3.7.*" }, - "time": "2014-01-01 16:43:57", + "time": "2014-01-12 16:20:24", "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, "installation-source": "dist", "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" - } + "classmap": [ + "lib" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -774,12 +689,64 @@ ], "authors": [ { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "http://jeremydorn.com/" + } + ], + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/jdorn/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ] + }, + { + "name": "doctrine/dbal", + "version": "v2.4.2", + "version_normalized": "2.4.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "fec965d330c958e175c39e61c3f6751955af32d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/fec965d330c958e175c39e61c3f6751955af32d0", + "reference": "fec965d330c958e175c39e61c3f6751955af32d0", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.4", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*", + "symfony/console": "~2.0" + }, + "suggest": { + "symfony/console": "Allows use of the command line interface" + }, + "time": "2014-01-01 16:43:57", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Doctrine\\DBAL\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com", "homepage": "http://www.instaclick.com" @@ -877,58 +844,39 @@ ] }, { - "name": "kriswallsmith/assetic", - "version": "v1.1.2", - "version_normalized": "1.1.2.0", + "name": "doctrine/doctrine-fixtures-bundle", + "version": "v2.2.0", + "version_normalized": "2.2.0.0", + "target-dir": "Doctrine/Bundle/FixturesBundle", "source": { "type": "git", - "url": "https://github.com/kriswallsmith/assetic.git", - "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f" + "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", + "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/735cffd3982c6e8cdebe292d5db39d077f65890f", - "reference": "735cffd3982c6e8cdebe292d5db39d077f65890f", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/c811f96f0cf83b997e3a3ed037cac729bbe3e803", + "reference": "c811f96f0cf83b997e3a3ed037cac729bbe3e803", "shasum": "" }, "require": { - "php": ">=5.3.1", - "symfony/process": "~2.1" - }, - "require-dev": { - "cssmin/cssmin": "*", - "joliclic/javascript-packer": "*", - "kamicane/packager": "*", - "leafo/lessphp": "*", - "leafo/scssphp": "*", - "leafo/scssphp-compass": "*", - "mrclay/minify": "*", - "phpunit/phpunit": "~3.7", - "ptachoire/cssembed": "*", - "twig/twig": "~1.6" - }, - "suggest": { - "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler", - "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler", - "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin", - "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris", - "twig/twig": "Assetic provides the integration with the Twig templating engine" + "doctrine/data-fixtures": "~1.0", + "doctrine/doctrine-bundle": "~1.0", + "php": ">=5.3.2", + "symfony/doctrine-bridge": "~2.1" }, - "time": "2013-07-19 00:03:27", - "type": "library", + "time": "2013-09-05 11:23:37", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.1.x-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Assetic": "src/" - }, - "files": [ - "src/functions.php" - ] + "Doctrine\\Bundle\\FixturesBundle": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -936,63 +884,75 @@ ], "authors": [ { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com", - "homepage": "http://kriswallsmith.net/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org" } ], - "description": "Asset Management for PHP", - "homepage": "https://github.com/kriswallsmith/assetic", + "description": "Symfony DoctrineFixturesBundle", + "homepage": "http://www.doctrine-project.org", "keywords": [ - "assets", - "compression", - "minification" + "Fixture", + "persistence" ] }, { - "name": "symfony/assetic-bundle", - "version": "v2.3.0", - "version_normalized": "2.3.0.0", - "target-dir": "Symfony/Bundle/AsseticBundle", + "name": "knplabs/gaufrette", + "version": "v0.1.4", + "version_normalized": "0.1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/AsseticBundle.git", - "reference": "146dd3cb46b302bd471560471c6aaa930483dac1" + "url": "https://github.com/KnpLabs/Gaufrette.git", + "reference": "3738125aa5e1f3cc430b91085f4578ce5a4383bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/AsseticBundle/zipball/146dd3cb46b302bd471560471c6aaa930483dac1", - "reference": "146dd3cb46b302bd471560471c6aaa930483dac1", + "url": "https://api.github.com/repos/KnpLabs/Gaufrette/zipball/3738125aa5e1f3cc430b91085f4578ce5a4383bc", + "reference": "3738125aa5e1f3cc430b91085f4578ce5a4383bc", "shasum": "" }, "require": { - "kriswallsmith/assetic": "~1.1", - "php": ">=5.3.0", - "symfony/framework-bundle": "~2.1" + "php": ">=5.3.2" }, "require-dev": { - "symfony/class-loader": "~2.1", - "symfony/console": "~2.1", - "symfony/css-selector": "~2.1", - "symfony/dom-crawler": "~2.1", - "symfony/form": "~2.1", - "symfony/twig-bundle": "~2.1", - "symfony/yaml": "~2.1" + "amazonwebservices/aws-sdk-for-php": "1.5.*", + "doctrine/dbal": ">=2.3", + "dropbox-php/dropbox-php": "*", + "herzult/php-ssh": "*", + "phpspec/phpspec2": "1.0.*", + "rackspace/php-cloudfiles": "*" }, "suggest": { - "symfony/twig-bundle": "~2.1" - }, - "time": "2013-05-16 05:32:23", - "type": "symfony-bundle", + "amazonwebservices/aws-sdk-for-php": "to use the Amazon S3 adapter", + "doctrine/dbal": "to use the Doctrine DBAL adapter", + "dropbox-php/dropbox-php": "to use the Dropbox adapter", + "ext-apc": "to use the APC adapter", + "ext-curl": "*", + "ext-mbstring": "*", + "ext-mongo": "*", + "ext-zip": "to use the Zip adapter", + "knplabs/knp-gaufrette-bundle": "*" + }, + "time": "2013-01-25 08:51:55", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "0.2.x-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Symfony\\Bundle\\AsseticBundle": "" + "Gaufrette": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1001,58 +961,62 @@ ], "authors": [ { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com", - "homepage": "http://kriswallsmith.net/" + "name": "The contributors", + "homepage": "http://github.com/knplabs/Gaufrette/contributors" + }, + { + "name": "KnpLabs Team", + "homepage": "http://knplabs.com" } ], - "description": "Integrates Assetic into Symfony2", - "homepage": "https://github.com/symfony/AsseticBundle", + "description": "PHP5 library that provides a filesystem abstraction layer", + "homepage": "http://knplabs.com", "keywords": [ - "assets", - "compression", - "minification" + "abstraction", + "file", + "filesystem", + "media" ] }, { - "name": "sensio/framework-extra-bundle", - "version": "v3.0.0", - "version_normalized": "3.0.0.0", - "target-dir": "Sensio/Bundle/FrameworkExtraBundle", + "name": "knplabs/knp-menu", + "version": "v1.1.2", + "version_normalized": "1.1.2.0", "source": { "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "2016a90bd032248e7d6e9da29def4959821127c8" + "url": "https://github.com/KnpLabs/KnpMenu.git", + "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/2016a90bd032248e7d6e9da29def4959821127c8", - "reference": "2016a90bd032248e7d6e9da29def4959821127c8", + "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/f8e867268f63f561c1adadd6cbb5d8524f921873", + "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "symfony/framework-bundle": "~2.4" + "php": ">=5.3.0" }, "require-dev": { - "symfony/expression-language": "~2.4", - "symfony/security-bundle": "~2.4" + "pimple/pimple": "*", + "silex/silex": "1.0.*", + "twig/twig": ">=1.2,<2.0-dev" }, "suggest": { - "symfony/expression-language": "", - "symfony/security-bundle": "" + "pimple/pimple": "for the built-in implementations of the menu provider and renderer provider", + "silex/silex": "for the integration with your silex application", + "twig/twig": "for the TwigRenderer and the integration with your templates" }, - "time": "2013-12-03 07:53:39", - "type": "symfony-bundle", + "time": "2012-06-10 16:20:40", + "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.1.x-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Sensio\\Bundle\\FrameworkExtraBundle": "" + "Knp\\Menu\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1061,62 +1025,51 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Christophe Coevoet", + "email": "stof@notk.org" + }, + { + "name": "KnpLabs", + "homepage": "http://knplabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://github.com/KnpLabs/KnpMenu/contributors" } ], - "description": "This bundle provides a way to configure your controllers with annotations", + "description": "An object oriented menu library", + "homepage": "http://knplabs.com", "keywords": [ - "annotations", - "controllers" + "menu", + "tree" ] }, { - "name": "doctrine/orm", - "version": "v2.4.2", - "version_normalized": "2.4.2.0", + "name": "knplabs/knp-menu-bundle", + "version": "1.1.x-dev", + "version_normalized": "1.1.9999999.9999999-dev", + "target-dir": "Knp/Bundle/MenuBundle", "source": { "type": "git", - "url": "https://github.com/doctrine/doctrine2.git", - "reference": "0363a5548d9263f979f9ca149decb9cfc66419ab" + "url": "https://github.com/KnpLabs/KnpMenuBundle.git", + "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/0363a5548d9263f979f9ca149decb9cfc66419ab", - "reference": "0363a5548d9263f979f9ca149decb9cfc66419ab", + "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/2fecac02614e5a006f674dd5dd754eeaeca060b9", + "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9", "shasum": "" }, "require": { - "doctrine/collections": "~1.1", - "doctrine/dbal": "~2.4", - "ext-pdo": "*", - "php": ">=5.3.2", - "symfony/console": "~2.0" - }, - "require-dev": { - "satooshi/php-coveralls": "dev-master", - "symfony/yaml": "~2.1" - }, - "suggest": { - "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" - }, - "time": "2014-02-08 16:35:09", - "bin": [ - "bin/doctrine", - "bin/doctrine.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } + "knplabs/knp-menu": "~1.1", + "symfony/framework-bundle": "~2.0" }, - "installation-source": "dist", + "time": "2013-05-25 10:20:03", + "type": "symfony-bundle", + "installation-source": "source", "autoload": { "psr-0": { - "Doctrine\\ORM\\": "lib/" + "Knp\\Bundle\\MenuBundle": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1125,116 +1078,121 @@ ], "authors": [ { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" + "name": "Christophe Coevoet", + "email": "stof@notk.org" }, { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" + "name": "Knplabs", + "homepage": "http://knplabs.com" }, { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" + "name": "Symfony Community", + "homepage": "https://github.com/KnpLabs/KnpMenuBundle/contributors" } ], - "description": "Object-Relational-Mapper for PHP", - "homepage": "http://www.doctrine-project.org", + "description": "This bundle provides an integration of the KnpMenu library", "keywords": [ - "database", - "orm" + "menu" ] }, { - "name": "twig/extensions", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", + "name": "dflydev/markdown", + "version": "v1.0.3", + "version_normalized": "1.0.3.0", "source": { "type": "git", - "url": "https://github.com/fabpot/Twig-extensions.git", - "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0" + "url": "https://github.com/dflydev/dflydev-markdown.git", + "reference": "6baed9b50f29c980795b6656d43722aadb126f7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/f91a82ec225e5bb108e01a0f93c9be04f84dcfa0", - "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0", + "url": "https://api.github.com/repos/dflydev/dflydev-markdown/zipball/6baed9b50f29c980795b6656d43722aadb126f7e", + "reference": "6baed9b50f29c980795b6656d43722aadb126f7e", "shasum": "" }, "require": { - "twig/twig": "~1.0" + "php": ">=5.3" }, - "time": "2013-10-18 19:37:15", + "time": "2013-09-23 12:00:18", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.0-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Twig_Extensions_": "lib/" + "dflydev\\markdown": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Michel Fortin", + "homepage": "http://michelf.com" + }, + { + "name": "John Gruber", + "homepage": "http://daringfireball.net" } ], - "description": "Common additional features for Twig that do not directly belong in core", - "homepage": "https://github.com/fabpot/Twig-extensions", + "description": "PHP Markdown & Extra", + "homepage": "http://github.com/dflydev/dflydev-markdown", "keywords": [ - "debug", - "i18n", - "text" + "markdown" ] }, { - "name": "swiftmailer/swiftmailer", - "version": "v5.2.0", - "version_normalized": "5.2.0.0", + "name": "knplabs/knp-markdown-bundle", + "version": "1.2.0", + "version_normalized": "1.2.0.0", + "target-dir": "Knp/Bundle/MarkdownBundle", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "043e336b871f17a117f76ef8e190eddfc04c8d48" + "url": "https://github.com/KnpLabs/KnpMarkdownBundle.git", + "reference": "9f4f88919db4f4b7f8e374ac0de1a93e05b05646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/043e336b871f17a117f76ef8e190eddfc04c8d48", - "reference": "043e336b871f17a117f76ef8e190eddfc04c8d48", + "url": "https://api.github.com/repos/KnpLabs/KnpMarkdownBundle/zipball/9f4f88919db4f4b7f8e374ac0de1a93e05b05646", + "reference": "9f4f88919db4f4b7f8e374ac0de1a93e05b05646", "shasum": "" }, "require": { - "php": ">=5.2.4" + "dflydev/markdown": "1.0.*@dev", + "php": ">=5.3.3", + "symfony/framework-bundle": "~2.0" }, - "require-dev": { - "mockery/mockery": "~0.9.1" + "suggest": { + "ext-sundown": "to use optional support for php-sundown extension instead of php implementation", + "symfony/twig-bundle": "to use the Twig markdown filter" }, - "time": "2014-05-08 08:11:19", - "type": "library", + "time": "2013-05-20 08:29:54", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.2-dev" + "dev-master": "1.2.x-dev" } }, "installation-source": "dist", "autoload": { - "files": [ - "lib/swift_required.php" - ] + "psr-0": { + "Knp\\Bundle\\MarkdownBundle": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1242,60 +1200,60 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "KnpLabs Team", + "homepage": "http://knplabs.com" }, { - "name": "Chris Corbyn" + "name": "Symfony Community", + "homepage": "http://github.com/KnpLabs/KnpMarkdownBundle/contributors" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.org", + "description": "Knplabs markdown bundle transforms markdown into html", + "homepage": "http://github.com/KnpLabs/KnpMarkdownBundle", "keywords": [ - "mail", - "mailer" + "bundle", + "knp", + "knplabs", + "markdown" ] }, { - "name": "symfony/swiftmailer-bundle", - "version": "v2.3.7", - "version_normalized": "2.3.7.0", - "target-dir": "Symfony/Bundle/SwiftmailerBundle", + "name": "knplabs/knp-components", + "version": "1.2.5", + "version_normalized": "1.2.5.0", "source": { "type": "git", - "url": "https://github.com/symfony/SwiftmailerBundle.git", - "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577" + "url": "https://github.com/KnpLabs/knp-components.git", + "reference": "8803fdaa18bd24bd158143e3d9099f4b243a31dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/SwiftmailerBundle/zipball/e98defd402f72e8b54a029ba4d3ac4cb51dc3577", - "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577", + "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/8803fdaa18bd24bd158143e3d9099f4b243a31dd", + "reference": "8803fdaa18bd24bd158143e3d9099f4b243a31dd", "shasum": "" }, "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": ">=4.2.0,~5.0", - "symfony/swiftmailer-bridge": "~2.1" - }, - "require-dev": { - "symfony/config": "~2.1", - "symfony/dependency-injection": "~2.1", - "symfony/http-kernel": "~2.1", - "symfony/yaml": "~2.1" + "php": ">=5.3.2" }, - "time": "2014-04-05 17:15:52", - "type": "symfony-bundle", + "suggest": { + "doctrine/common": "to allow usage pagination with Doctrine ArrayCollection", + "doctrine/mongodb-odm": "to allow usage pagination with Doctrine ODM MongoDB", + "doctrine/orm": "to allow usage pagination with Doctrine ORM", + "propel/propel1": "to allow usage pagination with Propel ORM", + "ruflin/Elastica": "to allow usage pagination with ElasticSearch Client", + "solarium/solarium": "to allow usage pagination with Solarium Client" + }, + "time": "2014-01-09 16:23:31", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "1.2.x-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Symfony\\Bundle\\SwiftmailerBundle": "" + "Knp\\Component": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1304,67 +1262,57 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "KnpLabs Team", + "homepage": "http://knplabs.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "http://github.com/KnpLabs/knp-components/contributors" } ], - "description": "Symfony SwiftmailerBundle", - "homepage": "http://symfony.com" + "description": "Knplabs component library", + "homepage": "http://github.com/KnpLabs/knp-components", + "keywords": [ + "components", + "knp", + "knplabs", + "pager", + "paginator" + ] }, { - "name": "monolog/monolog", - "version": "1.9.1", - "version_normalized": "1.9.1.0", + "name": "knplabs/knp-paginator-bundle", + "version": "2.4.0", + "version_normalized": "2.4.0.0", + "target-dir": "Knp/Bundle/PaginatorBundle", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "65026b610f8c19e61d7242f600530677b0466aac" + "url": "https://github.com/KnpLabs/KnpPaginatorBundle.git", + "reference": "4202329b4d639c1a03d0007e31a52049d31c591e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/65026b610f8c19e61d7242f600530677b0466aac", - "reference": "65026b610f8c19e61d7242f600530677b0466aac", + "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/4202329b4d639c1a03d0007e31a52049d31c591e", + "reference": "4202329b4d639c1a03d0007e31a52049d31c591e", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "require-dev": { - "aws/aws-sdk-php": "~2.4, >2.4.8", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "phpunit/phpunit": "~3.7.0", - "raven/raven": "~0.5", - "ruflin/elastica": "0.90.*" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "raven/raven": "Allow sending log messages to a Sentry server", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "knplabs/knp-components": "~1.2", + "php": ">=5.3.3", + "symfony/framework-bundle": "~2.0", + "twig/twig": "~1.5" }, - "time": "2014-04-24 13:29:03", - "type": "library", + "time": "2014-01-21 07:26:00", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "2.3.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" + "psr-0": { + "Knp\\Bundle\\PaginatorBundle": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1373,59 +1321,68 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be", - "role": "Developer" + "name": "KnpLabs Team", + "homepage": "http://knplabs.com" + }, + { + "name": "Symfony2 Community", + "homepage": "http://github.com/KnpLabs/KnpPaginatorBundle/contributors" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "description": "Paginator bundle for Symfony2 to automate pagination and simplify sorting and other features", + "homepage": "http://github.com/KnpLabs/KnpPaginatorBundle", "keywords": [ - "log", - "logging", - "psr-3" + "Symfony2", + "bundle", + "knp", + "knplabs", + "pager", + "pagination", + "paginator" ] }, { - "name": "symfony/monolog-bundle", - "version": "v2.5.1", - "version_normalized": "2.5.1.0", - "target-dir": "Symfony/Bundle/MonologBundle", + "name": "stephpy/timeline", + "version": "dev-master", + "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://github.com/symfony/MonologBundle.git", - "reference": "71ad844ac29401f86619f9d643393265451e858b" + "url": "https://github.com/stephpy/timeline.git", + "reference": "71c8dd7fe604d110334f07de0c4f04c0efe45446" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/MonologBundle/zipball/71ad844ac29401f86619f9d643393265451e858b", - "reference": "71ad844ac29401f86619f9d643393265451e858b", + "url": "https://api.github.com/repos/stephpy/timeline/zipball/71c8dd7fe604d110334f07de0c4f04c0efe45446", + "reference": "71c8dd7fe604d110334f07de0c4f04c0efe45446", "shasum": "" }, "require": { - "monolog/monolog": "~1.6", "php": ">=5.3.2", - "symfony/config": "~2.3", - "symfony/dependency-injection": "~2.3", - "symfony/http-kernel": "~2.3", - "symfony/monolog-bridge": "~2.3" + "symfony/options-resolver": "*" }, "require-dev": { - "symfony/console": "~2.3", - "symfony/yaml": "~2.3" + "atoum/atoum": "dev-master", + "knplabs/knp-components": "1.*", + "pimple/pimple": "*", + "symfony/event-dispatcher": "2.*" }, - "time": "2014-02-19 14:49:26", - "type": "symfony-bundle", + "suggest": { + "ext-redis": "Redis C extension for PHP", + "knplabs/knp-components": "Knp Paginator", + "pimple/pimple": "Use ServiceLocator", + "predis/predis": "Redis PHP client library" + }, + "time": "2014-05-30 07:32:41", + "type": "standalone", "extra": { "branch-alias": { - "dev-master": "2.5.x-dev" + "dev-master": "1.0.x-dev" } }, - "installation-source": "dist", + "installation-source": "source", "autoload": { "psr-0": { - "Symfony\\Bundle\\MonologBundle": "" + "Spy\\Timeline": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1434,53 +1391,65 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Community contributors", + "homepage": "https://github.com/stephpy/timeline/contributors" } ], - "description": "Symfony MonologBundle", - "homepage": "http://symfony.com", + "description": "Standalone library to make timeline", + "homepage": "https://github.com/stephpy/timeline", "keywords": [ - "log", - "logging" + "standalone", + "timeline" ] }, { - "name": "sensio/distribution-bundle", - "version": "v2.3.4", - "version_normalized": "2.3.4.0", - "target-dir": "Sensio/Bundle/DistributionBundle", + "name": "stephpy/TimelineBundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Spy/TimelineBundle", "source": { "type": "git", - "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", - "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021" + "url": "https://github.com/stephpy/TimelineBundle.git", + "reference": "d6633c9e095b833c9f1b4a6e3fa98b5e01929604" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/66df91b4bd637a83299d8072aed3658bfd3b3021", - "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021", + "url": "https://api.github.com/repos/stephpy/TimelineBundle/zipball/d6633c9e095b833c9f1b4a6e3fa98b5e01929604", + "reference": "d6633c9e095b833c9f1b4a6e3fa98b5e01929604", "shasum": "" }, "require": { - "symfony/framework-bundle": "~2.2" + "php": ">=5.3.2", + "stephpy/timeline": "1.0.*", + "symfony/framework-bundle": "2.*", + "symfony/options-resolver": "2.*" }, - "time": "2013-08-22 05:04:53", + "replace": { + "stephpy/timelinebundle": "self.version" + }, + "require-dev": { + "atoum/atoum-bundle": "dev-master", + "doctrine/orm": "2.*", + "symfony/console": "2.*", + "symfony/twig-bundle": "2.*" + }, + "suggest": { + "doctrine/mongodb-odm-bundle": "Use doctrine ODM driver", + "doctrine/orm": "Use doctrine ORM driver", + "snc/redis-bundle": "Use redis driver", + "symfony/console": "List spreads and deploy timelines via a command" + }, + "time": "2014-04-30 14:28:53", "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "2.0.x-dev" } }, - "installation-source": "dist", + "installation-source": "source", "autoload": { "psr-0": { - "Sensio\\Bundle\\DistributionBundle": "" + "Spy\\TimelineBundle": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1489,54 +1458,55 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Stéphane PY", + "email": "py.stephane1@gmail.com" + }, + { + "name": "Community contributors", + "homepage": "https://github.com/stephpy/TimelineBundle/contributors" } ], - "description": "The base bundle for the Symfony Distributions", + "description": "Symfony2 bundle to make timeline", + "homepage": "https://github.com/stephpy/TimelineBundle", "keywords": [ - "configuration", - "distribution" + "bundle", + "notification", + "symfony", + "timeline" ] }, { - "name": "sensio/generator-bundle", - "version": "v2.3.4", - "version_normalized": "2.3.4.0", - "target-dir": "Sensio/Bundle/GeneratorBundle", + "name": "sonata-project/timeline-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", - "reference": "4a7b126e9c22f858e3584b19ddce6e5bdd7677ee" + "url": "https://github.com/sonata-project/SonataTimelineBundle.git", + "reference": "6e52ee67bb7ce16b1e32078975bdddbf1fbc5689" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/4a7b126e9c22f858e3584b19ddce6e5bdd7677ee", - "reference": "4a7b126e9c22f858e3584b19ddce6e5bdd7677ee", + "url": "https://api.github.com/repos/sonata-project/SonataTimelineBundle/zipball/6e52ee67bb7ce16b1e32078975bdddbf1fbc5689", + "reference": "6e52ee67bb7ce16b1e32078975bdddbf1fbc5689", "shasum": "" }, "require": { - "symfony/console": "~2.0", - "symfony/framework-bundle": "~2.2" - }, - "require-dev": { - "doctrine/orm": "~2.2,>=2.2.3", - "symfony/doctrine-bridge": "~2.2", - "twig/twig": "~1.11" + "sonata-project/block-bundle": "~2.2,>=2.2.1", + "sonata-project/core-bundle": "~2.2", + "stephpy/timeline": "~1.0@dev", + "stephpy/timelinebundle": "2.0.*@dev" }, - "time": "2013-08-21 18:09:35", + "time": "2014-06-12 13:54:22", "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "2.2.x-dev" } }, - "installation-source": "dist", + "installation-source": "source", "autoload": { - "psr-0": { - "Sensio\\Bundle\\GeneratorBundle": "" + "psr-4": { + "Sonata\\TimelineBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1545,559 +1515,596 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataTimelineBundle/contributors" } ], - "description": "This bundle generates code for you" + "description": "Symfony SonataTimelineBundle ~ integrate SpyTimelineBundle into Sonata", + "homepage": "http://sonata-project.org/bundles/timeline", + "keywords": [ + "date", + "sonata", + "time", + "wall" + ] }, { - "name": "incenteev/composer-parameter-handler", - "version": "v2.1.0", - "version_normalized": "2.1.0.0", - "target-dir": "Incenteev/ParameterHandler", + "name": "phpoption/phpoption", + "version": "1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", - "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "143272a0a09c62616a3c8011fc165a10c6b35241" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "5d099bcf0393908bf4ad69cc47dafb785d51f7f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/143272a0a09c62616a3c8011fc165a10c6b35241", - "reference": "143272a0a09c62616a3c8011fc165a10c6b35241", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/5d099bcf0393908bf4ad69cc47dafb785d51f7f5", + "reference": "5d099bcf0393908bf4ad69cc47dafb785d51f7f5", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/yaml": "~2.0" - }, - "require-dev": { - "composer/composer": "1.0.*@dev", - "phpspec/prophecy-phpunit": "~1.0", - "symfony/filesystem": "~2.2" + "php": ">=5.3.0" }, - "time": "2013-12-07 10:10:39", + "time": "2014-01-09 22:37:17", "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "1.3-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Incenteev\\ParameterHandler": "" + "PhpOption\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache2" ], "authors": [ { - "name": "Christophe Coevoet", - "email": "stof@notk.org" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "Composer script handling your ignored parameter file", - "homepage": "https://github.com/Incenteev/ParameterHandler", + "description": "Option Type for PHP", "keywords": [ - "parameters management" + "language", + "option", + "php", + "type" ] }, { - "name": "gedmo/doctrine-extensions", - "version": "v2.3.9", - "version_normalized": "2.3.9.0", + "name": "phpcollection/phpcollection", + "version": "0.4.0", + "version_normalized": "0.4.0.0", "source": { "type": "git", - "url": "https://github.com/Atlantic18/DoctrineExtensions.git", - "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54" + "url": "https://github.com/schmittjoh/php-collection.git", + "reference": "b8bf55a0a929ca43b01232b36719f176f86c7e83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54", - "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54", + "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/b8bf55a0a929ca43b01232b36719f176f86c7e83", + "reference": "b8bf55a0a929ca43b01232b36719f176f86c7e83", "shasum": "" }, "require": { - "doctrine/common": ">=2.2,<2.5-dev", - "php": ">=5.3.2" - }, - "require-dev": { - "doctrine/common": ">=2.4.0-RC3", - "doctrine/dbal": ">=2.4.0-RC1", - "doctrine/mongodb": ">=1.0.3", - "doctrine/mongodb-odm": ">=1.0.0-BETA9", - "doctrine/orm": ">=2.4.0-RC1", - "symfony/yaml": "2.3.1" - }, - "suggest": { - "doctrine/dbal": ">=2.3.2", - "doctrine/mongodb": ">=1.0.1", - "doctrine/mongodb-odm": ">=1.0.0-BETA7", - "doctrine/orm": ">=2.3.2" + "phpoption/phpoption": "1.*" }, - "time": "2014-01-12 16:34:06", + "time": "2014-03-11 13:46:42", "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "0.3-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Gedmo\\": "lib/" + "PhpCollection": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache2" ], "authors": [ { - "name": "David Buchmann", - "email": "david@liip.ch" - }, - { - "name": "Gediminas Morkevicius", - "email": "gediminas.morkevicius@gmail.com" - }, - { - "name": "Gustavo Falco", - "email": "comfortablynumb84@gmail.com" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "Doctrine2 behavioral extensions", - "homepage": "http://gediminasm.org/", + "description": "General-Purpose Collection Library for PHP", "keywords": [ - "Blameable", - "behaviors", - "doctrine2", - "extensions", - "gedmo", - "loggable", - "nestedset", - "sluggable", - "sortable", - "timestampable", - "translatable", - "tree", - "uploadable" + "collection", + "list", + "map", + "sequence", + "set" ] }, { - "name": "jquery/jquery", - "version": "1.10.2", - "version_normalized": "1.10.2.0", + "name": "jms/parser-lib", + "version": "1.0.0", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/parser-lib.git", + "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" + }, "dist": { - "type": "file", - "url": "http://code.jquery.com/jquery-1.10.2.js", - "reference": null, - "shasum": null + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", + "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", + "shasum": "" + }, + "require": { + "phpoption/phpoption": ">=0.9,<2.0-dev" }, + "time": "2012-11-18 18:08:43", "type": "library", - "installation-source": "dist" + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "JMS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache2" + ], + "description": "A library for easily creating recursive-descent parsers." }, { - "name": "braincrafted/bootstrap-bundle", - "version": "v2.0.1", - "version_normalized": "2.0.1.0", - "target-dir": "Braincrafted/Bundle/BootstrapBundle", + "name": "jms/metadata", + "version": "1.5.0", + "version_normalized": "1.5.0.0", "source": { "type": "git", - "url": "https://github.com/braincrafted/bootstrap-bundle.git", - "reference": "dc6169b1e29d8668cda960aa663fcc4bbd602bd4" + "url": "https://github.com/schmittjoh/metadata.git", + "reference": "88ffa28bc987e4c26229fc84a2e541b6ed4e1459" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/braincrafted/bootstrap-bundle/zipball/dc6169b1e29d8668cda960aa663fcc4bbd602bd4", - "reference": "dc6169b1e29d8668cda960aa663fcc4bbd602bd4", + "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/88ffa28bc987e4c26229fc84a2e541b6ed4e1459", + "reference": "88ffa28bc987e4c26229fc84a2e541b6ed4e1459", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/console": "~2.3", - "symfony/finder": "~2.3", - "symfony/form": "~2.3", - "symfony/framework-bundle": "~2.3", - "symfony/twig-bundle": "~2.3" + "php": ">=5.3.0" }, "require-dev": { - "knplabs/knp-menu": "~2.0@alpha", - "knplabs/knp-menu-bundle": "~2.0@alpha", - "knplabs/knp-paginator-bundle": "dev-master", - "mockery/mockery": "0.8.*", - "phpunit/phpunit": "3.7.*", - "symfony/assetic-bundle": "~2.3" + "doctrine/cache": "~1.0" }, - "suggest": { - "knplabs/knp-menu": "Required to use KnpMenuBundle.", - "knplabs/knp-menu-bundle": "BraincraftedBootstrapBundle styles the menus provided by KnpMenuBundle.", - "knplabs/knp-paginator-bundle": "BraincraftedBootstrapBundle styles the pagination provided by KnpPaginatorBundle.", - "twbs/bootstrap": "Twitter Bootstrap provides the assets (images, CSS and JS)" + "time": "2013-11-05 23:02:36", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5.x-dev" + } }, - "time": "2014-04-03 16:59:23", - "type": "symfony-bundle", "installation-source": "dist", "autoload": { "psr-0": { - "Braincrafted\\Bundle\\BootstrapBundle": "" + "Metadata\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache" ], "authors": [ { - "name": "Florian Eckerstorfer", - "email": "florian@eckerstorfer.co", - "homepage": "http://florian.ec", - "role": "Developer" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "BraincraftedBootstrapBundle integrates Bootstrap into Symfony2 by providing templates, Twig extensions, services and commands.", + "description": "Class/method/property metadata management in PHP", "keywords": [ - "bootstrap" + "annotations", + "metadata", + "xml", + "yaml" ] }, { - "name": "twbs/bootstrap", - "version": "v3.0.3", - "version_normalized": "3.0.3.0", + "name": "jms/serializer", + "version": "0.16.0", + "version_normalized": "0.16.0.0", "source": { "type": "git", - "url": "https://github.com/twbs/bootstrap.git", - "reference": "6d03173a1aad98e75f7d33e65b411c519176c59a" + "url": "https://github.com/schmittjoh/serializer.git", + "reference": "c8a171357ca92b6706e395c757f334902d430ea9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twbs/bootstrap/zipball/6d03173a1aad98e75f7d33e65b411c519176c59a", - "reference": "6d03173a1aad98e75f7d33e65b411c519176c59a", + "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/c8a171357ca92b6706e395c757f334902d430ea9", + "reference": "c8a171357ca92b6706e395c757f334902d430ea9", "shasum": "" }, - "time": "2013-12-05 16:09:10", + "require": { + "doctrine/annotations": "1.*", + "jms/metadata": "~1.1", + "jms/parser-lib": "1.*", + "php": ">=5.3.2", + "phpcollection/phpcollection": "~0.1" + }, + "require-dev": { + "doctrine/orm": "~2.1", + "doctrine/phpcr-odm": "~1.0.1", + "jackalope/jackalope-doctrine-dbal": "1.0.*", + "propel/propel1": "~1.7", + "symfony/filesystem": "2.*", + "symfony/form": "~2.1", + "symfony/translation": "~2.0", + "symfony/validator": "~2.0", + "symfony/yaml": "2.*", + "twig/twig": ">=1.8,<2.0-dev" + }, + "suggest": { + "symfony/yaml": "Required if you'd like to serialize data to YAML format." + }, + "time": "2014-03-18 08:39:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "0.15-dev" } }, "installation-source": "dist", + "autoload": { + "psr-0": { + "JMS\\Serializer": "src/" + } + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "Apache2" ], "authors": [ { - "name": "Jacob Thornton", - "email": "jacobthornton@gmail.com" - }, - { - "name": "Mark Otto", - "email": "markdotto@gmail.com" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.", - "homepage": "http://getbootstrap.com", + "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", + "homepage": "http://jmsyst.com/libs/serializer", "keywords": [ - "bootstrap", - "css" + "deserialization", + "jaxb", + "json", + "serialization", + "xml" ] }, { - "name": "oyejorge/less.php", - "version": "v1.7.0.1", - "version_normalized": "1.7.0.1", + "name": "jms/cg", + "version": "1.0.0", + "version_normalized": "1.0.0.0", "source": { "type": "git", - "url": "https://github.com/oyejorge/less.php.git", - "reference": "958476be9e47a13db0579397f0164af1776bdbee" + "url": "https://github.com/schmittjoh/cg-library.git", + "reference": "ce8ef43dd6bfe6ce54e5e9844ab71be2343bf2fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/oyejorge/less.php/zipball/958476be9e47a13db0579397f0164af1776bdbee", - "reference": "958476be9e47a13db0579397f0164af1776bdbee", + "url": "https://api.github.com/repos/schmittjoh/cg-library/zipball/ce8ef43dd6bfe6ce54e5e9844ab71be2343bf2fc", + "reference": "ce8ef43dd6bfe6ce54e5e9844ab71be2343bf2fc", "shasum": "" }, "require": { - "php": ">=5.2" + "php": ">=5.3.0" }, - "time": "2014-03-17 04:51:51", - "bin": [ - "bin/lessc" - ], + "time": "2012-01-02 20:40:52", "type": "library", "installation-source": "dist", "autoload": { "psr-0": { - "Less": "lib/" - }, - "classmap": [ - "lessc.inc.php" - ] + "CG\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "Apache" ], "authors": [ { - "name": "Matt Agar", - "homepage": "https://github.com/agar" - }, - { - "name": "Martin Jantošovič", - "homepage": "https://github.com/Mordred" - }, - { - "name": "Josh Schmidt", - "homepage": "https://github.com/oyejorge" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "PHP port of the Javascript version of LESS http://lesscss.org", - "homepage": "http://lessphp.gpeasy.com", + "description": "Toolset for generating PHP code", "keywords": [ - "css", - "less", - "less.js", - "lesscss", - "php", - "stylesheet" + "code generation" ] }, { - "name": "sonata-project/cache", - "version": "1.0.2", - "version_normalized": "1.0.2.0", + "name": "jms/aop-bundle", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "target-dir": "JMS/AopBundle", "source": { "type": "git", - "url": "https://github.com/sonata-project/cache.git", - "reference": "7c91e7fd1ca5be4273b09388650709bff31d8966" + "url": "https://github.com/schmittjoh/JMSAopBundle.git", + "reference": "93f41ab85ed409430bc3bab2e0b7c7677f152aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sonata-project/cache/zipball/7c91e7fd1ca5be4273b09388650709bff31d8966", - "reference": "7c91e7fd1ca5be4273b09388650709bff31d8966", + "url": "https://api.github.com/repos/schmittjoh/JMSAopBundle/zipball/93f41ab85ed409430bc3bab2e0b7c7677f152aa8", + "reference": "93f41ab85ed409430bc3bab2e0b7c7677f152aa8", "shasum": "" }, - "require-dev": { - "doctrine/orm": "~2.2", - "doctrine/phpcr-odm": "~1.0", - "predis/predis": "~0.8,<1.0", - "psr/log": "~1.0" - }, - "suggest": { - "doctrine/orm": "ORM support", - "doctrine/phpcr-odm": "PHPCR ODM support", - "ext-apc": "Caching with ext/apc", - "ext-memcached": "Caching with ext/memcached", - "predis/predis": "Install redis php" + "require": { + "jms/cg": "1.*", + "symfony/framework-bundle": "2.*" }, - "time": "2014-05-12 08:55:48", - "type": "library", + "time": "2013-07-29 09:34:26", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "1.1.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Sonata\\Cache\\Tests\\": "test/", - "Sonata\\Cache\\": "lib/" + "psr-0": { + "JMS\\AopBundle": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache" ], "authors": [ { - "name": "Thomas Rabaix", - "email": "thomas.rabaix@gmail.com", - "homepage": "http://sonata-project.org/" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "Cache library", - "homepage": "https://github.com/sonata-project/cache", + "description": "Adds AOP capabilities to Symfony2", "keywords": [ - "cache", - "memcached", - "mongodb", - "redis" + "annotations", + "aop" ] }, { - "name": "sonata-project/core-bundle", - "version": "2.2.5", - "version_normalized": "2.2.5.0", + "name": "jms/di-extra-bundle", + "version": "1.4.0", + "version_normalized": "1.4.0.0", + "target-dir": "JMS/DiExtraBundle", "source": { "type": "git", - "url": "https://github.com/sonata-project/SonataCoreBundle.git", - "reference": "863809982c98b8444aeab1ff442c117d74f1a7c7" + "url": "https://github.com/schmittjoh/JMSDiExtraBundle.git", + "reference": "7fffdb6c96fb922a131af06d773e1e6c5301d070" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sonata-project/SonataCoreBundle/zipball/863809982c98b8444aeab1ff442c117d74f1a7c7", - "reference": "863809982c98b8444aeab1ff442c117d74f1a7c7", + "url": "https://api.github.com/repos/schmittjoh/JMSDiExtraBundle/zipball/7fffdb6c96fb922a131af06d773e1e6c5301d070", + "reference": "7fffdb6c96fb922a131af06d773e1e6c5301d070", "shasum": "" }, "require": { - "symfony/config": "~2.0", - "symfony/form": "~2.2", - "symfony/http-foundation": "~2.2", - "symfony/translation": "~2.2", - "twig/twig": "~1.12" + "jms/aop-bundle": ">=1.0.0,<1.2-dev", + "jms/metadata": "1.*", + "symfony/finder": "~2.1", + "symfony/framework-bundle": "~2.1", + "symfony/process": "~2.1" }, "require-dev": { - "doctrine/orm": "~2.4", - "doctrine/phpcr-odm": "~1.0", - "sonata-project/exporter": "~1.3" - }, - "time": "2014-02-14 14:24:51", + "doctrine/doctrine-bundle": "*", + "doctrine/orm": "*", + "jms/security-extra-bundle": "1.*", + "phpcollection/phpcollection": ">=0.1,<0.3-dev", + "sensio/framework-extra-bundle": "*", + "symfony/browser-kit": "*", + "symfony/class-loader": "*", + "symfony/form": "*", + "symfony/security-bundle": "*", + "symfony/twig-bundle": "*", + "symfony/validator": "*", + "symfony/yaml": "*" + }, + "time": "2013-06-08 13:13:40", "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "1.3-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Sonata\\CoreBundle\\": "" + "psr-0": { + "JMS\\DiExtraBundle": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache" ], "authors": [ { - "name": "Thomas Rabaix", - "email": "thomas.rabaix@sonata-project.org", - "homepage": "http://sonata-project.org" - }, - { - "name": "Sonata Community", - "homepage": "https://github.com/sonata-project/SonataCoreBundle/contributors" - } + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } ], - "description": "Symfony SonataCoreBundle", - "homepage": "http://sonata-project.org/bundles/core", + "description": "Allows to configure dependency injection using annotations", + "homepage": "http://jmsyst.com/bundles/JMSDiExtraBundle", "keywords": [ - "sonata" + "annotations", + "dependency injection" ] }, { - "name": "sonata-project/block-bundle", - "version": "2.2.11", - "version_normalized": "2.2.11.0", + "name": "jms/serializer-bundle", + "version": "0.13.0", + "version_normalized": "0.13.0.0", + "target-dir": "JMS/SerializerBundle", "source": { "type": "git", - "url": "https://github.com/sonata-project/SonataBlockBundle.git", - "reference": "1e6adfaa27f46d50973e6f14150e0585f876dd1e" + "url": "https://github.com/schmittjoh/JMSSerializerBundle.git", + "reference": "bb15db3e661168f4310fad48b86915ff1ca33795" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sonata-project/SonataBlockBundle/zipball/1e6adfaa27f46d50973e6f14150e0585f876dd1e", - "reference": "1e6adfaa27f46d50973e6f14150e0585f876dd1e", + "url": "https://api.github.com/repos/schmittjoh/JMSSerializerBundle/zipball/bb15db3e661168f4310fad48b86915ff1ca33795", + "reference": "bb15db3e661168f4310fad48b86915ff1ca33795", "shasum": "" }, "require": { - "doctrine/common": "~2.3", - "sonata-project/cache": "~1.0", - "sonata-project/core-bundle": "~2.2", - "symfony/form": "~2.2", - "symfony/http-kernel": "~2.2" + "jms/serializer": "~0.11", + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1" }, "require-dev": { - "knplabs/knp-menu-bundle": "~1.1", - "sonata-project/admin-bundle": "~2.2" + "doctrine/doctrine-bundle": "*", + "doctrine/orm": "*", + "symfony/browser-kit": "*", + "symfony/class-loader": "*", + "symfony/css-selector": "*", + "symfony/finder": "*", + "symfony/form": "*", + "symfony/process": "*", + "symfony/twig-bundle": "*", + "symfony/validator": "*", + "symfony/yaml": "*" }, "suggest": { - "knplabs/knp-menu-bundle": "~1.1", - "sonata-project/admin-bundle": "~2.2", - "sonata-project/cache-bundle": "~2.1" + "jms/di-extra-bundle": "Required to get lazy loading (de)serialization visitors, ~1.3" }, - "time": "2014-02-21 14:01:24", + "time": "2013-12-05 14:36:11", "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "0.13-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Sonata\\BlockBundle\\": "" + "psr-0": { + "JMS\\SerializerBundle": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache2" ], "authors": [ { - "name": "Thomas Rabaix", - "email": "thomas.rabaix@sonata-project.org", - "homepage": "http://sonata-project.org" - }, - { - "name": "Sonata Community", - "homepage": "https://github.com/sonata-project/SonataBlockBundle/contributors" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" } ], - "description": "Symfony SonataBlockBundle", - "homepage": "http://sonata-project.org/bundles/block", + "description": "Allows you to easily serialize, and deserialize data of any complexity", + "homepage": "http://jmsyst.com/bundles/JMSSerializerBundle", "keywords": [ - "block", - "sonata" + "deserialization", + "jaxb", + "json", + "serialization", + "xml" ] }, { - "name": "knplabs/knp-menu", - "version": "v1.1.2", - "version_normalized": "1.1.2.0", + "name": "willdurand/jsonp-callback-validator", + "version": "v1.1.0", + "version_normalized": "1.1.0.0", "source": { "type": "git", - "url": "https://github.com/KnpLabs/KnpMenu.git", - "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873" + "url": "https://github.com/willdurand/JsonpCallbackValidator.git", + "reference": "1a7d388bb521959e612ef50c5c7b1691b097e909" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/f8e867268f63f561c1adadd6cbb5d8524f921873", - "reference": "f8e867268f63f561c1adadd6cbb5d8524f921873", + "url": "https://api.github.com/repos/willdurand/JsonpCallbackValidator/zipball/1a7d388bb521959e612ef50c5c7b1691b097e909", + "reference": "1a7d388bb521959e612ef50c5c7b1691b097e909", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { - "pimple/pimple": "*", - "silex/silex": "1.0.*", - "twig/twig": ">=1.2,<2.0-dev" + "phpunit/phpunit": "~3.7" }, - "suggest": { - "pimple/pimple": "for the built-in implementations of the menu provider and renderer provider", - "silex/silex": "for the integration with your silex application", - "twig/twig": "for the TwigRenderer and the integration with your templates" + "time": "2014-01-20 22:35:06", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "JsonpCallbackValidator": "src/" + } }, - "time": "2012-06-10 16:20:40", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "William DURAND", + "email": "william.durand1@gmail.com", + "homepage": "http://www.willdurand.fr" + } + ], + "description": "JSONP callback validator." + }, + { + "name": "willdurand/negotiation", + "version": "1.3.3", + "version_normalized": "1.3.3.0", + "source": { + "type": "git", + "url": "https://github.com/willdurand/Negotiation.git", + "reference": "a98fb6b9808610c1aa326c736893d3d77d9383b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/willdurand/Negotiation/zipball/a98fb6b9808610c1aa326c736893d3d77d9383b6", + "reference": "a98fb6b9808610c1aa326c736893d3d77d9383b6", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2014-05-16 12:34:51", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.3-dev" } }, "installation-source": "dist", "autoload": { "psr-0": { - "Knp\\Menu\\": "src/" + "Negotiation": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2106,51 +2113,128 @@ ], "authors": [ { - "name": "Christophe Coevoet", - "email": "stof@notk.org" + "name": "William Durand", + "email": "william.durand1@gmail.com", + "homepage": "http://www.willdurand.fr" + } + ], + "description": "Content Negotiation tools for PHP provided as a standalone library.", + "homepage": "http://williamdurand.fr/Negotiation/", + "keywords": [ + "accept", + "content", + "format", + "header", + "negotiation" + ] + }, + { + "name": "friendsofsymfony/comment-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "FOS/CommentBundle", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfSymfony/FOSCommentBundle.git", + "reference": "efc2fc63e85b306b165d9afceac630e3ebfa089f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSCommentBundle/zipball/efc2fc63e85b306b165d9afceac630e3ebfa089f", + "reference": "efc2fc63e85b306b165d9afceac630e3ebfa089f", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.0", + "jms/serializer-bundle": "~0.11", + "php": ">=5.3.2", + "symfony/form": "~2.1", + "symfony/framework-bundle": "~2.1", + "symfony/security-bundle": "~2.1", + "symfony/twig-bundle": "~2.1", + "symfony/validator": "~2.1", + "symfony/yaml": "~2.1" + }, + "require-dev": { + "doctrine/doctrine-bundle": "~1.1", + "doctrine/orm": "~2.3", + "friendsofsymfony/user-bundle": "~1.1", + "ornicar/akismet-bundle": "dev-master", + "symfony/assetic-bundle": "~2.1", + "symfony/browser-kit": "~2.1", + "symfony/css-selector": "~2.1", + "symfony/expression-language": "~2.4" + }, + "suggest": { + "friendsofsymfony/user-bundle": "Allows for user integration.", + "ornicar/akismet-bundle": "Integrate Akismet for spamdetection." + }, + "time": "2014-04-27 10:12:44", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "FOS\\CommentBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Nagel", + "email": "tim@nagel.com.au" }, { - "name": "KnpLabs", - "homepage": "http://knplabs.com" + "name": "FriendsOfSymfony Community", + "homepage": "https://github.com/friendsofsymfony/FOSCommentBundle/contributors" }, { - "name": "Symfony Community", - "homepage": "https://github.com/KnpLabs/KnpMenu/contributors" + "name": "Alexander Mols", + "email": "iam.asm89@gmail.com", + "homepage": "http://asm89.github.io/" } ], - "description": "An object oriented menu library", - "homepage": "http://knplabs.com", + "description": "This Bundle provides threaded comment functionality for Symfony2 applications", + "homepage": "http://friendsofsymfony.github.com", "keywords": [ - "menu", - "tree" + "comment", + "forum", + "threads" ] }, { - "name": "knplabs/knp-menu-bundle", - "version": "v1.1.2", - "version_normalized": "1.1.2.0", - "target-dir": "Knp/Bundle/MenuBundle", + "name": "sonata-project/doctrine-extensions", + "version": "1.0.2", + "version_normalized": "1.0.2.0", "source": { "type": "git", - "url": "https://github.com/KnpLabs/KnpMenuBundle.git", - "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9" + "url": "https://github.com/sonata-project/sonata-doctrine-extensions.git", + "reference": "4c6e9bd3ac9ef4c2f19e552a63d4926db5a9400f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/2fecac02614e5a006f674dd5dd754eeaeca060b9", - "reference": "2fecac02614e5a006f674dd5dd754eeaeca060b9", + "url": "https://api.github.com/repos/sonata-project/sonata-doctrine-extensions/zipball/4c6e9bd3ac9ef4c2f19e552a63d4926db5a9400f", + "reference": "4c6e9bd3ac9ef4c2f19e552a63d4926db5a9400f", "shasum": "" }, "require": { - "knplabs/knp-menu": "~1.1", - "symfony/framework-bundle": "~2.0" + "doctrine/dbal": "~2.2", + "php": ">=5.3.2" }, - "time": "2013-05-25 10:20:03", - "type": "symfony-bundle", + "time": "2014-02-14 12:45:49", + "type": "library", "installation-source": "dist", "autoload": { - "psr-0": { - "Knp\\Bundle\\MenuBundle": "" + "psr-4": { + "Sonata\\Doctrine\\": "src/", + "Sonata\\Doctrine\\Tests\\": "tests/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2159,66 +2243,66 @@ ], "authors": [ { - "name": "Christophe Coevoet", - "email": "stof@notk.org" - }, - { - "name": "Knplabs", - "homepage": "http://knplabs.com" + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" }, { - "name": "Symfony Community", - "homepage": "https://github.com/KnpLabs/KnpMenuBundle/contributors" + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/sonata-doctrine-extensions/contributors" } ], - "description": "This bundle provides an integration of the KnpMenu library", + "description": "Doctrine2 behavioral extensions", + "homepage": "https://github.com/sonata-project/sonata-doctrine-extensions", "keywords": [ - "menu" + "doctrine", + "doctrine2", + "json" ] }, { - "name": "pagerfanta/pagerfanta", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", + "name": "sonata-project/comment-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", "source": { "type": "git", - "url": "https://github.com/whiteoctober/Pagerfanta.git", - "reference": "9568187b789a39a3933c71e4e28b60fc2c26b70d" + "url": "https://github.com/sonata-project/SonataCommentBundle.git", + "reference": "601075c45eaa1df964e54f81b081eeedca78e386" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/whiteoctober/Pagerfanta/zipball/9568187b789a39a3933c71e4e28b60fc2c26b70d", - "reference": "9568187b789a39a3933c71e4e28b60fc2c26b70d", + "url": "https://api.github.com/repos/sonata-project/SonataCommentBundle/zipball/601075c45eaa1df964e54f81b081eeedca78e386", + "reference": "601075c45eaa1df964e54f81b081eeedca78e386", "shasum": "" }, "require": { - "php": ">=5.3.0" + "friendsofsymfony/comment-bundle": "~2.0@dev", + "sonata-project/core-bundle": "~2.2", + "sonata-project/doctrine-extensions": "~1.0", + "sonata-project/easy-extends-bundle": "~2.1", + "symfony/console": "~2.2", + "symfony/form": "~2.2", + "symfony/http-foundation": "~2.2", + "symfony/security": "~2.2" }, "require-dev": { - "doctrine/mongodb-odm": "*", - "doctrine/orm": "2.*", - "mandango/mandango": "*", - "propel/propel1": "~1.6", - "solarium/solarium": "dev-develop" + "sonata-project/classification-bundle": "~2.2", + "sonata-project/media-bundle": "~2.2" }, "suggest": { - "doctrine/mongodb-odm": "To use the DoctrineODMMongoDBAdapter.", - "doctrine/orm": "To use the DoctrineORMAdapter.", - "mandango/mandango": "To use the MandangoAdapter.", - "propel/propel1": "To use the PropelAdapter", - "solarium/solarium": "To use the SolariumAdapter." + "sonata-project/doctrine-orm-admin-bundle": "~2.2" }, - "time": "2013-09-23 08:06:55", - "type": "library", + "time": "2014-05-14 16:30:38", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.2.x-dev" } }, - "installation-source": "dist", + "installation-source": "source", "autoload": { - "psr-0": { - "Pagerfanta\\": "src/" + "psr-4": { + "Sonata\\CommentBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2227,56 +2311,51 @@ ], "authors": [ { - "name": "Pablo Díez", - "email": "pablodip@gmail.com", - "homepage": "http://github.com/pablodip" + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataCommentBundle/contributors" } ], - "description": "Pagination for PHP 5.3", + "description": "Symfony SonataCommentBundle", + "homepage": "http://sonata-project.org/bundles/comment", "keywords": [ - "page", - "pagination", - "paginator", - "paging" + "comment", + "sonata" ] }, { - "name": "white-october/pagerfanta-bundle", - "version": "dev-master", - "version_normalized": "9999999-dev", - "target-dir": "WhiteOctober/PagerfantaBundle", + "name": "mopa/composer-bridge", + "version": "v1.3.0", + "version_normalized": "1.3.0.0", "source": { "type": "git", - "url": "https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle.git", - "reference": "35c8e2124ffa62b14f09dd357c78ade58ac444bc" + "url": "https://github.com/phiamo/MopaComposerBridge.git", + "reference": "4ce791bfeabc5261da11cf4a949745d60dae711f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/whiteoctober/WhiteOctoberPagerfantaBundle/zipball/35c8e2124ffa62b14f09dd357c78ade58ac444bc", - "reference": "35c8e2124ffa62b14f09dd357c78ade58ac444bc", + "url": "https://api.github.com/repos/phiamo/MopaComposerBridge/zipball/4ce791bfeabc5261da11cf4a949745d60dae711f", + "reference": "4ce791bfeabc5261da11cf4a949745d60dae711f", "shasum": "" }, "require": { - "pagerfanta/pagerfanta": "1.0.*", - "symfony/framework-bundle": "~2.2", - "symfony/property-access": "~2.2", - "symfony/twig-bundle": "~2.2" - }, - "require-dev": { - "phpunit/phpunit": "~3.7", - "symfony/symfony": "~2.2" + "symfony/console": "2.*" }, - "time": "2014-01-30 11:03:51", - "type": "symfony-bundle", + "time": "2013-09-10 10:06:34", + "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.3.x-dev" } }, - "installation-source": "source", + "installation-source": "dist", "autoload": { "psr-0": { - "WhiteOctober\\PagerfantaBundle": "" + "Mopa\\Bridge\\Composer": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2285,15 +2364,4861 @@ ], "authors": [ { - "name": "Pablo Díez", - "email": "pablodip@gmail.com", - "homepage": "http://github.com/pablodip" + "name": "Philipp A. Mohrenweiser", + "email": "phiamo@googlemail.com", + "homepage": "http://bootstrap.mohrenweiserpartner.de" + }, + { + "name": "Community contributions", + "homepage": "https://github.com/phiamo/MopaComposerBridge/contributors" } ], - "description": "Bundle to use Pagerfanta with Symfony2", + "description": "Symfony2 Composer Bridge", + "homepage": "http://bootstrap.mohrenweiserpartner.de", "keywords": [ - "page", - "paging" + "Symfony2", + "composer" + ] + }, + { + "name": "mopa/bootstrap-bundle", + "version": "v3.0.0-beta3", + "version_normalized": "3.0.0.0-beta3", + "target-dir": "Mopa/Bundle/BootstrapBundle", + "source": { + "type": "git", + "url": "https://github.com/phiamo/MopaBootstrapBundle.git", + "reference": "94f0628a0abff3bed46ebc640137a9f0d6bb0cff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phiamo/MopaBootstrapBundle/zipball/94f0628a0abff3bed46ebc640137a9f0d6bb0cff", + "reference": "94f0628a0abff3bed46ebc640137a9f0d6bb0cff", + "shasum": "" + }, + "require": { + "mopa/composer-bridge": "~1.3", + "symfony/console": "~2.3", + "symfony/form": "~2.3", + "symfony/framework-bundle": "~2.3", + "symfony/twig-bundle": "~2.3" + }, + "suggest": { + "craue/formflow-bundle": "~2.0", + "jlong/sass-twitter-bootstrap": "dev-master", + "knplabs/knp-menu-bundle": "~2.0@dev", + "knplabs/knp-paginator-bundle": "~2.3", + "mopa/bootstrap-sandbox-bundle": "~2.3", + "twbs/bootstrap": ">2.0,<4.0-dev" + }, + "time": "2013-10-25 11:56:03", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Mopa\\Bundle\\BootstrapBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Philipp A. Mohrenweiser", + "email": "phiamo@googlemail.com", + "homepage": "http://bootstrap.mohrenweiserpartner.de" + }, + { + "name": "Community contributions", + "homepage": "https://github.com/phiamo/MopaBootstrapBundle/contributors" + } + ], + "description": "Easy integration of twitters bootstrap into symfony2", + "keywords": [ + "bootstrap", + "bootstrap form", + "extra form", + "form", + "template" + ] + }, + { + "name": "twbs/bootstrap", + "version": "v3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git", + "reference": "e8a1df5f060bf7e6631554648e0abde150aedbe4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twbs/bootstrap/zipball/e8a1df5f060bf7e6631554648e0abde150aedbe4", + "reference": "e8a1df5f060bf7e6631554648e0abde150aedbe4", + "shasum": "" + }, + "time": "2013-08-19 21:18:20", + "type": "library", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "sugeng tigefa", + "email": "tigefa@gmail.com" + }, + { + "name": "Jacob Thornton", + "email": "jacobthornton@gmail.com" + } + ], + "description": "Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.", + "homepage": "http://getbootstrap.com", + "keywords": [ + "bootstrap", + "css" + ] + }, + { + "name": "gedmo/doctrine-extensions", + "version": "v2.3.9", + "version_normalized": "2.3.9.0", + "source": { + "type": "git", + "url": "https://github.com/Atlantic18/DoctrineExtensions.git", + "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54", + "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54", + "shasum": "" + }, + "require": { + "doctrine/common": ">=2.2,<2.5-dev", + "php": ">=5.3.2" + }, + "require-dev": { + "doctrine/common": ">=2.4.0-RC3", + "doctrine/dbal": ">=2.4.0-RC1", + "doctrine/mongodb": ">=1.0.3", + "doctrine/mongodb-odm": ">=1.0.0-BETA9", + "doctrine/orm": ">=2.4.0-RC1", + "symfony/yaml": "2.3.1" + }, + "suggest": { + "doctrine/dbal": ">=2.3.2", + "doctrine/mongodb": ">=1.0.1", + "doctrine/mongodb-odm": ">=1.0.0-BETA7", + "doctrine/orm": ">=2.3.2" + }, + "time": "2014-01-12 16:34:06", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Gedmo\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "David Buchmann", + "email": "david@liip.ch" + }, + { + "name": "Gediminas Morkevicius", + "email": "gediminas.morkevicius@gmail.com" + }, + { + "name": "Gustavo Falco", + "email": "comfortablynumb84@gmail.com" + } + ], + "description": "Doctrine2 behavioral extensions", + "homepage": "http://gediminasm.org/", + "keywords": [ + "Blameable", + "behaviors", + "doctrine2", + "extensions", + "gedmo", + "loggable", + "nestedset", + "sluggable", + "sortable", + "timestampable", + "translatable", + "tree", + "uploadable" + ] + }, + { + "name": "jbroadway/urlify", + "version": "1.0.0-stable", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/jbroadway/urlify.git", + "reference": "2fa0f7b38d4faebbb94f62e97bd86e740e68f75a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jbroadway/urlify/zipball/2fa0f7b38d4faebbb94f62e97bd86e740e68f75a", + "reference": "2fa0f7b38d4faebbb94f62e97bd86e740e68f75a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2013-02-11 14:41:22", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "URLify": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Johnny Broadway", + "email": "johnny@johnnybroadway.com", + "homepage": "http://www.johnnybroadway.com/", + "role": "Main Developer" + } + ], + "description": "PHP port of URLify.js from the Django project. Transliterates non-ascii characters for use in URLs.", + "homepage": "https://github.com/jbroadway/urlify", + "keywords": [ + "encode", + "iconv", + "link", + "slug", + "translit", + "transliterate", + "transliteration", + "url", + "urlify" + ] + }, + { + "name": "justinrainbow/json-schema", + "version": "1.3.6", + "version_normalized": "1.3.6.0", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "d97cf3ce890fe80f247fc08594a1c8a1029fc7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/d97cf3ce890fe80f247fc08594a1c8a1029fc7ed", + "reference": "d97cf3ce890fe80f247fc08594a1c8a1029fc7ed", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "json-schema/json-schema-test-suite": "1.1.0", + "phpdocumentor/phpdocumentor": "~2", + "phpunit/phpunit": "~3.7" + }, + "time": "2014-03-05 15:03:52", + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "JsonSchema": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch", + "homepage": "http://wiedler.ch/igor/" + }, + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com", + "homepage": "http://digitalkaoz.net" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ] + }, + { + "name": "seld/jsonlint", + "version": "1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "7cd4c4965e17e6e4c07f26d566619a4c76f8c672" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/7cd4c4965e17e6e4c07f26d566619a4c76f8c672", + "reference": "7cd4c4965e17e6e4c07f26d566619a4c76f8c672", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2013-11-04 15:41:11", + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Seld\\JsonLint": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be", + "role": "Developer" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ] + }, + { + "name": "composer/composer", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "ac497feabaa0d247c441178b7b4aaa4c61b07399" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/ac497feabaa0d247c441178b7b4aaa4c61b07399", + "reference": "ac497feabaa0d247c441178b7b4aaa4c61b07399", + "shasum": "" + }, + "require": { + "justinrainbow/json-schema": "~1.1", + "php": ">=5.3.2", + "seld/jsonlint": "1.*", + "symfony/console": "~2.3", + "symfony/finder": "~2.2", + "symfony/process": "~2.1" + }, + "require-dev": { + "phpunit/phpunit": "~3.7.10" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives, and allows gzip compression of all internet traffic" + }, + "time": "2014-06-10 14:13:12", + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Composer": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be", + "role": "Developer" + }, + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de", + "role": "Developer" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", + "homepage": "http://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ] + }, + { + "name": "doctrine/migrations", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "46a031ddaea47d0685200027cfe8c83b02aee6f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/46a031ddaea47d0685200027cfe8c83b02aee6f6", + "reference": "46a031ddaea47d0685200027cfe8c83b02aee6f6", + "shasum": "" + }, + "require": { + "doctrine/dbal": "~2.0", + "php": ">=5.3.2" + }, + "require-dev": { + "symfony/console": "2.*", + "symfony/yaml": "2.*" + }, + "suggest": { + "symfony/console": "to run the migration from the console" + }, + "time": "2014-03-16 19:02:43", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Doctrine\\DBAL\\Migrations": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL" + ], + "authors": [ + { + "name": "Jonathan H. Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + } + ], + "description": "Database Schema migrations using Doctrine DBAL", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "migrations" + ] + }, + { + "name": "jms/security-extra-bundle", + "version": "1.5.1", + "version_normalized": "1.5.1.0", + "target-dir": "JMS/SecurityExtraBundle", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/JMSSecurityExtraBundle.git", + "reference": "f5f6c6df69ceae8b709e57b49fcc2a42d9280bcc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/JMSSecurityExtraBundle/zipball/f5f6c6df69ceae8b709e57b49fcc2a42d9280bcc", + "reference": "f5f6c6df69ceae8b709e57b49fcc2a42d9280bcc", + "shasum": "" + }, + "require": { + "jms/aop-bundle": "~1.0", + "jms/di-extra-bundle": "~1.3", + "jms/metadata": "~1.0", + "jms/parser-lib": "~1.0", + "symfony/framework-bundle": "~2.1", + "symfony/security-bundle": "*" + }, + "require-dev": { + "doctrine/doctrine-bundle": "*", + "doctrine/orm": "*", + "sensio/framework-extra-bundle": "*", + "symfony/browser-kit": "*", + "symfony/class-loader": "*", + "symfony/css-selector": "*", + "symfony/finder": "*", + "symfony/form": "*", + "symfony/process": "*", + "symfony/twig-bundle": "*", + "symfony/validator": "*", + "symfony/yaml": "*" + }, + "time": "2013-06-09 10:29:54", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "JMS\\SecurityExtraBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache2" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Enhances the Symfony2 Security Component by adding several new features", + "homepage": "http://jmsyst.com/bundles/JMSSecurityExtraBundle", + "keywords": [ + "annotations", + "authorization", + "expression", + "secure", + "security" + ] + }, + { + "name": "doctrine/doctrine-migrations-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Doctrine/Bundle/MigrationsBundle", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", + "reference": "f7138381aa884c0f679da4de41e369b94ead9cd3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/f7138381aa884c0f679da4de41e369b94ead9cd3", + "reference": "f7138381aa884c0f679da4de41e369b94ead9cd3", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "~1.0", + "doctrine/migrations": "~1.0@dev", + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1" + }, + "time": "2014-03-20 14:48:55", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Doctrine\\Bundle\\MigrationsBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org" + } + ], + "description": "Symfony DoctrineMigrationsBundle", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "dbal", + "migrations", + "schema" + ] + }, + { + "name": "sonata-project/markitup-bundle", + "version": "2.1.0", + "version_normalized": "2.1.0.0", + "target-dir": "Sonata/MarkItUpBundle", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataMarkItUpBundle.git", + "reference": "869b85ba924aa2333e5464bc0193813c31ea5859" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataMarkItUpBundle/zipball/869b85ba924aa2333e5464bc0193813c31ea5859", + "reference": "869b85ba924aa2333e5464bc0193813c31ea5859", + "shasum": "" + }, + "require": { + "sonata-project/jquery-bundle": "1.*" + }, + "time": "2013-02-25 13:32:15", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-2.0": "2.0.x-dev", + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Sonata\\MarkItUpBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Jay Salvat", + "homepage": "http://jaysalvat.com" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataMarkItUpBundle/contributors" + } + ], + "description": "Symfony SonataMarkItUpBundle", + "homepage": "http://sonata-project.org/bundles/markitup", + "keywords": [ + "bbcode", + "editor", + "html", + "jquery", + "markdown", + "markitup", + "markup", + "sonata", + "textile", + "wiki" + ] + }, + { + "name": "twig/extensions", + "version": "v1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/fabpot/Twig-extensions.git", + "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/f91a82ec225e5bb108e01a0f93c9be04f84dcfa0", + "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0", + "shasum": "" + }, + "require": { + "twig/twig": "~1.0" + }, + "time": "2013-10-18 19:37:15", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Twig_Extensions_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "Common additional features for Twig that do not directly belong in core", + "homepage": "https://github.com/fabpot/Twig-extensions", + "keywords": [ + "debug", + "i18n", + "text" + ] + }, + { + "name": "sensio/distribution-bundle", + "version": "v2.3.4", + "version_normalized": "2.3.4.0", + "target-dir": "Sensio/Bundle/DistributionBundle", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", + "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/66df91b4bd637a83299d8072aed3658bfd3b3021", + "reference": "66df91b4bd637a83299d8072aed3658bfd3b3021", + "shasum": "" + }, + "require": { + "symfony/framework-bundle": "~2.2" + }, + "time": "2013-08-22 05:04:53", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Sensio\\Bundle\\DistributionBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "The base bundle for the Symfony Distributions", + "keywords": [ + "configuration", + "distribution" + ] + }, + { + "name": "sensio/generator-bundle", + "version": "v2.3.4", + "version_normalized": "2.3.4.0", + "target-dir": "Sensio/Bundle/GeneratorBundle", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", + "reference": "4a7b126e9c22f858e3584b19ddce6e5bdd7677ee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/4a7b126e9c22f858e3584b19ddce6e5bdd7677ee", + "reference": "4a7b126e9c22f858e3584b19ddce6e5bdd7677ee", + "shasum": "" + }, + "require": { + "symfony/console": "~2.0", + "symfony/framework-bundle": "~2.2" + }, + "require-dev": { + "doctrine/orm": "~2.2,>=2.2.3", + "symfony/doctrine-bridge": "~2.2", + "twig/twig": "~1.11" + }, + "time": "2013-08-21 18:09:35", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Sensio\\Bundle\\GeneratorBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "This bundle generates code for you" + }, + { + "name": "symfony-cmf/routing", + "version": "1.2.0", + "version_normalized": "1.2.0.0", + "target-dir": "Symfony/Cmf/Component/Routing", + "source": { + "type": "git", + "url": "https://github.com/symfony-cmf/Routing.git", + "reference": "c67258b875eef3cb08009bf1428499d0f01ce5e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/c67258b875eef3cb08009bf1428499d0f01ce5e7", + "reference": "c67258b875eef3cb08009bf1428499d0f01ce5e7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "psr/log": "~1.0", + "symfony/http-kernel": "~2.2", + "symfony/routing": "~2.2" + }, + "require-dev": { + "symfony/config": "~2.2", + "symfony/dependency-injection": "~2.0", + "symfony/event-dispatcher": "~2.1" + }, + "suggest": { + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version ~2.1" + }, + "time": "2014-05-08 19:37:14", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Cmf\\Component\\Routing": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/Routing/contributors" + } + ], + "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", + "homepage": "http://cmf.symfony.com", + "keywords": [ + "database", + "routing" + ] + }, + { + "name": "michelf/php-markdown", + "version": "1.4.1", + "version_normalized": "1.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-markdown.git", + "reference": "de9a19c7bf352d41cc99ed86c3c0ef17e87394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-markdown/zipball/de9a19c7bf352d41cc99ed86c3c0ef17e87394b6", + "reference": "de9a19c7bf352d41cc99ed86c3c0ef17e87394b6", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2014-05-05 02:43:50", + "type": "library", + "extra": { + "branch-alias": { + "dev-lib": "1.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Michelf": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "http://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "http://daringfireball.net/" + } + ], + "description": "PHP Markdown", + "homepage": "http://michelf.ca/projects/php-markdown/", + "keywords": [ + "markdown" + ] + }, + { + "name": "nelmio/api-doc-bundle", + "version": "2.5.2", + "version_normalized": "2.5.2.0", + "target-dir": "Nelmio/ApiDocBundle", + "source": { + "type": "git", + "url": "https://github.com/nelmio/NelmioApiDocBundle.git", + "reference": "fa920111260e350ea17942c77c811762e965cbdc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/fa920111260e350ea17942c77c811762e965cbdc", + "reference": "fa920111260e350ea17942c77c811762e965cbdc", + "shasum": "" + }, + "require": { + "michelf/php-markdown": "~1.4", + "symfony/console": "~2.1", + "symfony/framework-bundle": "~2.1", + "symfony/twig-bundle": "~2.1" + }, + "conflict": { + "jms/serializer": "<0.12", + "jms/serializer-bundle": "<0.11" + }, + "require-dev": { + "friendsofsymfony/rest-bundle": "~1.0", + "jms/serializer-bundle": ">=0.11", + "sensio/framework-extra-bundle": "~2.1", + "symfony/browser-kit": "~2.1", + "symfony/css-selector": "~2.1", + "symfony/form": "~2.1", + "symfony/validator": "~2.1", + "symfony/yaml": "~2.1" + }, + "suggest": { + "friendsofsymfony/rest-bundle": "For making use of REST information in the doc.", + "jms/serializer": "For making use of serializer information in the doc.", + "symfony/form": "For using form definitions as input.", + "symfony/validator": "For making use of validator information in the doc." + }, + "time": "2014-05-16 09:33:58", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.5.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Nelmio\\ApiDocBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nelmio", + "homepage": "http://nelm.io" + }, + { + "name": "Symfony Community", + "homepage": "https://github.com/nelmio/NelmioApiDocBundle/contributors" + } + ], + "description": "Generates documentation for your REST API from annotations", + "keywords": [ + "api", + "doc", + "documentation", + "rest" + ] + }, + { + "name": "symfony-cmf/routing-bundle", + "version": "1.2.0", + "version_normalized": "1.2.0.0", + "target-dir": "Symfony/Cmf/Bundle/RoutingBundle", + "source": { + "type": "git", + "url": "https://github.com/symfony-cmf/RoutingBundle.git", + "reference": "46937814d7430e637940714abf1e48cea4996ea4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-cmf/RoutingBundle/zipball/46937814d7430e637940714abf1e48cea4996ea4", + "reference": "46937814d7430e637940714abf1e48cea4996ea4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony-cmf/routing": "~1.2.0", + "symfony/framework-bundle": "~2.3" + }, + "require-dev": { + "doctrine/orm": "2.3.*", + "matthiasnoback/symfony-config-test": "0.*", + "matthiasnoback/symfony-dependency-injection-test": "0.*", + "sonata-project/doctrine-phpcr-admin-bundle": "1.1.*", + "symfony-cmf/core-bundle": "~1.1", + "symfony-cmf/testing": "1.1.*", + "symfony/monolog-bundle": "2.3.*" + }, + "suggest": { + "doctrine/orm": "To enable support for the ORM entities", + "doctrine/phpcr-bundle": "To enable support for the PHPCR ODM documents", + "doctrine/phpcr-odm": "To enable support for the PHPCR ODM documents", + "sonata-project/doctrine-phpcr-admin-bundle": "To provide an admin interface for the PHPCR ODM documents", + "symfony-cmf/content-bundle": "To optionally use the configured value for 'content_basepath' from the CoreBundle", + "symfony-cmf/core-bundle": "To use the provided Doctrine\\Phpcr documents and for easier configuration" + }, + "time": "2014-05-08 19:39:23", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Cmf\\Bundle\\RoutingBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/RoutingBundle/contributors" + } + ], + "description": "Symfony RoutingBundle", + "homepage": "http://cmf.symfony.com", + "keywords": [ + "database", + "routing" + ] + }, + { + "name": "sonata-project/exporter", + "version": "1.3.3", + "version_normalized": "1.3.3.0", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/exporter.git", + "reference": "dad681274e09854a972a0c882ebddd095b7837be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/exporter/zipball/dad681274e09854a972a0c882ebddd095b7837be", + "reference": "dad681274e09854a972a0c882ebddd095b7837be", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "propel/propel1": "~1.6", + "symfony/property-access": "~2.2", + "symfony/routing": "*" + }, + "suggest": { + "ext-curl": "*", + "propel/propel1": "~1.6", + "symfony/property-access": "~2.2", + "symfony/routing": "*" + }, + "time": "2013-10-24 13:43:33", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Exporter": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@gmail.com", + "homepage": "http://sonata-project.org/" + } + ], + "description": "Lightweight Exporter library", + "homepage": "https://github.com/sonata-project/Exporter", + "keywords": [ + "client", + "csv", + "data", + "export", + "xls" + ] + }, + { + "name": "egeloen/json-builder", + "version": "1.0.0", + "version_normalized": "1.0.0.0", + "target-dir": "Ivory/JsonBuilder", + "source": { + "type": "git", + "url": "https://github.com/egeloen/ivory-json-builder.git", + "reference": "873454440f6a84867fb2908d86254b0dabf8644b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egeloen/ivory-json-builder/zipball/873454440f6a84867fb2908d86254b0dabf8644b", + "reference": "873454440f6a84867fb2908d86254b0dabf8644b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/property-access": "2.*" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "time": "2014-02-02 13:54:43", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Ivory\\JsonBuilder": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + } + ], + "description": "JSON builder with escaping control for PHP 5.3+", + "keywords": [ + "Escape", + "builder", + "json" + ] + }, + { + "name": "kriswallsmith/buzz", + "version": "v0.10", + "version_normalized": "0.10.0.0", + "source": { + "type": "git", + "url": "https://github.com/kriswallsmith/Buzz.git", + "reference": "759432d66387e3433d3b06cb6f773b97225b9b17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kriswallsmith/Buzz/zipball/759432d66387e3433d3b06cb6f773b97225b9b17", + "reference": "759432d66387e3433d3b06cb6f773b97225b9b17", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "suggest": { + "ext-curl": "*" + }, + "time": "2013-05-19 03:41:15", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Buzz": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com", + "homepage": "http://kriswallsmith.net/" + } + ], + "description": "Lightweight HTTP client", + "homepage": "https://github.com/kriswallsmith/Buzz", + "keywords": [ + "curl", + "http client" + ] + }, + { + "name": "sonata-project/google-authenticator", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/GoogleAuthenticator.git", + "reference": "72f47caddd09d09c0d3c3e046f6b435e0c004cd4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/GoogleAuthenticator/zipball/72f47caddd09d09c0d3c3e046f6b435e0c004cd4", + "reference": "72f47caddd09d09c0d3c3e046f6b435e0c004cd4", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2014-03-31 09:18:53", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Authenticator\\": "lib/", + "Google\\Authenticator\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@gmail.com", + "homepage": "http://sonata-project.org/" + }, + { + "name": "Christian Stocker", + "email": "me@chregu.tv" + }, + { + "name": "Andre DeMarre", + "homepage": "http://www.devnetwork.net/viewtopic.php?f=50&t=94989" + } + ], + "description": "Library to integrate Google Authenticator into a PHP project", + "homepage": "https://github.com/sonata-project/GoogleAuthenticator", + "keywords": [ + "google authenticator" + ] + }, + { + "name": "simplethings/entity-audit-bundle", + "version": "v0.6", + "version_normalized": "0.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplethings/EntityAudit.git", + "reference": "c8f3fc50a7384c0c44798de4675f870890097e26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplethings/EntityAudit/zipball/c8f3fc50a7384c0c44798de4675f870890097e26", + "reference": "c8f3fc50a7384c0c44798de4675f870890097e26", + "shasum": "" + }, + "require": { + "doctrine/orm": "~2.1" + }, + "require-dev": { + "symfony/framework-bundle": "~2.0" + }, + "time": "2014-05-09 09:58:26", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "SimpleThings\\EntityAudit": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "New BSD" + ], + "description": "Audit for Doctrine Entities", + "keywords": [ + "Audit", + "database", + "persistence" + ] + }, + { + "name": "friendsofsymfony/advanced-encoder-bundle", + "version": "v1.1.0", + "version_normalized": "1.1.0.0", + "target-dir": "FOS/AdvancedEncoderBundle", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfSymfony/FOSAdvancedEncoderBundle.git", + "reference": "55624532a8b51cc449c06fa55cbcd441450d378d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSAdvancedEncoderBundle/zipball/55624532a8b51cc449c06fa55cbcd441450d378d", + "reference": "55624532a8b51cc449c06fa55cbcd441450d378d", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1", + "symfony/security-bundle": "~2.1" + }, + "time": "2014-03-13 13:32:21", + "type": "symfony-bundle", + "installation-source": "dist", + "autoload": { + "psr-0": { + "FOS\\AdvancedEncoderBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Symfony2 bundle adding a way to specify the encoder on a user instance basis", + "homepage": "https://github.com/friendsofsymfony/FOSAdvancedEncoderBundle", + "keywords": [ + "Symfony2", + "encoder", + "security" + ] + }, + { + "name": "incenteev/composer-parameter-handler", + "version": "v2.1.0", + "version_normalized": "2.1.0.0", + "target-dir": "Incenteev/ParameterHandler", + "source": { + "type": "git", + "url": "https://github.com/Incenteev/ParameterHandler.git", + "reference": "143272a0a09c62616a3c8011fc165a10c6b35241" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/143272a0a09c62616a3c8011fc165a10c6b35241", + "reference": "143272a0a09c62616a3c8011fc165a10c6b35241", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/yaml": "~2.0" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpspec/prophecy-phpunit": "~1.0", + "symfony/filesystem": "~2.2" + }, + "time": "2013-12-07 10:10:39", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Incenteev\\ParameterHandler": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Composer script handling your ignored parameter file", + "homepage": "https://github.com/Incenteev/ParameterHandler", + "keywords": [ + "parameters management" + ] + }, + { + "name": "symfony/icu", + "version": "v1.2.1", + "version_normalized": "1.2.1.0", + "target-dir": "Symfony/Component/Icu", + "source": { + "type": "git", + "url": "https://github.com/symfony/Icu.git", + "reference": "98e197da54df1f966dd5e8a4992135703569c987" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Icu/zipball/98e197da54df1f966dd5e8a4992135703569c987", + "reference": "98e197da54df1f966dd5e8a4992135703569c987", + "shasum": "" + }, + "require": { + "lib-icu": ">=4.4", + "php": ">=5.3.3", + "symfony/intl": "~2.3" + }, + "time": "2013-10-04 10:06:38", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Component\\Icu\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Contains an excerpt of the ICU data and classes to load it.", + "homepage": "http://symfony.com", + "keywords": [ + "icu", + "intl" + ] + }, + { + "name": "symfony/assetic-bundle", + "version": "v2.3.0", + "version_normalized": "2.3.0.0", + "target-dir": "Symfony/Bundle/AsseticBundle", + "source": { + "type": "git", + "url": "https://github.com/symfony/AsseticBundle.git", + "reference": "146dd3cb46b302bd471560471c6aaa930483dac1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/AsseticBundle/zipball/146dd3cb46b302bd471560471c6aaa930483dac1", + "reference": "146dd3cb46b302bd471560471c6aaa930483dac1", + "shasum": "" + }, + "require": { + "kriswallsmith/assetic": "~1.1", + "php": ">=5.3.0", + "symfony/framework-bundle": "~2.1" + }, + "require-dev": { + "symfony/class-loader": "~2.1", + "symfony/console": "~2.1", + "symfony/css-selector": "~2.1", + "symfony/dom-crawler": "~2.1", + "symfony/form": "~2.1", + "symfony/twig-bundle": "~2.1", + "symfony/yaml": "~2.1" + }, + "suggest": { + "symfony/twig-bundle": "~2.1" + }, + "time": "2013-05-16 05:32:23", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Bundle\\AsseticBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com", + "homepage": "http://kriswallsmith.net/" + } + ], + "description": "Integrates Assetic into Symfony2", + "homepage": "https://github.com/symfony/AsseticBundle", + "keywords": [ + "assets", + "compression", + "minification" + ] + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v2.3.7", + "version_normalized": "2.3.7.0", + "target-dir": "Symfony/Bundle/SwiftmailerBundle", + "source": { + "type": "git", + "url": "https://github.com/symfony/SwiftmailerBundle.git", + "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/SwiftmailerBundle/zipball/e98defd402f72e8b54a029ba4d3ac4cb51dc3577", + "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "swiftmailer/swiftmailer": ">=4.2.0,~5.0", + "symfony/swiftmailer-bridge": "~2.1" + }, + "require-dev": { + "symfony/config": "~2.1", + "symfony/dependency-injection": "~2.1", + "symfony/http-kernel": "~2.1", + "symfony/yaml": "~2.1" + }, + "time": "2014-04-05 17:15:52", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Bundle\\SwiftmailerBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony SwiftmailerBundle", + "homepage": "http://symfony.com" + }, + { + "name": "sonata-project/core-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataCoreBundle.git", + "reference": "fdeb39d81d31f377b49e8bbfa2b72eb2d4ae1dcb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataCoreBundle/zipball/fdeb39d81d31f377b49e8bbfa2b72eb2d4ae1dcb", + "reference": "fdeb39d81d31f377b49e8bbfa2b72eb2d4ae1dcb", + "shasum": "" + }, + "require": { + "symfony/config": "~2.0", + "symfony/form": "~2.2", + "symfony/http-foundation": "~2.2", + "symfony/translation": "~2.2", + "twig/twig": "~1.12" + }, + "require-dev": { + "doctrine/orm": "~2.4", + "doctrine/phpcr-odm": "~1.0", + "friendsofsymfony/rest-bundle": "~1.1", + "jackalope/jackalope-doctrine-dbal": "~1.0", + "jms/serializer-bundle": "~0.11", + "sensio/framework-extra-bundle": "~2.2", + "sonata-project/exporter": "~1.3" + }, + "time": "2014-06-14 13:33:31", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\CoreBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataCoreBundle/contributors" + } + ], + "description": "Symfony SonataCoreBundle", + "homepage": "http://sonata-project.org/bundles/core", + "keywords": [ + "sonata" + ] + }, + { + "name": "sonata-project/cache", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/cache.git", + "reference": "d975c3f64f36054d37c1c5e1585fb6b1d34f872c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/cache/zipball/d975c3f64f36054d37c1c5e1585fb6b1d34f872c", + "reference": "d975c3f64f36054d37c1c5e1585fb6b1d34f872c", + "shasum": "" + }, + "require-dev": { + "doctrine/orm": "~2.2", + "doctrine/phpcr-odm": "~1.0", + "jackalope/jackalope-doctrine-dbal": "~1.0", + "predis/predis": "~0.8,<1.0", + "psr/log": "~1.0" + }, + "suggest": { + "doctrine/orm": "ORM support", + "doctrine/phpcr-odm": "PHPCR ODM support", + "ext-apc": "Caching with ext/apc", + "ext-memcached": "Caching with ext/memcached", + "predis/predis": "Install redis php" + }, + "time": "2014-06-10 13:04:43", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\Cache\\Tests\\": "test/", + "Sonata\\Cache\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@gmail.com", + "homepage": "http://sonata-project.org/" + } + ], + "description": "Cache library", + "homepage": "https://github.com/sonata-project/cache", + "keywords": [ + "cache", + "memcached", + "mongodb", + "redis" + ] + }, + { + "name": "sonata-project/datagrid-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataDatagridBundle.git", + "reference": "dba166c6c52591f1bfafa8514b848a3bae23a557" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataDatagridBundle/zipball/dba166c6c52591f1bfafa8514b848a3bae23a557", + "reference": "dba166c6c52591f1bfafa8514b848a3bae23a557", + "shasum": "" + }, + "require-dev": { + "doctrine/orm": "~2.4" + }, + "time": "2014-05-19 14:33:23", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\DatagridBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataDatagridBundle/contributors" + } + ], + "description": "Symfony SonataDatagridBundle", + "homepage": "http://sonata-project.org/bundles/datagrid", + "keywords": [ + "datagrid", + "sonata" + ] + }, + { + "name": "sonata-project/news-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataNewsBundle.git", + "reference": "31ec4a4d2116567d4b465c21cd6bc961eb91c1c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataNewsBundle/zipball/31ec4a4d2116567d4b465c21cd6bc961eb91c1c2", + "reference": "31ec4a4d2116567d4b465c21cd6bc961eb91c1c2", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.1", + "jms/serializer-bundle": "~0.11", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/admin-bundle": "~2.2,>=2.2.7", + "sonata-project/classification-bundle": "~2.2", + "sonata-project/core-bundle": "~2.2@dev", + "sonata-project/datagrid-bundle": "~2.2@dev", + "sonata-project/easy-extends-bundle": "~2.1", + "sonata-project/formatter-bundle": "~2.3", + "sonata-project/intl-bundle": "~2.1", + "sonata-project/media-bundle": "~2.2", + "sonata-project/user-bundle": "~2.2", + "symfony/symfony": "~2.3" + }, + "require-dev": { + "doctrine/orm": "*", + "sonata-project/doctrine-orm-admin-bundle": "2.2.*@dev", + "sonata-project/notification-bundle": "2.2.*@dev" + }, + "suggest": { + "sonata-project/doctrine-orm-admin-bundle": "~2.2.*", + "sonata-project/notification-bundle": "~2.*" + }, + "time": "2014-06-04 10:31:28", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\NewsBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataNewsBundle/contributors" + } + ], + "description": "Symfony SonataNewsBundle", + "homepage": "http://sonata-project.org/bundles/news", + "keywords": [ + "blog", + "news", + "post", + "sonata" + ] + }, + { + "name": "willdurand/faker-bundle", + "version": "1.2.1", + "version_normalized": "1.2.1.0", + "target-dir": "Bazinga/Bundle/FakerBundle", + "source": { + "type": "git", + "url": "https://github.com/willdurand/BazingaFakerBundle.git", + "reference": "381a5b55b689c19b4ff1e607611496a80db80e5a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/willdurand/BazingaFakerBundle/zipball/381a5b55b689c19b4ff1e607611496a80db80e5a", + "reference": "381a5b55b689c19b4ff1e607611496a80db80e5a", + "shasum": "" + }, + "require": { + "fzaninotto/faker": "~1.3", + "symfony/framework-bundle": "~2.1" + }, + "time": "2014-05-16 08:29:15", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Bazinga\\Bundle\\FakerBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "William Durand", + "email": "william.durand1@gmail.com", + "homepage": "http://www.willdurand.fr" + } + ], + "description": "Put the awesome Faker lib into the DIC and populate your database with fake data.", + "keywords": [ + "data", + "faker", + "fixtures" + ] + }, + { + "name": "sonata-project/block-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataBlockBundle.git", + "reference": "2bacc827aba3a73bc8cabaa9517627755f29c255" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataBlockBundle/zipball/2bacc827aba3a73bc8cabaa9517627755f29c255", + "reference": "2bacc827aba3a73bc8cabaa9517627755f29c255", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.3", + "sonata-project/cache": "~1.0", + "sonata-project/core-bundle": "~2.2", + "symfony/form": "~2.2", + "symfony/http-kernel": "~2.2" + }, + "require-dev": { + "knplabs/knp-menu-bundle": "~1.1", + "sonata-project/admin-bundle": "~2.2" + }, + "suggest": { + "knplabs/knp-menu-bundle": "~1.1", + "sonata-project/admin-bundle": "~2.2", + "sonata-project/cache-bundle": "~2.1" + }, + "time": "2014-06-14 12:59:02", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\BlockBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataBlockBundle/contributors" + } + ], + "description": "Symfony SonataBlockBundle", + "homepage": "http://sonata-project.org/bundles/block", + "keywords": [ + "block", + "sonata" + ] + }, + { + "name": "sonata-project/admin-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataAdminBundle.git", + "reference": "f3e49a32cdb354667b0693f1d893e96d80c69526" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataAdminBundle/zipball/f3e49a32cdb354667b0693f1d893e96d80c69526", + "reference": "f3e49a32cdb354667b0693f1d893e96d80c69526", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.2", + "knplabs/knp-menu": ">=1.1.0,<3.0.0", + "knplabs/knp-menu-bundle": ">=1.1.0,<3.0.0", + "sensio/generator-bundle": "~2.3", + "sonata-project/block-bundle": "~2.2,>=2.2.7", + "sonata-project/core-bundle": "~2.2", + "sonata-project/exporter": "~1.0", + "symfony/class-loader": "~2.3", + "symfony/config": "~2.3", + "symfony/console": "~2.3", + "symfony/form": "~2.3", + "symfony/http-foundation": "~2.3", + "symfony/routing": "~2.3", + "symfony/security-bundle": "~2.3", + "symfony/twig-bridge": "~2.3", + "symfony/validator": "~2.3", + "twig/extensions": "~1.0", + "twig/twig": "~1.15" + }, + "require-dev": { + "jms/translation-bundle": "~1.1", + "sonata-project/intl-bundle": "~2.1", + "symfony/yaml": "~2.3" + }, + "suggest": { + "jms/translation-bundle": "Extract message keys from Admins", + "sonata-project/intl-bundle": "Add localized date and number into the list" + }, + "time": "2014-06-12 09:47:42", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\AdminBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataAdminBundle/contributors" + } + ], + "description": "Symfony SonataAdminBundle", + "homepage": "http://sonata-project.org/bundles/admin", + "keywords": [ + "Admin Generator", + "admin", + "bootstrap", + "sonata" + ] + }, + { + "name": "sonata-project/doctrine-orm-admin-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataDoctrineORMAdminBundle.git", + "reference": "2705f193d6a441b9140fef0996ca392887130ec0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataDoctrineORMAdminBundle/zipball/2705f193d6a441b9140fef0996ca392887130ec0", + "reference": "2705f193d6a441b9140fef0996ca392887130ec0", + "shasum": "" + }, + "require": { + "doctrine/orm": "~2.3", + "sonata-project/admin-bundle": "~2.3@dev", + "sonata-project/exporter": "~1.3,>=1.3.1", + "symfony/console": "~2.3", + "symfony/doctrine-bridge": "~2.2", + "symfony/form": "~2.3", + "symfony/framework-bundle": "~2.2", + "symfony/security": "~2.3" + }, + "provide": { + "sonata-project/admin-bundle-persistency-layer": "1.0.0" + }, + "require-dev": { + "simplethings/entity-audit-bundle": "~0.1" + }, + "suggest": { + "simplethings/entity-audit-bundle": "If you want to support for versioning of entities and their associations." + }, + "time": "2014-06-10 21:07:08", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\DoctrineORMAdminBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataDoctrineORMAdminBundle/contributors" + } + ], + "description": "Symfony Sonata / Integrate Doctrine ORM into the SonataAdminBundle", + "homepage": "http://sonata-project.org/bundles/admin", + "keywords": [ + "Admin Generator", + "admin", + "bootstrap", + "generator", + "sonata" + ] + }, + { + "name": "sonata-project/intl-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataIntlBundle.git", + "reference": "292fad908cd6a02d48bdd8ac9ac76d4cbffd0e59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataIntlBundle/zipball/292fad908cd6a02d48bdd8ac9ac76d4cbffd0e59", + "reference": "292fad908cd6a02d48bdd8ac9ac76d4cbffd0e59", + "shasum": "" + }, + "require": { + "symfony/dependency-injection": "~2.2", + "symfony/http-kernel": "~2.2", + "symfony/locale": "~2.2", + "symfony/templating": "~2.2", + "twig/twig": "*" + }, + "require-dev": { + "sonata-project/user-bundle": "~2.2", + "symfony/security": "~2.2" + }, + "time": "2014-03-19 11:44:49", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\IntlBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataIntlBundle/contributors" + } + ], + "description": "Symfony SonataIntlBundle", + "homepage": "http://sonata-project.org/bundles/intl", + "keywords": [ + "date", + "intl", + "number", + "sonata", + "time" + ] + }, + { + "name": "sonata-project/easy-extends-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataEasyExtendsBundle.git", + "reference": "05d4cdfabe1815b7d8cc9483ebf0ea7707bb48c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataEasyExtendsBundle/zipball/05d4cdfabe1815b7d8cc9483ebf0ea7707bb48c9", + "reference": "05d4cdfabe1815b7d8cc9483ebf0ea7707bb48c9", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/console": "~2", + "symfony/finder": "~2", + "symfony/framework-bundle": "~2" + }, + "require-dev": { + "doctrine/orm": "~2" + }, + "time": "2014-04-16 10:32:54", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\EasyExtendsBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataEasyExtendsBundle/contributors" + } + ], + "description": "Symfony SonataEasyExtendsBundle", + "homepage": "http://sonata-project.org/bundles/easy-extends", + "keywords": [ + "Easy Extends", + "sonata" + ] + }, + { + "name": "sonata-project/notification-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataNotificationBundle.git", + "reference": "35f41bdb0226c1d67c85715e708ef1aed84258ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataNotificationBundle/zipball/35f41bdb0226c1d67c85715e708ef1aed84258ae", + "reference": "35f41bdb0226c1d67c85715e708ef1aed84258ae", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.1", + "jms/serializer-bundle": "~0.11", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/core-bundle": "~2.2@dev,>2.2.4", + "sonata-project/doctrine-extensions": "1.*", + "sonata-project/easy-extends-bundle": "2.1.*", + "symfony/symfony": "~2.1" + }, + "require-dev": { + "guzzle/guzzle": "3.*", + "liip/monitor": "~1.0", + "liip/monitor-bundle": "~1.0", + "sonata-project/core-bundle": "dev-master", + "sonata-project/doctrine-orm-admin-bundle": "2.2.*", + "videlalvaro/php-amqplib": "2.0.*" + }, + "suggest": { + "guzzle/guzzle": "3.*", + "liip/monitor-bundle": "~1.0", + "sonata-project/doctrine-orm-admin-bundle": "2.2.*", + "videlalvaro/php-amqplib": "2.0.*" + }, + "time": "2014-06-10 21:38:15", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\NotificationBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataNotificationBundle/contributors" + } + ], + "description": "Symfony SonataNotificationBundle", + "homepage": "http://sonata-project.org/bundles/page", + "keywords": [ + "cms", + "page", + "sonata" + ] + }, + { + "name": "sonata-project/media-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataMediaBundle.git", + "reference": "769a12fb8e3335e2e179480bbd6e3818336272fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataMediaBundle/zipball/769a12fb8e3335e2e179480bbd6e3818336272fb", + "reference": "769a12fb8e3335e2e179480bbd6e3818336272fb", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.1", + "imagine/imagine": "*@stable", + "jms/serializer-bundle": "~0.11", + "knplabs/gaufrette": ">=0.1.4", + "kriswallsmith/buzz": "0.*", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/core-bundle": "~2.2", + "sonata-project/doctrine-extensions": "~1.0", + "sonata-project/easy-extends-bundle": "~2.1", + "sonata-project/intl-bundle": "~2.2", + "sonata-project/notification-bundle": "~2.2", + "symfony/symfony": "~2.3" + }, + "require-dev": { + "amazonwebservices/aws-sdk-for-php": "~1.5", + "doctrine/mongodb-odm": "~1.0@dev", + "sonata-project/admin-bundle": "~2.3@dev", + "sonata-project/core-bundle": "~2.2@dev", + "sonata-project/doctrine-orm-admin-bundle": "~2.3@dev", + "sonata-project/formatter-bundle": "~2.2@dev", + "sonata-project/seo-bundle": "~1.1" + }, + "suggest": { + "amazonwebservices/aws-sdk-for-php": "~1.5", + "liip/imagine-bundle": "~0.9", + "rackspace/php-opencloud": "~1.6", + "sonata-project/doctrine-orm-admin-bundle": "~2.3", + "sonata-project/seo-bundle": "~1.1", + "tilleuls/ckeditor-sonata-mediabundle": "~1.0" + }, + "time": "2014-06-10 20:53:19", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\MediaBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataMediaBundle/contributors" + } + ], + "description": "Symfony SonataMediaBundle", + "homepage": "http://sonata-project.org/bundles/media", + "keywords": [ + "dailymotion", + "file", + "media", + "pdf", + "sonata", + "upload", + "vimeo", + "youtube" + ] + }, + { + "name": "sonata-project/seo-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataSeoBundle.git", + "reference": "928a9f2a76a04832ca65dbbe5d4709cef988348e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataSeoBundle/zipball/928a9f2a76a04832ca65dbbe5d4709cef988348e", + "reference": "928a9f2a76a04832ca65dbbe5d4709cef988348e", + "shasum": "" + }, + "require": { + "sonata-project/exporter": ">=1.2.2,<2.0", + "symfony/symfony": "~2.1", + "twig/twig": "*" + }, + "require-dev": { + "guzzle/guzzle": "3.*", + "sonata-project/admin-bundle": "~2.2", + "sonata-project/block-bundle": "~2.2,>=2.2.7" + }, + "suggest": { + "guzzle/guzzle": "3.*", + "knplabs/knp-menu-bundle": "Used by the BreadcrumbMenuBuilder", + "sonata-project/block-bundle": "Allows you to use SEO friendly blocks" + }, + "time": "2014-04-30 16:23:06", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\SeoBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataSeoBundle/contributors" + } + ], + "description": "Symfony SonataSeoBundle", + "homepage": "http://sonata-project.org/bundles/seo", + "keywords": [ + "seo", + "sonata" + ] + }, + { + "name": "sonata-project/user-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataUserBundle.git", + "reference": "cf51088baea7f9d11d7e1a91f6eb4357717da93a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataUserBundle/zipball/cf51088baea7f9d11d7e1a91f6eb4357717da93a", + "reference": "cf51088baea7f9d11d7e1a91f6eb4357717da93a", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.1", + "friendsofsymfony/user-bundle": "~1.3", + "jms/serializer-bundle": "~0.11", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/admin-bundle": "~2.3@dev", + "sonata-project/core-bundle": "~2.2", + "sonata-project/datagrid-bundle": "~2.2@dev", + "sonata-project/doctrine-extensions": "~1.0", + "sonata-project/easy-extends-bundle": "~2.1", + "sonata-project/google-authenticator": "~1.0", + "symfony/console": "~2.3", + "symfony/form": "~2.3", + "symfony/http-foundation": "~2.3", + "symfony/security": "~2.3" + }, + "require-dev": { + "sonata-project/seo-bundle": "~1.1" + }, + "suggest": { + "sonata-project/doctrine-orm-admin-bundle": "~2.3@dev", + "sonata-project/seo-bundle": "~1.1" + }, + "time": "2014-06-04 09:55:48", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\UserBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataUserBundle/contributors" + } + ], + "description": "Symfony SonataUserBundle", + "homepage": "http://sonata-project.org/bundles/user", + "keywords": [ + "google authenticator", + "sonata", + "user" + ] + }, + { + "name": "sonata-project/cache-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataCacheBundle.git", + "reference": "5dd85ef0b94be804ae7ca029f5ee72a3ca3a7c21" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataCacheBundle/zipball/5dd85ef0b94be804ae7ca029f5ee72a3ca3a7c21", + "reference": "5dd85ef0b94be804ae7ca029f5ee72a3ca3a7c21", + "shasum": "" + }, + "require": { + "sonata-project/cache": "~1.0", + "symfony/filesystem": "~2.2", + "symfony/http-foundation": "~2.2", + "symfony/process": "~2.2", + "symfony/routing": "~2.2", + "symfony/security": "~2.2" + }, + "require-dev": { + "doctrine/orm": "~2.2", + "predis/predis": "~0.8", + "sonata-project/cache": "~1.0,>=1.0.2" + }, + "suggest": { + "doctrine/doctrine-bundle": "ORM support", + "doctrine/orm": "ORM support", + "doctrine/phpcr-bundle": "PHPCR ODM support", + "doctrine/phpcr-odm": "PHPCR ODM support", + "ext-apc": "Caching with ext/apc", + "ext-memcached": "Caching with ext/memcached", + "predis/predis": "Install redis php" + }, + "time": "2014-06-14 12:43:58", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\CacheBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataCacheBundle/contributors" + } + ], + "description": "This bundle provides caching services", + "homepage": "https://github.com/sonata-project/SonataCacheBundle", + "keywords": [ + "cache block" + ] + }, + { + "name": "sonata-project/jquery-bundle", + "version": "1.10.2", + "version_normalized": "1.10.2.0", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonatajQueryBundle.git", + "reference": "a53282159f54bc44379d63727a042254841302d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonatajQueryBundle/zipball/a53282159f54bc44379d63727a042254841302d7", + "reference": "a53282159f54bc44379d63727a042254841302d7", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "time": "2014-04-01 12:48:59", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Sonata\\jQueryBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonatajQueryBundle/contributors" + } + ], + "description": "Symfony SonatajQueryBundle", + "homepage": "http://sonata-project.org/bundles/jquery", + "keywords": [ + "jquery", + "sonata" + ] + }, + { + "name": "sonata-project/formatter-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataFormatterBundle.git", + "reference": "e736dd28d0e084483080f73ab4d105f216331c34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataFormatterBundle/zipball/e736dd28d0e084483080f73ab4d105f216331c34", + "reference": "e736dd28d0e084483080f73ab4d105f216331c34", + "shasum": "" + }, + "require": { + "egeloen/ckeditor-bundle": "~2.2", + "knplabs/knp-markdown-bundle": "~1.2.0", + "sonata-project/block-bundle": "~2.2,>=2.2.1", + "sonata-project/core-bundle": "~2.2", + "sonata-project/markitup-bundle": "~2.1", + "symfony/symfony": "~2.3", + "twig/twig": "*" + }, + "time": "2014-06-02 10:28:04", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\FormatterBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataFormatterBundle/contributors" + } + ], + "description": "Symfony SonataFormatterBundle", + "homepage": "http://sonata-project.org/bundles/formatter", + "keywords": [ + "CKEditor", + "formatter", + "markdown", + "markitup", + "sonata" + ] + }, + { + "name": "sonata-project/classification-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataClassificationBundle.git", + "reference": "edc637e3ad71ac3c0d542ed6b27f9329a7942a07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataClassificationBundle/zipball/edc637e3ad71ac3c0d542ed6b27f9329a7942a07", + "reference": "edc637e3ad71ac3c0d542ed6b27f9329a7942a07", + "shasum": "" + }, + "require": { + "sonata-project/core-bundle": "~2.2@dev", + "sonata-project/datagrid-bundle": "~2.2@dev", + "sonata-project/doctrine-orm-admin-bundle": "~2.2@dev", + "sonata-project/media-bundle": "~2.2", + "symfony/symfony": "~2.2" + }, + "require-dev": { + "friendsofsymfony/rest-bundle": "~1.1", + "jms/serializer-bundle": "~0.11" + }, + "suggest": { + "sonata-project/media-bundle": "~2.2" + }, + "time": "2014-06-04 16:07:54", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\ClassificationBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataClassificationBundle/contributors" + } + ], + "description": "Symfony SonataClassificationBundle", + "homepage": "http://sonata-project.org/bundles/classification", + "keywords": [ + "category", + "tag", + "taxonomy" + ] + }, + { + "name": "jquery/jquery", + "version": "1.10.2", + "version_normalized": "1.10.2.0", + "dist": { + "type": "file", + "url": "http://code.jquery.com/jquery-1.10.2.js", + "reference": null, + "shasum": null + }, + "type": "library", + "installation-source": "dist" + }, + { + "name": "white-october/pagerfanta-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "WhiteOctober/PagerfantaBundle", + "source": { + "type": "git", + "url": "https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle.git", + "reference": "8bac169e9839bb685a4b912f426600b3d7401ec3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/whiteoctober/WhiteOctoberPagerfantaBundle/zipball/8bac169e9839bb685a4b912f426600b3d7401ec3", + "reference": "8bac169e9839bb685a4b912f426600b3d7401ec3", + "shasum": "" + }, + "require": { + "pagerfanta/pagerfanta": "1.0.*", + "symfony/framework-bundle": "~2.2", + "symfony/property-access": "~2.2", + "symfony/twig-bundle": "~2.2" + }, + "require-dev": { + "phpunit/phpunit": "~3.7", + "symfony/symfony": "~2.2" + }, + "time": "2014-05-20 10:23:37", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "WhiteOctober\\PagerfantaBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pablo Díez", + "email": "pablodip@gmail.com", + "homepage": "http://github.com/pablodip" + } + ], + "description": "Bundle to use Pagerfanta with Symfony2", + "keywords": [ + "page", + "paging" + ] + }, + { + "name": "egeloen/ckeditor-bundle", + "version": "2.3.1", + "version_normalized": "2.3.1.0", + "target-dir": "Ivory/CKEditorBundle", + "source": { + "type": "git", + "url": "https://github.com/egeloen/IvoryCKEditorBundle.git", + "reference": "42d201a59fa0e1625f4dd7167a57a2337b9a528f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egeloen/IvoryCKEditorBundle/zipball/42d201a59fa0e1625f4dd7167a57a2337b9a528f", + "reference": "42d201a59fa0e1625f4dd7167a57a2337b9a528f", + "shasum": "" + }, + "require": { + "egeloen/json-builder": "~1.0", + "php": ">=5.3.0", + "symfony/form": "~2.1", + "symfony/framework-bundle": "~2.1" + }, + "require-dev": { + "phpunit/phpunit": "~3.7", + "satooshi/php-coveralls": "~0.6", + "twig/twig": "~1.0" + }, + "suggest": { + "helios-ag/fm-elfinder-bundle": "Allows to use the elfinder as CKEditor file manager", + "twig/twig": "Allows to use Ivory CKEditor twig templates" + }, + "time": "2014-05-26 19:37:11", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Ivory\\CKEditorBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + } + ], + "description": "Provides a CKEditor integration for your Symfony2 Project.", + "keywords": [ + "CKEditor" + ] + }, + { + "name": "hwi/oauth-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "HWI/Bundle/OAuthBundle", + "source": { + "type": "git", + "url": "https://github.com/hwi/HWIOAuthBundle.git", + "reference": "26033b75bda64e33d9258dda50defd10e6b6dbb2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hwi/HWIOAuthBundle/zipball/26033b75bda64e33d9258dda50defd10e6b6dbb2", + "reference": "26033b75bda64e33d9258dda50defd10e6b6dbb2", + "shasum": "" + }, + "require": { + "kriswallsmith/buzz": "~0.7", + "php": ">=5.3.3", + "symfony/framework-bundle": "~2.3", + "symfony/options-resolver": "~2.1", + "symfony/security-bundle": "~2.1", + "symfony/yaml": "~2.3" + }, + "require-dev": { + "doctrine/orm": "~2.3", + "symfony/twig-bundle": "~2.1", + "symfony/validator": "~2.1" + }, + "suggest": { + "doctrine/doctrine-bundle": "to use Doctrine user provider", + "friendsofsymfony/user-bundle": "to connect FOSUB with this bundle", + "symfony/twig-bundle": "to use the Twig hwi_oauth_* functions" + }, + "time": "2014-06-02 13:28:07", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "0.4-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "HWI\\Bundle\\OAuthBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Geoffrey Bachelet", + "email": "geoffrey.bachelet@gmail.com", + "homepage": "https://github.com/ubermuda" + }, + { + "name": "Contributors", + "homepage": "https://github.com/hwi/HWIOAuthBundle/contributors" + }, + { + "name": "Alexander", + "email": "iam.asm89@gmail.com", + "homepage": "http://asm89.github.io/" + }, + { + "name": "Joseph Bielawski", + "email": "stloyd@gmail.com" + } + ], + "description": "Support for authenticating users using both OAuth1.0a and OAuth2 in Symfony2.", + "homepage": "http://github.com/hwi/HWIOAuthBundle", + "keywords": [ + "37signals", + "Authentication", + "amazon", + "bitbucket", + "bitly", + "box", + "dailymotion", + "deviantart", + "disqus", + "dropbox", + "eventbrite", + "facebook", + "firewall", + "flickr", + "foursquare", + "github", + "google", + "hubic", + "instagram", + "jira", + "linkedin", + "mail.ru", + "oauth", + "oauth1", + "oauth2", + "odnoklassniki", + "qq", + "salesforce", + "security", + "sensio connect", + "sina weibo", + "stack exchange", + "stereomood", + "trello", + "twitch", + "twitter", + "vkontakte", + "windows live", + "wordpress", + "yahoo", + "yandex" + ] + }, + { + "name": "friendsofsymfony/message-bundle", + "version": "v1.2.2", + "version_normalized": "1.2.2.0", + "target-dir": "FOS/MessageBundle", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfSymfony/FOSMessageBundle.git", + "reference": "d5b40ed8a5b59ee8bbecf03934878460fb172c55" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSMessageBundle/zipball/d5b40ed8a5b59ee8bbecf03934878460fb172c55", + "reference": "d5b40ed8a5b59ee8bbecf03934878460fb172c55", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/form": "~2.1", + "symfony/framework-bundle": "~2.1", + "symfony/security": "~2.1", + "symfony/twig-bundle": "~2.1" + }, + "suggest": { + "doctrine/doctrine-bundle": "dev-master", + "doctrine/mongodb-odm-bundle": "dev-master" + }, + "time": "2013-10-25 11:05:36", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "FOS\\MessageBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thibault Duplessis", + "email": "thibault.duplessis@gmail.com", + "homepage": "http://ornicar.github.com" + }, + { + "name": "FriendsOfSymfony Community", + "homepage": "https://github.com/friendsofsymfony/FOSMessageBundle/contributors" + } + ], + "description": "Provides user-to-user messaging features for your Symfony2 application.", + "homepage": "https://github.com/FriendsOfSymfony/FOSMessageBundle", + "keywords": [ + "message", + "messaging", + "symfony" + ] + }, + { + "name": "stof/doctrine-extensions-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Stof/DoctrineExtensionsBundle", + "source": { + "type": "git", + "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git", + "reference": "3825a4a1a56805b6adcaf6df1f9ec892a653d377" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/3825a4a1a56805b6adcaf6df1f9ec892a653d377", + "reference": "3825a4a1a56805b6adcaf6df1f9ec892a653d377", + "shasum": "" + }, + "require": { + "gedmo/doctrine-extensions": "~2.3.1", + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1" + }, + "suggest": { + "doctrine/doctrine-bundle": "to use the ORM extensions", + "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions" + }, + "time": "2014-05-24 12:33:49", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Stof\\DoctrineExtensionsBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integration of the gedmo/doctrine-extensions with Symfony2", + "homepage": "https://github.com/stof/StofDoctrineExtensionsBundle", + "keywords": [ + "behaviors", + "doctrine2", + "extensions", + "gedmo", + "loggable", + "nestedset", + "sluggable", + "sortable", + "timestampable", + "translatable", + "tree" + ] + }, + { + "name": "elao/web-profiler-extra-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Elao/WebProfilerExtraBundle", + "source": { + "type": "git", + "url": "https://github.com/Elao/WebProfilerExtraBundle.git", + "reference": "82061e8b00060db91bd6b76e405184f417f56c09" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Elao/WebProfilerExtraBundle/zipball/82061e8b00060db91bd6b76e405184f417f56c09", + "reference": "82061e8b00060db91bd6b76e405184f417f56c09", + "shasum": "" + }, + "require": { + "symfony/framework-bundle": "~2.1", + "symfony/twig-bundle": "~2.0", + "twig/twig": "~1.12" + }, + "time": "2013-11-06 19:40:03", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Elao\\WebProfilerExtraBundle": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Elao Team", + "homepage": "http://www.elao.com" + }, + { + "name": "Contributors", + "homepage": "http://github.com/Elao/WebProfilerExtraBundle/contributors" + } + ], + "description": "Add routing, container, assetic & twig information inside the profiler", + "homepage": "http://github.com/Elao/WebProfilerExtraBundle", + "keywords": [ + "bundle", + "elao", + "extra", + "profiler" + ] + }, + { + "name": "pagerfanta/pagerfanta", + "version": "v1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/whiteoctober/Pagerfanta.git", + "reference": "ac1edfdf81c91a0f1471769071011ebf9b055421" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/whiteoctober/Pagerfanta/zipball/ac1edfdf81c91a0f1471769071011ebf9b055421", + "reference": "ac1edfdf81c91a0f1471769071011ebf9b055421", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "doctrine/mongodb-odm": "1.0.*@dev", + "doctrine/orm": "2.3.*", + "doctrine/phpcr-odm": "1.*", + "jackalope/jackalope-doctrine-dbal": "1.*", + "jmikola/geojson": "1.0.*", + "mandango/mandango": "1.0.*@dev", + "phpunit/phpunit": "3.7.*", + "propel/propel1": "~1.6", + "solarium/solarium": "3.1.*" + }, + "suggest": { + "doctrine/mongodb-odm": "To use the DoctrineODMMongoDBAdapter.", + "doctrine/orm": "To use the DoctrineORMAdapter.", + "doctrine/phpcr-odm": "To use the DoctrineODMPhpcrAdapter. >= 1.1.0", + "mandango/mandango": "To use the MandangoAdapter.", + "propel/propel1": "To use the PropelAdapter", + "solarium/solarium": "To use the SolariumAdapter." + }, + "time": "2014-06-02 09:21:14", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Pagerfanta\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pablo Díez", + "email": "pablodip@gmail.com", + "homepage": "http://github.com/pablodip" + } + ], + "description": "Pagination for PHP 5.3", + "keywords": [ + "page", + "pagination", + "paginator", + "paging" + ] + }, + { + "name": "lexik/maintenance-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Lexik/Bundle/MaintenanceBundle", + "source": { + "type": "git", + "url": "https://github.com/lexik/LexikMaintenanceBundle.git", + "reference": "287f8e00140930d60efc9b2be3c9a1e94dfacd81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lexik/LexikMaintenanceBundle/zipball/287f8e00140930d60efc9b2be3c9a1e94dfacd81", + "reference": "287f8e00140930d60efc9b2be3c9a1e94dfacd81", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/dependency-injection": "~2.1", + "symfony/framework-bundle": "~2.1" + }, + "time": "2014-04-30 07:50:35", + "type": "symfony-bundle", + "installation-source": "source", + "autoload": { + "psr-0": { + "Lexik\\Bundle\\MaintenanceBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dev Lexik", + "email": "dev@lexik.fr" + }, + { + "name": "Gilles Gauthier", + "email": "g.gauthier@lexik.fr" + }, + { + "name": "Djuri Baars", + "email": "info@djurict.nl" + } + ], + "description": "This bundle allows you to place your website in maintenance mode by calling two commands from your console.", + "homepage": "https://github.com/lexik/LexikMaintenanceBundle", + "keywords": [ + "Symfony2", + "bundle", + "maintenance" + ] + }, + { + "name": "avanzu/admin-theme-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Avanzu/AdminThemeBundle", + "source": { + "type": "git", + "url": "https://github.com/avanzu/AdminThemeBundle.git", + "reference": "1efbc558adb91b4fb8cfaa5ac8c55c1ad1b3998a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/avanzu/AdminThemeBundle/zipball/1efbc558adb91b4fb8cfaa5ac8c55c1ad1b3998a", + "reference": "1efbc558adb91b4fb8cfaa5ac8c55c1ad1b3998a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/assetic-bundle": ">=2.3", + "symfony/event-dispatcher": ">=2.3", + "symfony/http-foundation": ">=2.3", + "symfony/http-kernel": ">=2.3", + "symfony/twig-bundle": ">=2.3" + }, + "time": "2014-05-30 13:35:04", + "type": "library", + "installation-source": "source", + "autoload": { + "psr-0": { + "Avanzu\\AdminThemeBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marc Bach", + "email": "mail@avanzu.de", + "homepage": "http://www.avanzu.de", + "role": "Developer" + } + ], + "description": "Admin Theme based on the AdminLTE Template for easy integration into symfony" + }, + { + "name": "monolog/monolog", + "version": "1.10.0", + "version_normalized": "1.10.0.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "25b16e801979098cb2f120e697bfce454b18bf23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/25b16e801979098cb2f120e697bfce454b18bf23", + "reference": "25b16e801979098cb2f120e697bfce454b18bf23", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "require-dev": { + "aws/aws-sdk-php": "~2.4, >2.4.8", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "phpunit/phpunit": "~3.7.0", + "raven/raven": "~0.5", + "ruflin/elastica": "0.90.*" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "raven/raven": "Allow sending log messages to a Sentry server", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "time": "2014-06-04 16:30:04", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be", + "role": "Developer" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ] + }, + { + "name": "symfony/monolog-bundle", + "version": "v2.6.0", + "version_normalized": "2.6.0.0", + "target-dir": "Symfony/Bundle/MonologBundle", + "source": { + "type": "git", + "url": "https://github.com/symfony/MonologBundle.git", + "reference": "e1d4aa99c7440b11e9dfbfef7ed63084401dbc6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/MonologBundle/zipball/e1d4aa99c7440b11e9dfbfef7ed63084401dbc6a", + "reference": "e1d4aa99c7440b11e9dfbfef7ed63084401dbc6a", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.8", + "php": ">=5.3.2", + "symfony/config": "~2.3", + "symfony/dependency-injection": "~2.3", + "symfony/http-kernel": "~2.3", + "symfony/monolog-bridge": "~2.3" + }, + "require-dev": { + "symfony/console": "~2.3", + "symfony/yaml": "~2.3" + }, + "time": "2014-06-04 16:49:13", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\Bundle\\MonologBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", + "keywords": [ + "log", + "logging" + ] + }, + { + "name": "friendsofsymfony/rest-bundle", + "version": "1.4.0", + "version_normalized": "1.4.0.0", + "target-dir": "FOS/RestBundle", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git", + "reference": "d37f4410e6a97e81c720840b56e35c3a44942723" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/d37f4410e6a97e81c720840b56e35c3a44942723", + "reference": "d37f4410e6a97e81c720840b56e35c3a44942723", + "shasum": "" + }, + "require": { + "doctrine/inflector": "1.0.*", + "php": ">=5.3.2", + "psr/log": "~1.0", + "symfony/framework-bundle": "~2.2", + "willdurand/jsonp-callback-validator": "~1.0", + "willdurand/negotiation": "~1.2" + }, + "conflict": { + "jms/serializer": "<0.12", + "jms/serializer-bundle": "<0.11" + }, + "require-dev": { + "jms/serializer-bundle": "0.12.*", + "sensio/framework-extra-bundle": "~2.2", + "symfony/form": "~2.2", + "symfony/security": "~2.2", + "symfony/serializer": "~2.2", + "symfony/validator": "~2.2", + "symfony/yaml": "~2.2" + }, + "suggest": { + "jms/serializer-bundle": "Add support for advanced serialization capabilities, recommended, requires 0.12.*", + "sensio/framework-extra-bundle": "Add support for route annotations and the view response listener", + "symfony/serializer": "Add support for basic serialization capabilities and xml decoding, requires ~2.2", + "symfony/validator": "Add support for validation capabilities in the ParamFetcher, requires ~2.2" + }, + "time": "2014-06-04 13:11:41", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "FOS\\RestBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lukas Kahwe Smith", + "email": "smith@pooteeweet.org" + }, + { + "name": "FriendsOfSymfony Community", + "homepage": "https://github.com/friendsofsymfony/FOSRestBundle/contributors" + }, + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "This Bundle provides various tools to rapidly develop RESTful API's with Symfony2", + "homepage": "http://friendsofsymfony.github.com", + "keywords": [ + "rest" + ] + }, + { + "name": "fzaninotto/faker", + "version": "v1.4.0", + "version_normalized": "1.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "010c7efedd88bf31141a02719f51fb44c732d5a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/010c7efedd88bf31141a02719f51fb44c732d5a0", + "reference": "010c7efedd88bf31141a02719f51fb44c732d5a0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "time": "2014-06-04 14:43:02", + "type": "library", + "extra": { + "branch-alias": [ + + ] + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Faker": "src/", + "Faker\\PHPUnit": "test/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ] + }, + { + "name": "sonata-project/ecommerce", + "version": "dev-develop", + "version_normalized": "dev-develop", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/ecommerce.git", + "reference": "8be7f4ce4c82e958cc4d4864df4fb3a44d677b9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/ecommerce/zipball/8be7f4ce4c82e958cc4d4864df4fb3a44d677b9e", + "reference": "8be7f4ce4c82e958cc4d4864df4fb3a44d677b9e", + "shasum": "" + }, + "require": { + "friendsofsymfony/comment-bundle": "~2.0@dev", + "friendsofsymfony/rest-bundle": "~1.1", + "friendsofsymfony/user-bundle": "~1.3", + "jms/serializer-bundle": "~0.11", + "knplabs/knp-menu-bundle": "~1.1", + "knplabs/knp-paginator-bundle": "~2.3", + "kriswallsmith/buzz": "0.*", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/classification-bundle": "~2.2", + "sonata-project/comment-bundle": "~2.2@dev", + "sonata-project/core-bundle": "~2.2@dev", + "sonata-project/doctrine-orm-admin-bundle": "~2.2@dev", + "sonata-project/intl-bundle": "~2.1", + "sonata-project/media-bundle": "~2.2@dev", + "sonata-project/notification-bundle": "~2.2", + "sonata-project/seo-bundle": "~1", + "sonata-project/user-bundle": "~2.2@dev", + "symfony/config": "~2.3", + "symfony/console": "~2.3", + "symfony/form": "~2.3", + "symfony/http-foundation": "~2.3", + "symfony/process": "~2.3", + "symfony/routing": "~2.3", + "symfony/security-bundle": "~2.3", + "symfony/twig-bridge": "~2.3", + "symfony/validator": "~2.3" + }, + "time": "2014-06-04 15:38:52", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\Component\\": "src/Component", + "Sonata\\BasketBundle\\": "src/BasketBundle", + "Sonata\\CustomerBundle\\": "src/CustomerBundle", + "Sonata\\DeliveryBundle\\": "src/DeliveryBundle", + "Sonata\\InvoiceBundle\\": "src/InvoiceBundle", + "Sonata\\OrderBundle\\": "src/OrderBundle", + "Sonata\\PaymentBundle\\": "src/PaymentBundle", + "Sonata\\PriceBundle\\": "src/PriceBundle", + "Sonata\\ProductBundle\\": "src/ProductBundle", + "Sonata\\Tests\\Component\\": "tests/Component", + "Sonata\\Tests\\BasketBundle\\": "tests/BasketBundle", + "Sonata\\Tests\\CustomerBundle\\": "tests/CustomerBundle", + "Sonata\\Tests\\DeliveryBundle\\": "tests/DeliveryBundle", + "Sonata\\Tests\\InvoiceBundle\\": "tests/InvoiceBundle", + "Sonata\\Tests\\OrderBundle\\": "tests/OrderBundle", + "Sonata\\Tests\\PaymentBundle\\": "tests/PaymentBundle", + "Sonata\\Tests\\PriceBundle\\": "tests/PriceBundle", + "Sonata\\Tests\\ProductBundle\\": "tests/ProductBundle" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + } + ], + "description": "E-Commerce solution provided by Sonata" + }, + { + "name": "oyejorge/less.php", + "version": "v1.7.0.2", + "version_normalized": "1.7.0.2", + "source": { + "type": "git", + "url": "https://github.com/oyejorge/less.php.git", + "reference": "82372b389386ae1edab55495eae4b400cca3c86c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/oyejorge/less.php/zipball/82372b389386ae1edab55495eae4b400cca3c86c", + "reference": "82372b389386ae1edab55495eae4b400cca3c86c", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "time": "2014-06-05 16:09:50", + "bin": [ + "bin/lessc" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "Less": "lib/" + }, + "classmap": [ + "lessc.inc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Matt Agar", + "homepage": "https://github.com/agar" + }, + { + "name": "Martin Jantošovič", + "homepage": "https://github.com/Mordred" + }, + { + "name": "Josh Schmidt", + "homepage": "https://github.com/oyejorge" + } + ], + "description": "PHP port of the Javascript version of LESS http://lesscss.org", + "homepage": "http://lessphp.gpeasy.com", + "keywords": [ + "css", + "less", + "less.js", + "lesscss", + "php", + "stylesheet" + ] + }, + { + "name": "sensio/framework-extra-bundle", + "version": "v2.3.4", + "version_normalized": "2.3.4.0", + "target-dir": "Sensio/Bundle/FrameworkExtraBundle", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "cce05719041d952bbec856789ca18646a1891d03" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/cce05719041d952bbec856789ca18646a1891d03", + "reference": "cce05719041d952bbec856789ca18646a1891d03", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.2", + "symfony/framework-bundle": "~2.2" + }, + "time": "2013-07-24 08:49:53", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Sensio\\Bundle\\FrameworkExtraBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "This bundle provides a way to configure your controllers with annotations", + "keywords": [ + "annotations", + "controllers" + ] + }, + { + "name": "sylius/flow-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/Sylius/SyliusFlowBundle.git", + "reference": "7dbbf33dda366822cbfe9d0d03f5a20215481eff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Sylius/SyliusFlowBundle/zipball/7dbbf33dda366822cbfe9d0d03f5a20215481eff", + "reference": "7dbbf33dda366822cbfe9d0d03f5a20215481eff", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/framework-bundle": "~2.1" + }, + "require-dev": { + "symfony/yaml": "~2.1" + }, + "time": "2014-05-23 22:05:51", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "0.10-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sylius\\Bundle\\FlowBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paweł Jędrzejewski", + "email": "pjedrzejewski@diweb.pl", + "homepage": "http://pjedrzejewski.com" + }, + { + "name": "Sylius project", + "homepage": "http://sylius.org" + }, + { + "name": "Community contributions", + "homepage": "http://github.com/Sylius/Sylius/contributors" + } + ], + "description": "Multiple action setups for Symfony2, build your checkouts/installers or whatever needs more than one step to complete.", + "homepage": "http://sylius.org", + "keywords": [ + "checkout", + "flow", + "installation", + "steps" + ] + }, + { + "name": "liip/theme-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "target-dir": "Liip/ThemeBundle", + "source": { + "type": "git", + "url": "https://github.com/liip/LiipThemeBundle.git", + "reference": "76ceadaae8632fbd1ee881d663ce011126bf2fa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/liip/LiipThemeBundle/zipball/76ceadaae8632fbd1ee881d663ce011126bf2fa0", + "reference": "76ceadaae8632fbd1ee881d663ce011126bf2fa0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/framework-bundle": "~2.0" + }, + "require-dev": { + "symfony/console": "~2.0" + }, + "time": "2014-04-15 16:20:40", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-0": { + "Liip\\ThemeBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Community contributions", + "homepage": "https://github.com/liip/LiipThemeBundle/contributors" + }, + { + "name": "Liip AG", + "homepage": "http://www.liip.ch/" + } + ], + "description": "Provides theming support for #Symfony2 Bundles", + "keywords": [ + "themes", + "theming" + ] + }, + { + "name": "zendframework/zend-stdlib", + "version": "2.3.1", + "version_normalized": "2.3.1.0", + "target-dir": "Zend/Stdlib", + "source": { + "type": "git", + "url": "https://github.com/zendframework/Component_ZendStdlib.git", + "reference": "c1f4830018b5d4f034d32fa01a9e17ea176f56f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/c1f4830018b5d4f034d32fa01a9e17ea176f56f6", + "reference": "c1f4830018b5d4f034d32fa01a9e17ea176f56f6", + "shasum": "" + }, + "require": { + "php": ">=5.3.23" + }, + "require-dev": { + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-serializer": "self.version", + "zendframework/zend-servicemanager": "self.version" + }, + "suggest": { + "zendframework/zend-eventmanager": "To support aggregate hydrator usage", + "zendframework/zend-serializer": "Zend\\Serializer component", + "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" + }, + "time": "2014-04-15 15:28:48", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev", + "dev-develop": "2.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Zend\\Stdlib\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "keywords": [ + "stdlib", + "zf2" + ] + }, + { + "name": "zendframework/zend-config", + "version": "2.3.1", + "version_normalized": "2.3.1.0", + "target-dir": "Zend/Config", + "source": { + "type": "git", + "url": "https://github.com/zendframework/Component_ZendConfig.git", + "reference": "61b81c6ea60c1947e13b4effbfffcd9bb59c2180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/Component_ZendConfig/zipball/61b81c6ea60c1947e13b4effbfffcd9bb59c2180", + "reference": "61b81c6ea60c1947e13b4effbfffcd9bb59c2180", + "shasum": "" + }, + "require": { + "php": ">=5.3.23", + "zendframework/zend-stdlib": "self.version" + }, + "require-dev": { + "zendframework/zend-filter": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-servicemanager": "self.version" + }, + "suggest": { + "zendframework/zend-filter": "Zend\\Filter component", + "zendframework/zend-i18n": "Zend\\I18n component", + "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes", + "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances" + }, + "time": "2014-04-15 15:29:04", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev", + "dev-develop": "2.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Zend\\Config\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a nested object property based user interface for accessing this configuration data within application code", + "keywords": [ + "config", + "zf2" + ] + }, + { + "name": "pimple/pimple", + "version": "v1.1.1", + "version_normalized": "1.1.1.0", + "source": { + "type": "git", + "url": "https://github.com/fabpot/Pimple.git", + "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fabpot/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", + "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2013-11-22 08:30:29", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Pimple": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", + "homepage": "http://pimple.sensiolabs.org", + "keywords": [ + "container", + "dependency injection" + ] + }, + { + "name": "guzzle/guzzle", + "version": "v3.9.1", + "version_normalized": "3.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "92d9934f2fca1da15178c91239576ae26e505e60" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/92d9934f2fca1da15178c91239576ae26e505e60", + "reference": "92d9934f2fca1da15178c91239576ae26e505e60", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" + }, + "time": "2014-05-07 17:04:22", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ] + }, + { + "name": "alchemy/zippy", + "version": "0.2.0", + "version_normalized": "0.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/alchemy-fr/Zippy.git", + "reference": "e652161e1d99f647b34c3ff9695bb4bb0b8837cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/alchemy-fr/Zippy/zipball/e652161e1d99f647b34c3ff9695bb4bb0b8837cf", + "reference": "e652161e1d99f647b34c3ff9695bb4bb0b8837cf", + "shasum": "" + }, + "require": { + "doctrine/collections": "~1.0", + "guzzle/guzzle": "~3.0", + "php": ">=5.3.3", + "pimple/pimple": "~1.0", + "symfony/filesystem": "~2.0", + "symfony/process": "~2.0" + }, + "require-dev": { + "ext-zip": "*", + "phpunit/phpunit": "~3.7", + "sami/sami": "dev-master@dev", + "symfony/finder": "~2.0" + }, + "suggest": { + "ext-zip": "To use the ZipExtensionAdapter" + }, + "time": "2014-04-04 16:24:46", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Alchemy": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alchemy", + "email": "dev.team@alchemy.fr", + "homepage": "http://www.alchemy.fr/" + } + ], + "description": "Zippy, the archive manager companion", + "keywords": [ + "bzip", + "compression", + "tar", + "zip" + ] + }, + { + "name": "doctrine/orm", + "version": "v2.4.3", + "version_normalized": "2.4.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/doctrine2.git", + "reference": "8a13376d42b5ea467727ffe730aa0e14ca3c5e29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/8a13376d42b5ea467727ffe730aa0e14ca3c5e29", + "reference": "8a13376d42b5ea467727ffe730aa0e14ca3c5e29", + "shasum": "" + }, + "require": { + "doctrine/collections": "~1.1", + "doctrine/dbal": "~2.4", + "ext-pdo": "*", + "php": ">=5.3.2", + "symfony/console": "~2.0" + }, + "require-dev": { + "satooshi/php-coveralls": "dev-master", + "symfony/yaml": "~2.1" + }, + "suggest": { + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "time": "2014-06-10 11:49:08", + "bin": [ + "bin/doctrine", + "bin/doctrine.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Doctrine\\ORM\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "orm" + ] + }, + { + "name": "sonata-project/page-bundle", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/SonataPageBundle.git", + "reference": "88b73f20c08e3d6e8cbcd7ab053f4787c32adc9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/SonataPageBundle/zipball/88b73f20c08e3d6e8cbcd7ab053f4787c32adc9d", + "reference": "88b73f20c08e3d6e8cbcd7ab053f4787c32adc9d", + "shasum": "" + }, + "require": { + "friendsofsymfony/rest-bundle": "~1.1", + "jms/serializer-bundle": "~0.11", + "nelmio/api-doc-bundle": "~2.4", + "sonata-project/admin-bundle": "~2.2,>=2.2.9", + "sonata-project/cache-bundle": "~2.1,>=2.1.7", + "sonata-project/core-bundle": "~2.2@dev", + "sonata-project/datagrid-bundle": "~2.2@dev", + "sonata-project/doctrine-extensions": "~1.0", + "sonata-project/notification-bundle": "~2.2", + "sonata-project/seo-bundle": "~1.1", + "symfony-cmf/routing-bundle": "~1.1", + "symfony/symfony": "~2.2" + }, + "require-dev": { + "sonata-project/doctrine-orm-admin-bundle": "~2.2" + }, + "suggest": { + "sonata-project/doctrine-orm-admin-bundle": "~2.2" + }, + "time": "2014-06-10 23:39:09", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "Sonata\\PageBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@sonata-project.org", + "homepage": "http://sonata-project.org" + }, + { + "name": "Sonata Community", + "homepage": "https://github.com/sonata-project/SonataPageBundle/contributors" + } + ], + "description": "Symfony SonataPageBundle", + "homepage": "http://sonata-project.org/bundles/page", + "keywords": [ + "cms", + "page", + "sonata" + ] + }, + { + "name": "chamilo/chash", + "version": "dev-master", + "version_normalized": "9999999-dev", + "source": { + "type": "git", + "url": "https://github.com/chamilo/chash.git", + "reference": "3a1d82ea6f6c120ec9be50621bfe4a730f1cbf42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chamilo/chash/zipball/3a1d82ea6f6c120ec9be50621bfe4a730f1cbf42", + "reference": "3a1d82ea6f6c120ec9be50621bfe4a730f1cbf42", + "shasum": "" + }, + "require": { + "alchemy/zippy": "~0.1", + "composer/composer": "1.0.*@dev", + "doctrine/dbal": "~2.3", + "doctrine/migrations": "dev-master", + "doctrine/orm": "~2.3", + "php": ">=5.3.2", + "symfony/console": "~2.3", + "symfony/filesystem": "~2.3", + "symfony/finder": "~2.3", + "symfony/yaml": "~2.3", + "zendframework/zend-config": "~2.2", + "zendframework/zend-stdlib": "~2.2" + }, + "require-dev": { + "mikey179/vfsstream": ">=1.2", + "phpunit/phpunit": "3.7.*" + }, + "time": "2014-06-10 14:57:33", + "type": "library", + "installation-source": "source", + "autoload": { + "psr-0": { + "Chash": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "description": "Chamilo Shell", + "homepage": "http://www.chamilo.org" + }, + { + "name": "symfony/symfony", + "version": "v2.5.0", + "version_normalized": "2.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/symfony.git", + "reference": "59365832a09a1d914d14cbca6a21a7f572760c3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/symfony/zipball/59365832a09a1d914d14cbca6a21a7f572760c3b", + "reference": "59365832a09a1d914d14cbca6a21a7f572760c3b", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.2", + "php": ">=5.3.3", + "psr/log": "~1.0", + "symfony/icu": "~1.0", + "twig/twig": "~1.11" + }, + "replace": { + "symfony/browser-kit": "self.version", + "symfony/class-loader": "self.version", + "symfony/config": "self.version", + "symfony/console": "self.version", + "symfony/css-selector": "self.version", + "symfony/debug": "self.version", + "symfony/dependency-injection": "self.version", + "symfony/doctrine-bridge": "self.version", + "symfony/dom-crawler": "self.version", + "symfony/event-dispatcher": "self.version", + "symfony/expression-language": "self.version", + "symfony/filesystem": "self.version", + "symfony/finder": "self.version", + "symfony/form": "self.version", + "symfony/framework-bundle": "self.version", + "symfony/http-foundation": "self.version", + "symfony/http-kernel": "self.version", + "symfony/intl": "self.version", + "symfony/locale": "self.version", + "symfony/monolog-bridge": "self.version", + "symfony/options-resolver": "self.version", + "symfony/process": "self.version", + "symfony/propel1-bridge": "self.version", + "symfony/property-access": "self.version", + "symfony/proxy-manager-bridge": "self.version", + "symfony/routing": "self.version", + "symfony/security": "self.version", + "symfony/security-acl": "self.version", + "symfony/security-bundle": "self.version", + "symfony/security-core": "self.version", + "symfony/security-csrf": "self.version", + "symfony/security-http": "self.version", + "symfony/serializer": "self.version", + "symfony/stopwatch": "self.version", + "symfony/swiftmailer-bridge": "self.version", + "symfony/templating": "self.version", + "symfony/translation": "self.version", + "symfony/twig-bridge": "self.version", + "symfony/twig-bundle": "self.version", + "symfony/validator": "self.version", + "symfony/web-profiler-bundle": "self.version", + "symfony/yaml": "self.version" + }, + "require-dev": { + "doctrine/data-fixtures": "1.0.*", + "doctrine/dbal": "~2.2", + "doctrine/orm": "~2.2,>=2.2.3", + "egulias/email-validator": "1.1.0", + "ircmaxell/password-compat": "1.0.*", + "monolog/monolog": "~1.3", + "ocramius/proxy-manager": ">=0.3.1,<0.6-dev", + "propel/propel1": "1.6.*" + }, + "time": "2014-05-31 18:45:50", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Symfony\\": "src/" + }, + "classmap": [ + "src/Symfony/Component/HttpFoundation/Resources/stubs", + "src/Symfony/Component/Intl/Resources/stubs" + ], + "files": [ + "src/Symfony/Component/Intl/Resources/stubs/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "The Symfony PHP framework", + "homepage": "http://symfony.com", + "keywords": [ + "framework" + ] + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.2.1", + "version_normalized": "5.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "2b9af56cc676c338d52fca4c657e5bdff73bb7af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/2b9af56cc676c338d52fca4c657e5bdff73bb7af", + "reference": "2b9af56cc676c338d52fca4c657e5bdff73bb7af", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "require-dev": { + "mockery/mockery": "~0.9.1" + }, + "time": "2014-06-13 11:44:54", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Chris Corbyn" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.org", + "keywords": [ + "mail", + "mailer" + ] + }, + { + "name": "friendsofsymfony/user-bundle", + "version": "v1.3.4", + "version_normalized": "1.3.4.0", + "target-dir": "FOS/UserBundle", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git", + "reference": "2deeca89551c28ae27c19bad36861d732e69217e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/2deeca89551c28ae27c19bad36861d732e69217e", + "reference": "2deeca89551c28ae27c19bad36861d732e69217e", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1", + "symfony/security-bundle": "~2.1" + }, + "require-dev": { + "doctrine/doctrine-bundle": "*", + "swiftmailer/swiftmailer": "~4.3", + "symfony/validator": "~2.1", + "symfony/yaml": "~2.1", + "twig/twig": "~1.5", + "willdurand/propel-typehintable-behavior": "dev-master" + }, + "suggest": { + "willdurand/propel-typehintable-behavior": "Needed when using the propel implementation" + }, + "time": "2014-06-13 14:51:01", + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "FOS\\UserBundle": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + }, + { + "name": "Thibault Duplessis", + "email": "thibault.duplessis@gmail.com", + "homepage": "http://ornicar.github.com" + }, + { + "name": "FriendsOfSymfony Community", + "homepage": "https://github.com/friendsofsymfony/FOSUserBundle/contributors" + } + ], + "description": "Symfony FOSUserBundle", + "homepage": "http://friendsofsymfony.github.com", + "keywords": [ + "User management" + ] + }, + { + "name": "imagine/imagine", + "version": "v0.6.0", + "version_normalized": "0.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/avalanche123/Imagine.git", + "reference": "ff1550c270fe6116cfed778607024125e754899a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/ff1550c270fe6116cfed778607024125e754899a", + "reference": "ff1550c270fe6116cfed778607024125e754899a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "sami/sami": "dev-master" + }, + "suggest": { + "ext-gd": "to use the GD implementation", + "ext-gmagick": "to use the Gmagick implementation", + "ext-imagick": "to use the Imagick implementation" + }, + "time": "2014-06-13 10:56:49", + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.6-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Imagine": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bulat Shakirzyanov", + "email": "mallluhuct@gmail.com", + "homepage": "http://avalanche123.com" + } + ], + "description": "Image processing for PHP 5.3", + "homepage": "http://imagine.readthedocs.org/", + "keywords": [ + "drawing", + "graphics", + "image manipulation", + "image processing" ] } ] diff --git a/vendor/doctrine/common/.gitignore b/vendor/doctrine/common/.gitignore index fc873f9bd7..b15c686b46 100644 --- a/vendor/doctrine/common/.gitignore +++ b/vendor/doctrine/common/.gitignore @@ -5,5 +5,6 @@ dist/ tests/Doctrine/Tests/Common/Proxy/generated/ vendor/ .idea +composer.lock doctrine-common-*.tar doctrine-common-*.tar.gz diff --git a/vendor/doctrine/common/.travis.yml b/vendor/doctrine/common/.travis.yml index 333d36b3bd..3344d11ada 100644 --- a/vendor/doctrine/common/.travis.yml +++ b/vendor/doctrine/common/.travis.yml @@ -5,6 +5,14 @@ php: - 5.3 - 5.4 - 5.5 + - hhvm before_script: - - composer --prefer-source install + - composer --prefer-source install + +script: + - ./vendor/bin/phpunit + +matrix: + allow_failures: + - php: hhvm diff --git a/vendor/doctrine/common/README.md b/vendor/doctrine/common/README.md index c63f7627d9..30a080f722 100644 --- a/vendor/doctrine/common/README.md +++ b/vendor/doctrine/common/README.md @@ -7,6 +7,6 @@ The Doctrine Common project is a library that provides extensions to core PHP fu ## More resources: * [Website](http://www.doctrine-project.org) -* [Documentation](http://www.doctrine-project.org/projects/common/current/docs/en) +* [Documentation](http://docs.doctrine-project.org/projects/doctrine-common/en/latest/) * [Issue Tracker](http://www.doctrine-project.org/jira/browse/DCOM) * [Downloads](http://github.com/doctrine/common/downloads) diff --git a/vendor/doctrine/common/composer.json b/vendor/doctrine/common/composer.json index b8c36b5ea1..325c75ca12 100644 --- a/vendor/doctrine/common/composer.json +++ b/vendor/doctrine/common/composer.json @@ -20,6 +20,10 @@ "doctrine/lexer": "1.*", "doctrine/annotations": "1.*" }, + "minimum-stability": "dev", + "require-dev": { + "phpunit/phpunit": "~3.7" + }, "autoload": { "psr-0": { "Doctrine\\Common\\": "lib/" } }, diff --git a/vendor/doctrine/common/composer.lock b/vendor/doctrine/common/composer.lock deleted file mode 100644 index 1ed8a6b230..0000000000 --- a/vendor/doctrine/common/composer.lock +++ /dev/null @@ -1,322 +0,0 @@ -{ - "hash": "f763db6a8f5bcaff6e51ae516283a4c9", - "packages": [ - { - "name": "doctrine/annotations", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "v1.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/annotations/archive/v1.0.zip", - "reference": "v1.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.2", - "doctrine/lexer": "1.*" - }, - "require-dev": { - "doctrine/cache": "1.*" - }, - "time": "2013-01-12 19:23:32", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Annotations\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "parser", - "docblock" - ] - }, - { - "name": "doctrine/cache", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "v1.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/cache/archive/v1.0.zip", - "reference": "v1.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2013-01-10 22:43:46", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Cache\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "cache", - "caching" - ] - }, - { - "name": "doctrine/collections", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "v1.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/collections/archive/v1.0.zip", - "reference": "v1.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2013-01-12 16:36:50", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "collections", - "iterator", - "array" - ] - }, - { - "name": "doctrine/inflector", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "v1.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/inflector/archive/v1.0.zip", - "reference": "v1.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2013-01-10 21:49:15", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "string", - "inflection", - "singuarlize", - "pluarlize" - ] - }, - { - "name": "doctrine/lexer", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "v1.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/lexer/archive/v1.0.zip", - "reference": "v1.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2013-01-12 18:59:04", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "parser", - "lexer" - ] - } - ], - "packages-dev": null, - "aliases": [ - - ], - "minimum-stability": "stable", - "stability-flags": [ - - ] -} diff --git a/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php b/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php index fbbd2a8ae4..69eb17ec69 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php @@ -127,7 +127,7 @@ class EventManager } /** - * Adds an EventSubscriber. The subscriber is asked for all the events he is + * Adds an EventSubscriber. The subscriber is asked for all the events it is * interested in and added as a listener for these events. * * @param \Doctrine\Common\EventSubscriber $subscriber The subscriber. diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php index 1737243253..6668e610e0 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php @@ -48,6 +48,13 @@ abstract class AnnotationDriver implements MappingDriver */ protected $paths = array(); + /** + * The paths excluded from path where to look for mapping files. + * + * @var array + */ + protected $excludePaths = array(); + /** * The file extension of mapping documents. * @@ -107,7 +114,27 @@ abstract class AnnotationDriver implements MappingDriver } /** - * Retrieves the current annotation reader. + * Append exclude lookup paths to metadata driver. + * + * @param array $paths + */ + public function addExcludePaths(array $paths) + { + $this->excludePaths = array_unique(array_merge($this->excludePaths, $paths)); + } + + /** + * Retrieve the defined metadata lookup exclude paths. + * + * @return array + */ + public function getExcludePaths() + { + return $this->excludePaths; + } + + /** + * Retrieve the current annotation reader * * @return AnnotationReader */ @@ -192,7 +219,20 @@ abstract class AnnotationDriver implements MappingDriver ); foreach ($iterator as $file) { - $sourceFile = realpath($file[0]); + $sourceFile = $file[0]; + + if ( ! preg_match('(^phar:)i', $sourceFile)) { + $sourceFile = realpath($sourceFile); + } + + foreach ($this->excludePaths as $excludePath) { + $exclude = str_replace('\\', '/', realpath($excludePath)); + $current = str_replace('\\', '/', $sourceFile); + + if (strpos($current, $exclude) !== false) { + continue 2; + } + } require_once $sourceFile; diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php index c5a37a897b..b9acf9c487 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php @@ -21,6 +21,9 @@ namespace Doctrine\Common\Persistence\Mapping; use ReflectionClass; use ReflectionProperty; +use ReflectionMethod; +use ReflectionException; + use Doctrine\Common\Reflection\RuntimePublicReflectionProperty; use Doctrine\Common\Persistence\Mapping\MappingException; @@ -92,6 +95,12 @@ class RuntimeReflectionService implements ReflectionService */ public function hasPublicMethod($class, $method) { - return method_exists($class, $method) && is_callable(array($class, $method)); + try { + $reflectionMethod = new ReflectionMethod($class, $method); + } catch (ReflectionException $e) { + return false; + } + + return $reflectionMethod->isPublic(); } } diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php index f903097e79..e5bcb06e7c 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/StaticReflectionService.php @@ -78,6 +78,6 @@ class StaticReflectionService implements ReflectionService */ public function hasPublicMethod($class, $method) { - return method_exists($class, $method) && is_callable(array($class, $method)); + return true; } } diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php index bb29e438e1..02208c9d59 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Persistence/ObjectManager.php @@ -30,7 +30,7 @@ namespace Doctrine\Common\Persistence; interface ObjectManager { /** - * Finds a object by its identifier. + * Finds an object by its identifier. * * This is just a convenient shortcut for getRepository($className)->find($id). * diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php index adb6c7b7b1..dd1ae1b9b6 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php @@ -21,6 +21,7 @@ namespace Doctrine\Common\Proxy; use Doctrine\Common\Persistence\Mapping\ClassMetadataFactory; use Doctrine\Common\Proxy\Exception\InvalidArgumentException; +use Doctrine\Common\Proxy\Exception\OutOfBoundsException; use Doctrine\Common\Util\ClassUtils; use Doctrine\Common\Persistence\Mapping\ClassMetadata; @@ -108,6 +109,8 @@ abstract class AbstractProxyFactory * @param array $identifier * * @return \Doctrine\Common\Proxy\Proxy + * + * @throws \Doctrine\Common\Proxy\Exception\OutOfBoundsException */ public function getProxy($className, array $identifier) { @@ -118,6 +121,10 @@ abstract class AbstractProxyFactory $proxy = new $fqcn($definition->initializer, $definition->cloner); foreach ($definition->identifierFields as $idField) { + if (! isset($identifier[$idField])) { + throw OutOfBoundsException::missingPrimaryKeyValue($className, $idField); + } + $definition->reflectionFields[$idField]->setValue($proxy, $identifier[$idField]); } diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php index 73ec64d302..2b8e638611 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php @@ -33,9 +33,9 @@ class UnexpectedValueException extends BaseUnexpectedValueException implements P /** * @return self */ - public static function proxyDirectoryNotWritable() + public static function proxyDirectoryNotWritable($proxyDirectory) { - return new self('Your proxy directory must be writable'); + return new self(sprintf('Your proxy directory "%s" must be writable', $proxyDirectory)); } /** diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php index 25f3ed1f1e..4c5a239a4a 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php @@ -292,11 +292,11 @@ class extends \ implements \proxyDirectory); } if ( ! is_writable($parentDirectory)) { - throw UnexpectedValueException::proxyDirectoryNotWritable(); + throw UnexpectedValueException::proxyDirectoryNotWritable($this->proxyDirectory); } $tmpFileName = $fileName . '.' . uniqid('', true); @@ -619,7 +619,13 @@ EOT; /* @var $prop \ReflectionProperty */ foreach ($class->getReflectionClass()->getProperties() as $prop) { - $allProperties[] = $prop->getName(); + if ($prop->isStatic()) { + continue; + } + + $allProperties[] = $prop->isPrivate() + ? "\0" . $prop->getDeclaringClass()->getName() . "\0" . $prop->getName() + : $prop->getName(); } $lazyPublicProperties = array_keys($this->getLazyLoadedPublicProperties($class)); diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php b/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php index 22a2c96548..aac1f9090e 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Reflection/StaticReflectionParser.php @@ -131,8 +131,8 @@ class StaticReflectionParser implements ReflectionProviderInterface $this->parsed = true; $contents = file_get_contents($fileName); if ($this->classAnnotationOptimize) { - if (preg_match("/(\A.*)^\s+(abstract|final)?\s+class\s+{$this->shortClassName}\s+{/sm", $contents, $matches)) { - $contents = $matches[1]; + if (preg_match("/\A.*^\s*((abstract|final)\s+)?class\s+{$this->shortClassName}\s+/sm", $contents, $matches)) { + $contents = $matches[0]; } } $tokenParser = new TokenParser($contents); diff --git a/vendor/doctrine/common/lib/Doctrine/Common/Version.php b/vendor/doctrine/common/lib/Doctrine/Common/Version.php index f23a461ab2..ea1760ad6a 100644 --- a/vendor/doctrine/common/lib/Doctrine/Common/Version.php +++ b/vendor/doctrine/common/lib/Doctrine/Common/Version.php @@ -34,7 +34,7 @@ class Version /** * Current Doctrine Version. */ - const VERSION = '2.4.1'; + const VERSION = '2.4.2'; /** * Compares a Doctrine version with the current one. diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php index 1dd7a7afdc..9054b6c313 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/StaticReflectionServiceTest.php @@ -58,7 +58,7 @@ class StaticReflectionServiceTest extends \PHPUnit_Framework_TestCase public function testGetMethods() { $this->assertTrue($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods")); - $this->assertFalse($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods2")); + $this->assertTrue($this->reflectionService->hasPublicMethod(__CLASS__, "testGetMethods2")); } public function testGetAccessibleProperty() diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php index 8aa966d9a1..6ae9316383 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/AbstractProxyFactoryTest.php @@ -114,5 +114,33 @@ class AbstractProxyFactoryTest extends DoctrineTestCase $proxyFactory->resetUninitializedProxy($proxy); } + + public function testMissingPrimaryKeyValue() + { + $metadata = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadata'); + $proxy = $this->getMock('Doctrine\Common\Proxy\Proxy'); + $definition = new ProxyDefinition(get_class($proxy), array('missingKey'), array(), null, null); + $proxyGenerator = $this->getMock('Doctrine\Common\Proxy\ProxyGenerator', array(), array(), '', false); + $metadataFactory = $this->getMock('Doctrine\Common\Persistence\Mapping\ClassMetadataFactory'); + + $metadataFactory + ->expects($this->once()) + ->method('getMetadataFor') + ->will($this->returnValue($metadata)); + + $proxyFactory = $this->getMockForAbstractClass( + 'Doctrine\Common\Proxy\AbstractProxyFactory', + array($proxyGenerator, $metadataFactory, true) + ); + + $proxyFactory + ->expects($this->any()) + ->method('createProxyDefinition') + ->will($this->returnValue($definition)); + + $this->setExpectedException('\OutOfBoundsException'); + + $generatedProxy = $proxyFactory->getProxy('Class', array()); + } } diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php index 4d5a6134a0..45d45e5d6a 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyClassGeneratorTest.php @@ -118,6 +118,25 @@ class ProxyClassGeneratorTest extends PHPUnit_Framework_TestCase $this->assertEquals(1, substr_count($classCode, 'parent::__sleep()')); } + /** + * Check that the proxy doesn't serialize static properties (in __sleep() method) + * @group DCOM-212 + */ + public function testClassWithStaticPropertyProxyGeneration() + { + if (!class_exists('Doctrine\Tests\Common\ProxyProxy\__CG__\StaticPropertyClass', false)) { + $className = 'Doctrine\Tests\Common\Proxy\StaticPropertyClass'; + $metadata = $this->createClassMetadata($className, array()); + $proxyGenerator = new ProxyGenerator(__DIR__ . '/generated', __NAMESPACE__ . 'Proxy', true); + + $this->generateAndRequire($proxyGenerator, $metadata); + } + + $classCode = file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyStaticPropertyClass.php'); + $this->assertEquals(1, substr_count($classCode, 'function __sleep')); + $this->assertNotContains('protectedStaticProperty', $classCode); + } + private function generateAndRequire($proxyGenerator, $metadata) { $proxyGenerator->generateProxyClass($metadata, $proxyGenerator->getProxyFileName($metadata->getName())); diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php index a63f8bd8ed..1ed9d92a72 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php @@ -230,6 +230,26 @@ class ProxyMagicMethodsTest extends PHPUnit_Framework_TestCase $this->assertTrue($cloned->cloned); } + /** + * @group DCOM-175 + */ + public function testClonesPrivateProperties() + { + $proxyClassName = $this->generateProxyClass(__NAMESPACE__ . '\\SerializedClass'); + /* @var $proxy SerializedClass */ + $proxy = new $proxyClassName(); + + $proxy->setFoo(1); + $proxy->setBar(2); + $proxy->setBaz(3); + + $unserialized = unserialize(serialize($proxy)); + + $this->assertSame(1, $unserialized->getFoo()); + $this->assertSame(2, $unserialized->getBar()); + $this->assertSame(3, $unserialized->getBaz()); + } + /** * @param $className * diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php index 72faa77813..11b3fc8fa4 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/DeeperNamespaceParent.php @@ -2,6 +2,6 @@ namespace Doctrine\Tests\Common\Reflection; -class SameNamespaceParent extends Dummies\NoParent +class DeeperNamespaceParent extends Dummies\NoParent { } diff --git a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php index a180e09825..fa0cbc3486 100644 --- a/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php +++ b/vendor/doctrine/common/tests/Doctrine/Tests/Common/Reflection/StaticReflectionParserTest.php @@ -9,45 +9,75 @@ use Doctrine\Common\Reflection\Psr0FindFile; class StaticReflectionParserTest extends DoctrineTestCase { /** - * @dataProvider classAnnotationOptimize + * @dataProvider parentClassData * * @param bool $classAnnotationOptimize + * @param string $parsedClassName + * @param string $expectedClassName * * @return void */ - public function testParentClass($classAnnotationOptimize) + public function testParentClass($classAnnotationOptimize, $parsedClassName, $expectedClassName) { + // If classed annotation optimization is enabled the properties tested + // below cannot be found. + if ($classAnnotationOptimize) { + $this->setExpectedException('ReflectionException'); + } + $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1); $paths = array( 'Doctrine\\Tests' => array($testsRoot), ); - $noParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\NoParent'; - $staticReflectionParser = new StaticReflectionParser($noParentClassName, new Psr0FindFile($paths), $classAnnotationOptimize); + $staticReflectionParser = new StaticReflectionParser($parsedClassName, new Psr0FindFile($paths), $classAnnotationOptimize); $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName(); - $this->assertEquals($noParentClassName, $declaringClassName); + $this->assertEquals($expectedClassName, $declaringClassName); - $className = 'Doctrine\\Tests\\Common\\Reflection\\FullyClassifiedParent'; - $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths), $classAnnotationOptimize); - $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName(); - $this->assertEquals($noParentClassName, $declaringClassName); - - $className = 'Doctrine\\Tests\\Common\\Reflection\\SameNamespaceParent'; - $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths), $classAnnotationOptimize); - $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName(); - $this->assertEquals($noParentClassName, $declaringClassName); + } + /** + * @return array + */ + public function parentClassData() + { + $data = array(); + $noParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\NoParent'; $dummyParentClassName = 'Doctrine\\Tests\\Common\\Reflection\\Dummies\\NoParent'; + foreach (array(false, true) as $classAnnotationOptimize) { + $data[] = array( + $classAnnotationOptimize, $noParentClassName, $noParentClassName, + ); + $data[] = array( + $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\FullyClassifiedParent', $noParentClassName, + ); + $data[] = array( + $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\SameNamespaceParent', $noParentClassName, + ); + $data[] = array( + $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\DeeperNamespaceParent', $dummyParentClassName, + ); + $data[] = array( + $classAnnotationOptimize, 'Doctrine\\Tests\\Common\\Reflection\\UseParent', $dummyParentClassName, + ); + } + return $data; + } - $className = 'Doctrine\\Tests\\Common\\Reflection\\DeeperNamespaceParent'; - $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths), $classAnnotationOptimize); - $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName(); - $this->assertEquals($dummyParentClassName, $declaringClassName); - - $className = 'Doctrine\\Tests\\Common\\Reflection\\UseParent'; - $staticReflectionParser = new StaticReflectionParser($className, new Psr0FindFile($paths), $classAnnotationOptimize); - $declaringClassName = $staticReflectionParser->getStaticReflectionParserForDeclaringClass('property', 'test')->getClassName(); - $this->assertEquals($dummyParentClassName, $declaringClassName); - + /** + * @dataProvider classAnnotationOptimize + */ + public function testClassAnnotationOptimizedParsing($classAnnotationOptimize) { + $testsRoot = substr(__DIR__, 0, -strlen(__NAMESPACE__) - 1); + $paths = array( + 'Doctrine\\Tests' => array($testsRoot), + ); + $staticReflectionParser = new StaticReflectionParser('Doctrine\\Tests\\Common\\Reflection\\ExampleAnnotationClass', new Psr0FindFile($paths), $classAnnotationOptimize); + $expectedDocComment = '/** + * @Annotation( + * key = "value" + * ) + */'; + $this->assertEquals($expectedDocComment, $staticReflectionParser->getDocComment('class')); } /** diff --git a/vendor/doctrine/common/tests/NativePhpunitTask.php b/vendor/doctrine/common/tests/NativePhpunitTask.php deleted file mode 100644 index 7033283a52..0000000000 --- a/vendor/doctrine/common/tests/NativePhpunitTask.php +++ /dev/null @@ -1,246 +0,0 @@ - - */ -class NativePhpunitTask extends Task -{ - private $test; - private $testfile; - private $testdirectory; - private $configuration = null; - private $coverageClover = null; - private $junitlogfile = null; - private $haltonfailure = true; - private $haltonerror = true; - - public function setTestdirectory($directory) { - $this->testdirectory = $directory; - } - - public function setTest($test) { - $this->test = $test; - } - - public function setTestfile($testfile) { - $this->testfile = $testfile; - } - - public function setJunitlogfile($junitlogfile) { - if (strlen($junitlogfile) == 0) { - $junitlogfile = NULL; - } - - $this->junitlogfile = $junitlogfile; - } - - public function setConfiguration($configuration) { - if (strlen($configuration) == 0) { - $configuration = NULL; - } - - $this->configuration = $configuration; - } - - public function setCoverageClover($coverageClover) { - if (strlen($coverageClover) == 0) { - $coverageClover = NULL; - } - - $this->coverageClover = $coverageClover; - } - - public function setHaltonfailure($haltonfailures) { - $this->haltonfailure = $haltonfailures; - } - - public function setHaltonerror($haltonerrors) { - $this->haltonerror = $haltonerrors; - } - - public function init() - { - require_once "PHPUnit/Runner/Version.php"; - $version = PHPUnit_Runner_Version::id(); - - if (version_compare($version, '3.4.0') < 0) { - throw new BuildException("NativePHPUnitTask requires PHPUnit version >= 3.2.0", $this->getLocation()); - } - - require_once 'PHPUnit/Util/Filter.php'; - - // point PHPUnit_MAIN_METHOD define to non-existing method - if (!defined('PHPUnit_MAIN_METHOD')) { - define('PHPUnit_MAIN_METHOD', 'PHPUnitTask::undefined'); - } - } - - public function main() - { - if (!is_dir(realpath($this->testdirectory))) { - throw new BuildException("NativePHPUnitTask requires a Test Directory path given, '".$this->testdirectory."' given."); - } - set_include_path(realpath($this->testdirectory) . PATH_SEPARATOR . get_include_path()); - - $printer = new NativePhpunitPrinter(); - - $arguments = array( - 'configuration' => $this->configuration, - 'coverageClover' => $this->coverageClover, - 'junitLogfile' => $this->junitlogfile, - 'printer' => $printer, - ); - - $runner = new PHPUnit_TextUI_TestRunner(); - $suite = $runner->getTest($this->test, $this->testfile, true); - - try { - $result = $runner->doRun($suite, $arguments); - /* @var $result PHPUnit_Framework_TestResult */ - - if ( ($this->haltonfailure && $result->failureCount() > 0) || ($this->haltonerror && $result->errorCount() > 0) ) { - throw new BuildException("PHPUnit: ".$result->failureCount()." Failures and ".$result->errorCount()." Errors, ". - "last failure message: ".$printer->getMessages()); - } - - $this->log("PHPUnit Success: ".count($result->passed())." tests passed, no ". - "failures (".$result->skippedCount()." skipped, ".$result->notImplementedCount()." not implemented)"); - - // Hudson for example doesn't like the backslash in class names - if (is_file($this->coverageClover)) { - $this->log("Generated Clover Coverage XML to: ".$this->coverageClover); - $content = file_get_contents($this->coverageClover); - $content = str_replace("\\", ".", $content); - file_put_contents($this->coverageClover, $content); - unset($content); - } - - } catch(\Exception $e) { - throw new BuildException("NativePhpunitTask failed: ".$e->getMessage()); - } - } -} - -class NativePhpunitPrinter extends PHPUnit_Util_Printer implements PHPUnit_Framework_TestListener -{ - private $_messages = array(); - - public function write($buffer) - { - // do nothing - } - - public function getMessages() - { - return $this->_messages; - } - - /** - * An error occurred. - * - * @param PHPUnit_Framework_Test $test - * @param Exception $e - * @param float $time - */ - public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) - { - $this->_messages[] = "Test ERROR: ".$test->getName().": ".$e->getMessage(); - } - - /** - * A failure occurred. - * - * @param PHPUnit_Framework_Test $test - * @param PHPUnit_Framework_AssertionFailedError $e - * @param float $time - */ - public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) - { - $this->_messages[] = "Test FAILED: ".$test->getName().": ".$e->getMessage(); - } - - /** - * Incomplete test. - * - * @param PHPUnit_Framework_Test $test - * @param Exception $e - * @param float $time - */ - public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) - { - - } - - /** - * Skipped test. - * - * @param PHPUnit_Framework_Test $test - * @param Exception $e - * @param float $time - * @since Method available since Release 3.0.0 - */ - public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) - { - - } - - /** - * A test suite started. - * - * @param PHPUnit_Framework_TestSuite $suite - * @since Method available since Release 2.2.0 - */ - public function startTestSuite(PHPUnit_Framework_TestSuite $suite) - { - - } - - /** - * A test suite ended. - * - * @param PHPUnit_Framework_TestSuite $suite - * @since Method available since Release 2.2.0 - */ - public function endTestSuite(PHPUnit_Framework_TestSuite $suite) - { - - } - - /** - * A test started. - * - * @param PHPUnit_Framework_Test $test - */ - public function startTest(PHPUnit_Framework_Test $test) - { - - } - - /** - * A test ended. - * - * @param PHPUnit_Framework_Test $test - * @param float $time - */ - public function endTest(PHPUnit_Framework_Test $test, $time) - { - - } -} diff --git a/vendor/doctrine/orm/bin/doctrine.php b/vendor/doctrine/orm/bin/doctrine.php index c73556284f..4a960764a6 100755 --- a/vendor/doctrine/orm/bin/doctrine.php +++ b/vendor/doctrine/orm/bin/doctrine.php @@ -27,7 +27,6 @@ $directories = array(getcwd(), getcwd() . DIRECTORY_SEPARATOR . 'config'); $configFile = null; foreach ($directories as $directory) { $configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php'; - if (file_exists($configFile)) { break; } diff --git a/vendor/doctrine/orm/docs/en/index.rst b/vendor/doctrine/orm/docs/en/index.rst index e71ea7a432..72cac57271 100644 --- a/vendor/doctrine/orm/docs/en/index.rst +++ b/vendor/doctrine/orm/docs/en/index.rst @@ -14,7 +14,7 @@ Doctrine ORM don't panic. You can get help from different sources: - There is a :doc:`FAQ ` with answers to frequent questions. - The `Doctrine Mailing List `_ -- Internet Relay Chat (IRC) in `#doctrine on Freenode `_ +- Internet Relay Chat (IRC) in #doctrine on Freenode - Report a bug on `JIRA `_. - On `Twitter `_ with ``#doctrine2`` - On `StackOverflow `_ @@ -120,3 +120,4 @@ Cookbook :doc:`MySQL Enums ` :doc:`Advanced Field Value Conversion ` +.. include:: toc.rst diff --git a/vendor/doctrine/orm/docs/en/reference/caching.rst b/vendor/doctrine/orm/docs/en/reference/caching.rst index 1e87efaffe..d45090cbc0 100644 --- a/vendor/doctrine/orm/docs/en/reference/caching.rst +++ b/vendor/doctrine/orm/docs/en/reference/caching.rst @@ -106,7 +106,7 @@ Redis In order to use the Redis cache driver you must have it compiled and enabled in your php.ini. You can read about what is Redis `from here `_. Also check -`here `_ for how you can use +`A PHP extension for Redis `_ for how you can use and install Redis PHP extension. Below is a simple example of how you could use the Redis cache diff --git a/vendor/doctrine/orm/docs/en/reference/configuration.rst b/vendor/doctrine/orm/docs/en/reference/configuration.rst index d8e718b5ca..4af53c4f03 100644 --- a/vendor/doctrine/orm/docs/en/reference/configuration.rst +++ b/vendor/doctrine/orm/docs/en/reference/configuration.rst @@ -100,7 +100,7 @@ Doctrine ships with a number of command line tools that are very helpful during development. You can call this command from the Composer binary directory: -.. code-block:: +.. code-block:: sh $ php vendor/bin/doctrine diff --git a/vendor/doctrine/orm/docs/en/reference/events.rst b/vendor/doctrine/orm/docs/en/reference/events.rst index 517f2ec5b3..4f6cfedb71 100644 --- a/vendor/doctrine/orm/docs/en/reference/events.rst +++ b/vendor/doctrine/orm/docs/en/reference/events.rst @@ -207,10 +207,13 @@ listeners: - Lifecycle Callbacks are methods on the entity classes that are - called when the event is triggered. They receives some kind of ``EventArgs``. + called when the event is triggered. As of v2.4 they receive some kind + of ``EventArgs`` instance. - Lifecycle Event Listeners and Subscribers are classes with specific callback - methods that receives some kind of ``EventArgs`` instance which - give access to the entity, EntityManager or other relevant data. + methods that receives some kind of ``EventArgs`` instance. + +The EventArgs instance received by the listener gives access to the entity, +EntityManager and other relevant data. .. note:: @@ -224,10 +227,11 @@ listeners: Lifecycle Callbacks ------------------- -A lifecycle event is a regular event with the additional feature of -providing a mechanism to register direct callbacks inside the -corresponding entity classes that are executed when the lifecycle -event occurs. +Lifecycle Callbacks are defined on an entity class. They allow you to +trigger callbacks whenever an instance of that entity class experiences +a relevant lifecycle event. More than one callback can be defined for each +lifecycle event. Lifecycle Callbacks are best used for simple operations +specific to a particular entity class's lifecycle. .. code-block:: php @@ -277,8 +281,9 @@ event occurs. } } -Note that when using annotations you have to apply the -@HasLifecycleCallbacks marker annotation on the entity class. +Note that the methods set as lifecycle callbacks need to be public and, +when using these annotations, you have to apply the +``@HasLifecycleCallbacks`` marker annotation on the entity class. If you want to register lifecycle callbacks from YAML or XML you can do it with the following. @@ -295,6 +300,10 @@ can do it with the following. prePersist: [ doStuffOnPrePersist, doOtherStuffOnPrePersistToo ] postPersist: [ doStuffOnPostPersist ] +In YAML the ``key`` of the lifecycleCallbacks entry is the event that you +are triggering on and the value is the method (or methods) to call. The allowed +event types are the ones listed in the previous Lifecycle Events section. + XML would look something like this: .. code-block:: xml @@ -317,9 +326,14 @@ XML would look something like this: -You just need to make sure a public ``doStuffOnPrePersist()`` and -``doStuffOnPostPersist()`` method is defined on your ``User`` -model. +In XML the ``type`` of the lifecycle-callback entry is the event that you +are triggering on and the ``method`` is the method to call. The allowed event +types are the ones listed in the previous Lifecycle Events section. + +When using YAML or XML you need to remember to create public methods to match the +callback names you defined. E.g. in these examples ``doStuffOnPrePersist()``, +``doOtherStuffOnPrePersist()`` and ``doStuffOnPostPersist()`` methods need to be +defined on your ``User`` model. .. code-block:: php @@ -375,8 +389,10 @@ Listening and subscribing to Lifecycle Events Lifecycle event listeners are much more powerful than the simple lifecycle callbacks that are defined on the entity classes. They -allow to implement re-usable behaviors between different entity -classes, yet require much more detailed knowledge about the inner +sit at a level above the entities and allow you to implement re-usable +behaviors across different entity classes. + +Note that they require much more detailed knowledge about the inner workings of the EntityManager and UnitOfWork. Please read the *Implementing Event Listeners* section carefully if you are trying to write your own listener. @@ -476,8 +492,8 @@ data and lost updates/persists/removes. For the described events that are also lifecycle callback events the restrictions apply as well, with the additional restriction -that you do not have access to the EntityManager or UnitOfWork APIs -inside these events. +that (prior to version 2.4) you do not have access to the +EntityManager or UnitOfWork APIs inside these events. prePersist ~~~~~~~~~~ @@ -501,11 +517,9 @@ The following restrictions apply to ``prePersist``: - If you are using a PrePersist Identity Generator such as sequences the ID value will *NOT* be available within any PrePersist events. -- Doctrine will not recognize changes made to relations in a pre - persist event called by "reachability" through a cascade persist - unless you use the internal ``UnitOfWork`` API. We do not recommend - such operations in the persistence by reachability context, so do - this at your own risk and possibly supported by unit-tests. +- Doctrine will not recognize changes made to relations in a prePersist + event. This includes modifications to + collections such as additions, removals or replacement. preRemove ~~~~~~~~~ @@ -699,7 +713,8 @@ Restrictions for this event: recognized by the flush operation anymore. - Changes to fields of the passed entities are not recognized by the flush operation anymore, use the computed change-set passed to - the event to modify primitive field values. + the event to modify primitive field values, e.g. use + ``$eventArgs->setNewValue($field, $value);`` as in the Alice to Bob example above. - Any calls to ``EntityManager#persist()`` or ``EntityManager#remove()``, even in combination with the UnitOfWork API are strongly discouraged and don't work as expected outside the @@ -769,9 +784,10 @@ An ``Entity Listener`` could be any class, by default it should be a class with - Different from :ref:`reference-events-implementing-listeners` an ``Entity Listener`` is invoked just to the specified entity - An entity listener method receives two arguments, the entity instance and the lifecycle event. -- A callback method could be defined by naming convention or specifying a method mapping. -- When the listener mapping is not given the parser will lookup for methods that match with the naming convention. -- When the listener mapping is given the parser won't lookup for any naming convention. +- The callback method can be defined by naming convention or specifying a method mapping. +- When a listener mapping is not given the parser will use the naming convention to look for a matching method, + e.g. it will look for a public ``preUpdate()`` method if you are listening to the ``preUpdate`` event. +- When a listener mapping is given the parser will not look for any methods using the naming convention. .. code-block:: php diff --git a/vendor/doctrine/orm/docs/en/reference/faq.rst b/vendor/doctrine/orm/docs/en/reference/faq.rst index 28e3a42c49..45fde18d7e 100644 --- a/vendor/doctrine/orm/docs/en/reference/faq.rst +++ b/vendor/doctrine/orm/docs/en/reference/faq.rst @@ -143,7 +143,7 @@ See the documentation chapter on :doc:`inheritance mapping the details. Why does Doctrine not create proxy objects for my inheritance hierarchy? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you set a many-to-one or one-to-one association target-entity to any parent class of an inheritance hierarchy Doctrine does not know what PHP class the foreign is actually of. diff --git a/vendor/doctrine/orm/docs/en/toc.rst b/vendor/doctrine/orm/docs/en/toc.rst index 73f1f25b93..1a331fa238 100644 --- a/vendor/doctrine/orm/docs/en/toc.rst +++ b/vendor/doctrine/orm/docs/en/toc.rst @@ -8,12 +8,14 @@ Tutorials :maxdepth: 1 tutorials/getting-started + tutorials/getting-started-database + tutorials/getting-started-models tutorials/working-with-indexed-associations tutorials/extra-lazy-associations tutorials/composite-primary-keys tutorials/ordered-associations - tutorials/in-ten-quick-steps tutorials/override-field-association-mappings-in-subclasses + tutorials/pagination.rst Reference Guide --------------- @@ -22,9 +24,9 @@ Reference Guide :maxdepth: 1 :numbered: - reference/introduction reference/architecture - reference/configuration + reference/installation + reference/configuration.rst reference/faq reference/basic-mapping reference/association-mapping @@ -51,9 +53,9 @@ Reference Guide reference/metadata-drivers reference/best-practices reference/limitations-and-known-issues - tutorials/pagination.rst reference/filters.rst reference/namingstrategy.rst + reference/advanced-configuration.rst Cookbook @@ -63,6 +65,7 @@ Cookbook :maxdepth: 1 cookbook/aggregate-fields + cookbook/custom-mapping-types cookbook/decorator-pattern cookbook/dql-custom-walkers cookbook/dql-user-defined-functions @@ -70,6 +73,7 @@ Cookbook cookbook/implementing-the-notify-changetracking-policy cookbook/implementing-wakeup-or-clone cookbook/integrating-with-codeigniter + cookbook/resolve-target-entity-listener cookbook/sql-table-prefixes cookbook/strategy-cookbook-introduction cookbook/validation-of-entities diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/HydrationException.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/HydrationException.php index c1c13c1f77..b35012c994 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/HydrationException.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/HydrationException.php @@ -88,4 +88,18 @@ class HydrationException extends \Doctrine\ORM\ORMException $discrColumnName, $entityName, $dqlAlias )); } + + /** + * @param string $discrValue + * @param array $discrMap + * + * @return HydrationException + */ + public static function invalidDiscriminatorValue($discrValue, $discrMap) + { + return new self(sprintf( + 'The discriminator value "%s" is invalid. It must be one of "%s".', + $discrValue, implode('", "', $discrMap) + )); + } } diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php index fafc497c0d..cc91acdd3d 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php @@ -266,7 +266,13 @@ class ObjectHydrator extends AbstractHydrator throw HydrationException::emptyDiscriminatorValue($dqlAlias); } - $className = $this->ce[$className]->discriminatorMap[$data[$discrColumn]]; + $discrMap = $this->ce[$className]->discriminatorMap; + + if ( ! isset($discrMap[$data[$discrColumn]])) { + throw HydrationException::invalidDiscriminatorValue($data[$discrColumn], array_keys($discrMap)); + } + + $className = $discrMap[$data[$discrColumn]]; unset($data[$discrColumn]); } diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php index eb0982c7d6..504d82c51b 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php @@ -98,7 +98,13 @@ class SimpleObjectHydrator extends AbstractHydrator throw HydrationException::emptyDiscriminatorValue(key($this->_rsm->aliasMap)); } - $entityName = $this->class->discriminatorMap[$sqlResult[$discrColumnName]]; + $discrMap = $this->class->discriminatorMap; + + if ( ! isset($discrMap[$sqlResult[$discrColumnName]])) { + throw HydrationException::invalidDiscriminatorValue($sqlResult[$discrColumnName], array_keys($discrMap)); + } + + $entityName = $discrMap[$sqlResult[$discrColumnName]]; unset($sqlResult[$discrColumnName]); } diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index 01d5b77dd5..4880055b3e 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -866,7 +866,11 @@ class ClassMetadataInfo implements ClassMetadata public function newInstance() { if ($this->_prototype === null) { - $this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name)); + if (PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50513) { + $this->_prototype = $this->reflClass->newInstanceWithoutConstructor(); + } else { + $this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name)); + } } return clone $this->_prototype; diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php index 157bbf618b..4fcb20f771 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php @@ -1497,6 +1497,7 @@ class SqlWalker implements TreeWalker break; } + $fieldType = 'string'; switch (true) { case ($e instanceof AST\PathExpression): $fieldName = $e->field; @@ -1517,10 +1518,6 @@ class SqlWalker implements TreeWalker break; } break; - - default: - $fieldType = 'string'; - break; } $this->scalarResultAliasMap[$resultAlias] = $columnAlias; diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php index 365fcb415c..7e88615aa0 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php @@ -22,7 +22,7 @@ namespace Doctrine\ORM\Tools\Console; use Symfony\Component\Console\Application; use Symfony\Component\Console\Helper\HelperSet; use Doctrine\ORM\Version; -use Doctrine\ORM\EntityManager; +use Doctrine\ORM\EntityManagerInterface; use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper; use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper; @@ -35,10 +35,10 @@ class ConsoleRunner /** * Create a Symfony Console HelperSet * - * @param EntityManager $entityManager + * @param EntityManagerInterface $entityManager * @return HelperSet */ - public static function createHelperSet(EntityManager $entityManager) + public static function createHelperSet(EntityManagerInterface $entityManager) { return new HelperSet(array( 'db' => new ConnectionHelper($entityManager->getConnection()), diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php index 1a8fde1841..150fc9b40e 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php @@ -193,7 +193,7 @@ class XmlExporter extends AbstractExporter } if (isset($field['unique']) && $field['unique']) { - $fieldXml->addAttribute('unique', $field['unique']); + $fieldXml->addAttribute('unique', $field['unique'] ? 'true' : 'false'); } if (isset($field['options'])) { diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php index 2ee5f90562..6598cf2b10 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php @@ -100,9 +100,9 @@ class LimitSubqueryOutputWalker extends SqlWalker $hiddens[$idx] = $expr->hiddenAliasResultVariable; $expr->hiddenAliasResultVariable = false; } - + $innerSql = parent::walkSelectStatement($AST); - + // Restore hiddens foreach ($AST->selectClause->selectExpressions as $idx => $expr) { $expr->hiddenAliasResultVariable = $hiddens[$idx]; @@ -160,11 +160,8 @@ class LimitSubqueryOutputWalker extends SqlWalker $sql = sprintf('SELECT DISTINCT %s FROM (%s) dctrn_result', implode(', ', $sqlIdentifier), $innerSql); - if ($this->platform instanceof PostgreSqlPlatform || - $this->platform instanceof OraclePlatform) { - //http://www.doctrine-project.org/jira/browse/DDC-1958 - $this->preserveSqlOrdering($AST, $sqlIdentifier, $innerSql, $sql); - } + // http://www.doctrine-project.org/jira/browse/DDC-1958 + $sql = $this->preserveSqlOrdering($AST, $sqlIdentifier, $innerSql, $sql); // Apply the limit and offset. $sql = $this->platform->modifyLimitQuery( @@ -181,7 +178,7 @@ class LimitSubqueryOutputWalker extends SqlWalker return $sql; } - + /** * Generates new SQL for Postgresql or Oracle if necessary. * @@ -192,7 +189,7 @@ class LimitSubqueryOutputWalker extends SqlWalker * * @return void */ - public function preserveSqlOrdering(SelectStatement $AST, array $sqlIdentifier, $innerSql, &$sql) + public function preserveSqlOrdering(SelectStatement $AST, array $sqlIdentifier, $innerSql, $sql) { // For every order by, find out the SQL alias by inspecting the ResultSetMapping. $sqlOrderColumns = array(); @@ -215,11 +212,6 @@ class LimitSubqueryOutputWalker extends SqlWalker $sqlOrderColumns = array_diff($sqlOrderColumns, $sqlIdentifier); } - // We don't need orderBy in inner query. - // However at least on 5.4.6 I'm getting a segmentation fault and thus we don't clear it for now. - /*$AST->orderByClause = null; - $innerSql = parent::walkSelectStatement($AST);*/ - if (count($orderBy)) { $sql = sprintf( 'SELECT DISTINCT %s FROM (%s) dctrn_result ORDER BY %s', @@ -228,5 +220,7 @@ class LimitSubqueryOutputWalker extends SqlWalker implode(', ', $orderBy) ); } + + return $sql; } } diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php b/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php index 745b0322ed..5ad54e83c3 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php @@ -541,7 +541,15 @@ class UnitOfWork implements PropertyChangedListener foreach ($class->reflFields as $name => $refProp) { $value = $refProp->getValue($entity); - if ($class->isCollectionValuedAssociation($name) && $value !== null && ! ($value instanceof PersistentCollection)) { + if ($class->isCollectionValuedAssociation($name) && $value !== null) { + if ($value instanceof PersistentCollection) { + if ($value->getOwner() === $entity) { + continue; + } + + $value = new ArrayCollection($value->getValues()); + } + // If $value is not a Collection then use an ArrayCollection. if ( ! $value instanceof Collection) { $value = new ArrayCollection($value); @@ -894,30 +902,35 @@ class UnitOfWork implements PropertyChangedListener $actualData = array(); foreach ($class->reflFields as $name => $refProp) { - if ( ! $class->isIdentifier($name) || ! $class->isIdGeneratorIdentity()) { + if (( ! $class->isIdentifier($name) || ! $class->isIdGeneratorIdentity()) + && ($name !== $class->versionField) + && ! $class->isCollectionValuedAssociation($name)) { $actualData[$name] = $refProp->getValue($entity); } } + if ( ! isset($this->originalEntityData[$oid])) { + throw new \RuntimeException('Cannot call recomputeSingleEntityChangeSet before computeChangeSet on an entity.'); + } + $originalData = $this->originalEntityData[$oid]; $changeSet = array(); foreach ($actualData as $propName => $actualValue) { $orgValue = isset($originalData[$propName]) ? $originalData[$propName] : null; - if (is_object($orgValue) && $orgValue !== $actualValue) { - $changeSet[$propName] = array($orgValue, $actualValue); - } else if ($orgValue != $actualValue || ($orgValue === null ^ $actualValue === null)) { + if ($orgValue !== $actualValue) { $changeSet[$propName] = array($orgValue, $actualValue); } } if ($changeSet) { - if (isset($this->entityChangeSets[$oid])) { - $this->entityChangeSets[$oid] = array_merge($this->entityChangeSets[$oid], $changeSet); - } + $this->entityChangeSets[$oid] = (isset($this->entityChangeSets[$oid])) + ? array_merge($this->entityChangeSets[$oid], $changeSet) + : $changeSet; $this->originalEntityData[$oid] = $actualData; + $this->entityUpdates[$oid] = $entity; } } @@ -2479,15 +2492,15 @@ class UnitOfWork implements PropertyChangedListener ? $data[$class->associationMappings[$fieldName]['joinColumns'][0]['name']] : $data[$fieldName]; } - - $idHash = implode(' ', $id); } else { - $idHash = isset($class->associationMappings[$class->identifier[0]]) + $id = isset($class->associationMappings[$class->identifier[0]]) ? $data[$class->associationMappings[$class->identifier[0]]['joinColumns'][0]['name']] : $data[$class->identifier[0]]; - $id = array($class->identifier[0] => $idHash); + $id = array($class->identifier[0] => $id); } + + $idHash = implode(' ', $id); if (isset($this->identityMap[$class->rootEntityName][$idHash])) { $entity = $this->identityMap[$class->rootEntityName][$idHash]; diff --git a/vendor/doctrine/orm/lib/Doctrine/ORM/Version.php b/vendor/doctrine/orm/lib/Doctrine/ORM/Version.php index a1b25fc044..1370e2f089 100644 --- a/vendor/doctrine/orm/lib/Doctrine/ORM/Version.php +++ b/vendor/doctrine/orm/lib/Doctrine/ORM/Version.php @@ -36,7 +36,7 @@ class Version /** * Current Doctrine Version */ - const VERSION = '2.4.2'; + const VERSION = '2.4.3'; /** * Compares a Doctrine version with the current one. diff --git a/vendor/monolog/monolog/CHANGELOG.mdown b/vendor/monolog/monolog/CHANGELOG.mdown index d675996969..06134f7fac 100644 --- a/vendor/monolog/monolog/CHANGELOG.mdown +++ b/vendor/monolog/monolog/CHANGELOG.mdown @@ -1,3 +1,10 @@ +### 1.10.0 (2014-06-04) + + * Added Logger::getHandlers() and Logger::getProcessors() methods + * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached + * Added support for extra data in NewRelicHandler + * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines + ### 1.9.1 (2014-04-24) * Fixed regression in RotatingFileHandler file permissions diff --git a/vendor/monolog/monolog/LICENSE b/vendor/monolog/monolog/LICENSE index 5df1c397f7..357270450e 100644 --- a/vendor/monolog/monolog/LICENSE +++ b/vendor/monolog/monolog/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) Jordi Boggiano +Copyright (c) 2011-2014 Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/monolog/monolog/composer.json b/vendor/monolog/monolog/composer.json index bcbe1b62a8..c94c302cde 100644 --- a/vendor/monolog/monolog/composer.json +++ b/vendor/monolog/monolog/composer.json @@ -39,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "1.10.x-dev" } } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php index 038db4e594..d1e1ee60b1 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php @@ -25,13 +25,15 @@ class ErrorLogHandler extends AbstractProcessingHandler const SAPI = 4; protected $messageType; + protected $expandNewlines; /** - * @param integer $messageType Says where the error should go. - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not + * @param integer $messageType Says where the error should go. + * @param integer $level The minimum logging level at which this handler will be triggered + * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not + * @param Boolean $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries */ - public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true) + public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true, $expandNewlines = false) { parent::__construct($level, $bubble); @@ -41,6 +43,7 @@ class ErrorLogHandler extends AbstractProcessingHandler } $this->messageType = $messageType; + $this->expandNewlines = $expandNewlines; } /** @@ -67,6 +70,13 @@ class ErrorLogHandler extends AbstractProcessingHandler */ protected function write(array $record) { - error_log((string) $record['formatted'], $this->messageType); + if ($this->expandNewlines) { + $lines = preg_split('{[\r\n]+}', (string) $record['formatted']); + foreach ($lines as $line) { + error_log($line, $this->messageType); + } + } else { + error_log((string) $record['formatted'], $this->messageType); + } } } diff --git a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php index bc51e4e3be..9cf75edb4c 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php @@ -35,6 +35,7 @@ class FingersCrossedHandler extends AbstractHandler protected $bufferSize; protected $buffer = array(); protected $stopBuffering; + protected $passthruLevel; /** * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler). @@ -42,8 +43,9 @@ class FingersCrossedHandler extends AbstractHandler * @param int $bufferSize How many entries should be buffered at most, beyond that the oldest items are removed from the buffer. * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not * @param Boolean $stopBuffering Whether the handler should stop buffering after being triggered (default true) + * @param int $passthruLevel Minimum level to always flush to handler on close, even if strategy not triggered */ - public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true) + public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true, $passthruLevel = NULL) { if (null === $activationStrategy) { $activationStrategy = new ErrorLevelActivationStrategy(Logger::WARNING); @@ -59,6 +61,7 @@ class FingersCrossedHandler extends AbstractHandler $this->bufferSize = $bufferSize; $this->bubble = $bubble; $this->stopBuffering = $stopBuffering; + $this->passthruLevel = $passthruLevel; } /** @@ -108,6 +111,23 @@ class FingersCrossedHandler extends AbstractHandler return false === $this->bubble; } + /** + * {@inheritdoc} + */ + public function close() + { + if (NULL !== $this->passthruLevel) { + $level = $this->passthruLevel; + $this->buffer = array_filter($this->buffer, function ($record) use ($level) { + return $record['level'] >= $level; + }); + if (count($this->buffer) > 0) { + $this->handler->handleBatch($this->buffer); + $this->buffer = array(); + } + } + } + /** * Resets the state of the handler. Stops forwarding records to the wrapped handler. */ diff --git a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php index 31bc5d2ffe..f7055cc18d 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php @@ -62,6 +62,10 @@ class NewRelicHandler extends AbstractProcessingHandler foreach ($record['context'] as $key => $parameter) { newrelic_add_custom_parameter($key, $parameter); } + + foreach ($record['extra'] as $key => $parameter) { + newrelic_add_custom_parameter($key, $parameter); + } } /** diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php index b8f701eac2..2b32c321e0 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php @@ -17,7 +17,7 @@ use Monolog\Logger; use Raven_Client; /** - * Handler to send messages to a Sentry (https://github.com/dcramer/sentry) server + * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server * using raven-php (https://github.com/getsentry/raven-php) * * @author Marc Abramowitz diff --git a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php index 6213d6ee59..f8800bc809 100644 --- a/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ b/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php @@ -33,10 +33,10 @@ class RotatingFileHandler extends StreamHandler /** * @param string $filename - * @param integer $maxFiles The maximal amount of files to keep (0 means unlimited) - * @param integer $level The minimum logging level at which this handler will be triggered - * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not - * @param int $filePermissions Optional file permissions (default (0644) are only for owner read/write) + * @param integer $maxFiles The maximal amount of files to keep (0 means unlimited) + * @param integer $level The minimum logging level at which this handler will be triggered + * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not + * @param int $filePermission Optional file permissions (default (0644) are only for owner read/write) */ public function __construct($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null) { diff --git a/vendor/monolog/monolog/src/Monolog/Logger.php b/vendor/monolog/monolog/src/Monolog/Logger.php index f6d7f809c3..3e3f95cea3 100644 --- a/vendor/monolog/monolog/src/Monolog/Logger.php +++ b/vendor/monolog/monolog/src/Monolog/Logger.php @@ -172,6 +172,14 @@ class Logger implements LoggerInterface return array_shift($this->handlers); } + /** + * @return HandlerInterface[] + */ + public function getHandlers() + { + return $this->handlers; + } + /** * Adds a processor on to the stack. * @@ -199,6 +207,14 @@ class Logger implements LoggerInterface return array_shift($this->processors); } + /** + * @return callable[] + */ + public function getProcessors() + { + return $this->processors; + } + /** * Adds a log record. * diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php index 19bfdb5ee0..626f5f9f66 100644 --- a/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php @@ -4,10 +4,11 @@ namespace Monolog\Handler; use Monolog\TestCase; use Monolog\Logger; +use Monolog\Formatter\LineFormatter; function error_log() { - $GLOBALS['error_log'] = func_get_args(); + $GLOBALS['error_log'][] = func_get_args(); } class ErrorLogHandlerTest extends TestCase @@ -35,9 +36,23 @@ class ErrorLogHandlerTest extends TestCase { $type = ErrorLogHandler::OPERATING_SYSTEM; $handler = new ErrorLogHandler($type); - $handler->handle($this->getRecord(Logger::ERROR)); + $handler->setFormatter(new LineFormatter('%channel%.%level_name%: %message% %context% %extra%', null, true)); + $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); - $this->assertStringMatchesFormat('[%s] test.ERROR: test [] []', $GLOBALS['error_log'][0]); - $this->assertSame($GLOBALS['error_log'][1], $type); + $this->assertSame("test.ERROR: Foo\nBar\r\n\r\nBaz [] []", $GLOBALS['error_log'][0][0]); + $this->assertSame($GLOBALS['error_log'][0][1], $type); + + $handler = new ErrorLogHandler($type, Logger::DEBUG, true, true); + $handler->setFormatter(new LineFormatter(null, null, true)); + $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); + + $this->assertStringMatchesFormat('[%s] test.ERROR: Foo', $GLOBALS['error_log'][1][0]); + $this->assertSame($GLOBALS['error_log'][1][1], $type); + + $this->assertStringMatchesFormat('Bar', $GLOBALS['error_log'][2][0]); + $this->assertSame($GLOBALS['error_log'][2][1], $type); + + $this->assertStringMatchesFormat('Baz [] []', $GLOBALS['error_log'][3][0]); + $this->assertSame($GLOBALS['error_log'][3][1], $type); } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php index 12c5ea11d2..d02fef9948 100644 --- a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php @@ -31,6 +31,7 @@ class FingersCrossedHandlerTest extends TestCase $this->assertFalse($test->hasDebugRecords()); $this->assertFalse($test->hasInfoRecords()); $handler->handle($this->getRecord(Logger::WARNING)); + $handler->close(); $this->assertTrue($test->hasInfoRecords()); $this->assertTrue(count($test->getRecords()) === 3); } @@ -44,6 +45,7 @@ class FingersCrossedHandlerTest extends TestCase $handler = new FingersCrossedHandler($test); $handler->handle($this->getRecord(Logger::WARNING)); $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->close(); $this->assertTrue($test->hasWarningRecords()); $this->assertTrue($test->hasDebugRecords()); } @@ -60,6 +62,7 @@ class FingersCrossedHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::DEBUG)); $handler->reset(); $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); $this->assertTrue($test->hasWarningRecords()); $this->assertTrue($test->hasDebugRecords()); $this->assertFalse($test->hasInfoRecords()); @@ -75,6 +78,7 @@ class FingersCrossedHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::WARNING)); $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); $this->assertTrue($test->hasWarningRecords()); $this->assertTrue($test->hasDebugRecords()); $this->assertFalse($test->hasInfoRecords()); @@ -186,4 +190,18 @@ class FingersCrossedHandlerTest extends TestCase $records = $test->getRecords(); $this->assertTrue($records[0]['extra']['foo']); } + + /** + * @covers Monolog\Handler\FingersCrossedHandler::close + */ + public function testPassthruOnClose() + { + $test = new TestHandler(); + $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, Logger::INFO); + $handler->handle($this->getRecord(Logger::DEBUG)); + $handler->handle($this->getRecord(Logger::INFO)); + $handler->close(); + $this->assertFalse($test->hasDebugRecords()); + $this->assertTrue($test->hasInfoRecords()); + } } diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php index f959a36a89..2e05968481 100644 --- a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php +++ b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php @@ -18,10 +18,12 @@ use Psr\Log\LogLevel; class NewRelicHandlerTest extends TestCase { public static $appname; + public static $customParameters; public function setUp() { - $this::$appname = null; + self::$appname = null; + self::$customParameters = array(); } /** @@ -39,10 +41,38 @@ class NewRelicHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::ERROR)); } - public function testThehandlerCanAddParamsToTheNewRelicTrace() + public function testThehandlerCanAddContextParamsToTheNewRelicTrace() { $handler = new StubNewRelicHandler(); $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('a' => 'b'))); + $this->assertEquals(array('a' => 'b'), self::$customParameters); + } + + public function testThehandlerCanAddExtraParamsToTheNewRelicTrace() + { + $record = $this->getRecord(Logger::ERROR, 'log message'); + $record['extra'] = array('c' => 'd'); + + $handler = new StubNewRelicHandler(); + $handler->handle($record); + + $this->assertEquals(array('c' => 'd'), self::$customParameters); + } + + public function testThehandlerCanAddExtraContextAndParamsToTheNewRelicTrace() + { + $record = $this->getRecord(Logger::ERROR, 'log message', array('a' => 'b')); + $record['extra'] = array('c' => 'd'); + + $handler = new StubNewRelicHandler(); + $handler->handle($record); + + $expected = array( + 'a' => 'b', + 'c' => 'd', + ); + + $this->assertEquals($expected, self::$customParameters); } public function testTheAppNameIsNullByDefault() @@ -50,7 +80,7 @@ class NewRelicHandlerTest extends TestCase $handler = new StubNewRelicHandler(); $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - $this->assertEquals(null, $this::$appname); + $this->assertEquals(null, self::$appname); } public function testTheAppNameCanBeInjectedFromtheConstructor() @@ -58,7 +88,7 @@ class NewRelicHandlerTest extends TestCase $handler = new StubNewRelicHandler(LogLevel::ALERT, false, 'myAppName'); $handler->handle($this->getRecord(Logger::ERROR, 'log message')); - $this->assertEquals('myAppName', $this::$appname); + $this->assertEquals('myAppName', self::$appname); } public function testTheAppNameCanBeOverriddenFromEachLog() @@ -66,7 +96,7 @@ class NewRelicHandlerTest extends TestCase $handler = new StubNewRelicHandler(LogLevel::ALERT, false, 'myAppName'); $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('appname' => 'logAppName'))); - $this->assertEquals('logAppName', $this::$appname); + $this->assertEquals('logAppName', self::$appname); } } @@ -96,7 +126,9 @@ function newrelic_set_appname($appname) return NewRelicHandlerTest::$appname = $appname; } -function newrelic_add_custom_parameter() +function newrelic_add_custom_parameter($key, $value) { + NewRelicHandlerTest::$customParameters[$key] = $value; + return true; } diff --git a/vendor/oyejorge/less.php/README.md b/vendor/oyejorge/less.php/README.md index ae511d7cbc..a0fbf36e22 100644 --- a/vendor/oyejorge/less.php/README.md +++ b/vendor/oyejorge/less.php/README.md @@ -175,12 +175,24 @@ This method will check the modified time and size of each less file (including i Note: When changes are found, this method will return a different file name for the new cached content. ```php -$to_cache = array( '/var/www/mysite/bootstrap.less' => '/mysite/' ); -Less_Cache::$cache_dir = '/var/www/writable_folder'; -$css_file_name = Less_Cache::Get( $to_cache ); +$less_files = array( '/var/www/mysite/bootstrap.less' => '/mysite/' ); +$options = array( 'cache_dir' => '/var/www/writable_folder' ); +$css_file_name = Less_Cache::Get( $less_files, $options ); $compiled = file_get_contents( '/var/www/writable_folder/'.$css_file_name ); ``` +#### Caching CSS With Variables +Passing options to Less_Cache::Get() + +```php +$less_files = array( '/var/www/mysite/bootstrap.less' => '/mysite/' ); +$options = array( 'cache_dir' => '/var/www/writable_folder' ); +$variables = array( 'width' => '100px' ); +$css_file_name = Less_Cache::Get( $less_files, $options, $variables ); +$compiled = file_get_contents( '/var/www/writable_folder/'.$css_file_name ); +``` + + #### Parser Caching less.php will save serialized parser data for each .less file if a writable folder is passed to the SetCacheDir() method. Note: This feature only caches intermediate parsing results to improve the performance of repeated css generation. @@ -193,6 +205,19 @@ $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss(); ``` +You can specify the caching technique used by changing the ```cache_method``` option. Supported methods are: +* ```php```: Creates valid PHP files which can be included without any changes (default method). +* ```var_export```: Like "php", but using PHPs ```var_export()``` function without any optimizations. + It's recommended to use "php" instead. +* ```serialize```: Faster, but pretty memory-intense. +* ```callback```: Use custom callback functions to implement your own caching method. Give the "cache_callback_get" and + "cache_callback_set" options with callables (see PHPs ```call_user_func()``` and ```is_callable()``` functions). less.php + will pass the parser object (class ```Less_Parser```), the path to the parsed .less file ("/some/path/to/file.less") and + an identifier that will change every time the .less file is modified. The ```get``` callback must return the ruleset + (an array with ```Less_Tree``` objects) provided as fourth parameter of the ```set``` callback. If something goes wrong, + return ```NULL``` (cache doesn't exist) or ```FALSE```. + + Source Maps --- @@ -265,7 +290,7 @@ How to use / install: 2. Find the compiler under Appearance > LESS Compiler in your WordPress dashboard 3. Enter your LESS code in the text area and press (re)compile -Use the built-in compiler to: +Use the built-in compiler to: - set any [Bootstrap](http://getbootstrap.com/customize/) variable or use Bootstrap's mixins: -`@navbar-default-color: blue;` - create a custom button: `.btn-custom { diff --git a/vendor/oyejorge/less.php/bin/lessc b/vendor/oyejorge/less.php/bin/lessc index e30d0bf7af..e8a818ca78 100755 --- a/vendor/oyejorge/less.php/bin/lessc +++ b/vendor/oyejorge/less.php/bin/lessc @@ -5,10 +5,10 @@ require_once dirname(__FILE__) . '/../lib/Less/Autoloader.php'; Less_Autoloader::register(); // Create our environment -$env = array('compress' => false); - -$silent = false; -$watch = false; +$env = array('compress' => false); +$silent = false; +$watch = false; +$rootpath = ''; // Check for arguments array_shift($argv); @@ -43,7 +43,6 @@ Usage: lessc [options] sources [destination] -ru, --relative-urls re-write relative urls to the base less file. -rp, --rootpath=URL Set rootpath for url rewriting in relative imports and urls. Works with or without the relative-urls option. - --insecure Allow imports from insecure https hosts. -w, --watch Watch input files for changes. @@ -53,44 +52,48 @@ EOD; case 'silent': $silent = true; break; + + case 'w': + case 'watch': + $watch = true; + break; + case 'v': case 'version': - echo "lessc " . Less_Parser::version . " (less.php)\n\n"; + echo "lessc " . Less_Version::version . " (less.php)\n\n"; exit; - case 'x': - case 'compress': - Less_Environment::$compress = true; - break; - case 'include-path': - $paths = preg_split('#;|\:#', $value); - $env->paths = $paths; - break; - case 'strict-imports': - $env->strictImports = true; - break; - case 'sm': - case 'strict-math': - $env->strictMath = ($value === 'on'); + + case 'rp': + case 'rootpath': + $rootpath = $value; break; - case 'su': - case 'strict-units': - $env->strictUnits = ($value === 'on'); + + + //parser options + case 'compress': + $env['compress'] = true; break; + case 'ru': case 'relative-urls': - $env->relativeUrls = true; + $env['relativeUrls'] = true; break; - case 'rp': - case 'rootpath': - $env->rootpath = $value; + + case 'su': + case 'strict-units': + $env['strictUnits'] = ($value === 'on'); break; - case 'insecure': - $env->insecure = true; + + case 'sm': + case 'strict-math': + $env['strictMath'] = ($value === 'on'); break; - case 'w': - case 'watch': - $watch = true; + + case 'x': + case 'include-path': + $env['import_dirs'] = preg_split('#;|\:#', $value); break; + } } } @@ -145,7 +148,7 @@ if ($watch) { $parser = new Less_Parser($env); foreach ($inputs as $input) { try { - $parser->parseFile($input, $env->rootpath); + $parser->parseFile($input, $rootpath); } catch (Exception $e) { echo("lessc: " . $e->getMessage() . " \n"); diff --git a/vendor/oyejorge/less.php/lib/Less/Cache.php b/vendor/oyejorge/less.php/lib/Less/Cache.php index b6a9e7ed60..543322422a 100755 --- a/vendor/oyejorge/less.php/lib/Less/Cache.php +++ b/vendor/oyejorge/less.php/lib/Less/Cache.php @@ -21,10 +21,10 @@ class Less_Cache{ * * @param array $less_files Array of .less files to compile * @param array $parser_options Array of compiler options - * @param boolean $use_cache Set to false to regenerate the css file + * @param array $modify_vars Array of variables * @return string Name of the css file */ - public static function Get( $less_files, $parser_options = array(), $use_cache = true ){ + public static function Get( $less_files, $parser_options = array(), $modify_vars = array() ){ //check $cache_dir @@ -37,29 +37,53 @@ class Less_Cache{ } self::CheckCacheDir(); + $less_files = (array)$less_files; + + + //create a file for variables + if( !empty($modify_vars) ){ + $lessvars = Less_Parser::serializeVars($modify_vars); + $vars_file = Less_Cache::$cache_dir.'lessphpvars_' . sha1($lessvars) . '.less'; + + if( !file_exists($vars_file) ){ + file_put_contents($vars_file, $lessvars); + } + + $less_files += array($vars_file => '/'); + } + // generate name for compiled css file - $less_files = (array)$less_files; $hash = md5(json_encode($less_files)); $list_file = Less_Cache::$cache_dir.'lessphp_'.$hash.'.list'; - if( $use_cache === true ){ - - // check cached content - if( file_exists($list_file) ){ - + // check cached content + if( !isset($parser_options['use_cache']) || $parser_options['use_cache'] === true ){ + if( file_exists($list_file) ){ $list = explode("\n",file_get_contents($list_file)); + + //pop the cached name that should match $compiled_name + $cached_name = array_pop($list); + if( !preg_match('/^lessphp_[a-f0-9]+\.css$/',$cached_name) ){ + $list[] = $cached_name; + $cached_name = false; + } $compiled_name = self::CompiledName($list); - $compiled_file = Less_Cache::$cache_dir.$compiled_name; - if( file_exists($compiled_file) ){ - @touch($list_file); - @touch($compiled_file); - return $compiled_name; + + // if $cached_name != $compiled_name, we know we need to recompile + if( !$cached_name || $cached_name === $compiled_name ){ + + $output_file = self::OutputFile($compiled_name, $parser_options ); + + if( $output_file && file_exists($output_file) ){ + @touch($list_file); + @touch($output_file); + return basename($output_file); // for backwards compatibility, we just return the name of the file + } } } - } $compiled = self::Cache( $less_files, $parser_options ); @@ -67,21 +91,25 @@ class Less_Cache{ return false; } + $compiled_name = self::CompiledName( $less_files ); + $output_file = self::OutputFile($compiled_name, $parser_options ); + //save the file list - $cache = implode("\n",$less_files); + $list = $less_files; + $list[] = $compiled_name; + $cache = implode("\n",$list); file_put_contents( $list_file, $cache ); //save the css - $compiled_name = self::CompiledName( $less_files ); - file_put_contents( Less_Cache::$cache_dir.$compiled_name, $compiled ); + file_put_contents( $output_file, $compiled ); //clean up self::CleanCache(); - return $compiled_name; + return basename($output_file); } /** @@ -89,10 +117,12 @@ class Less_Cache{ * * @param array $less_files Array of .less files to compile * @param array $parser_options Array of compiler options + * @param array $modify_vars Array of variables * @return string Name of the css file */ - public static function Regen( $less_files, $parser_options = array() ){ - return self::Get( $less_files, $parser_options, false ); + public static function Regen( $less_files, $parser_options = array(), $modify_vars = array() ){ + $parser_options['use_cache'] = false; + return self::Get( $less_files, $parser_options, $modify_vars ); } public static function Cache( &$less_files, $parser_options = array() ){ @@ -129,6 +159,23 @@ class Less_Cache{ } + private static function OutputFile( $compiled_name, $parser_options ){ + + //custom output file + if( !empty($parser_options['output']) ){ + + //relative to cache directory? + if( preg_match('#[\\\\/]#',$parser_options['output']) ){ + return $parser_options['output']; + } + + return Less_Cache::$cache_dir.$parser_options['output']; + } + + return Less_Cache::$cache_dir.$compiled_name; + } + + private static function CompiledName( $files ){ //save the file list diff --git a/vendor/oyejorge/less.php/lib/Less/Environment.php b/vendor/oyejorge/less.php/lib/Less/Environment.php index 861ccfaf7d..b2203014f0 100755 --- a/vendor/oyejorge/less.php/lib/Less/Environment.php +++ b/vendor/oyejorge/less.php/lib/Less/Environment.php @@ -47,6 +47,11 @@ class Less_Environment{ public static $mixin_stack = 0; + /** + * @var array + */ + public $functions = array(); + public function Init(){ @@ -114,7 +119,7 @@ class Less_Environment{ * @return string Canonicalized path * */ - static function normalizePath($path){ + public static function normalizePath($path){ $segments = explode('/',$path); $segments = array_reverse($segments); diff --git a/vendor/oyejorge/less.php/lib/Less/Exception/Chunk.php b/vendor/oyejorge/less.php/lib/Less/Exception/Chunk.php index 8c6fb28b6c..9a8b829ec9 100755 --- a/vendor/oyejorge/less.php/lib/Less/Exception/Chunk.php +++ b/vendor/oyejorge/less.php/lib/Less/Exception/Chunk.php @@ -46,7 +46,7 @@ class Less_Exception_Chunk extends Less_Exception_Parser{ * We don't actually need the chunks * */ - function Chunks(){ + protected function Chunks(){ $level = 0; $parenLevel = 0; $lastMultiCommentEndBrace = null; @@ -173,12 +173,12 @@ class Less_Exception_Chunk extends Less_Exception_Parser{ //$this->emitChunk(true); } - function CharCode($pos){ + public function CharCode($pos){ return ord($this->input[$pos]); } - function fail( $msg, $index = null ){ + public function fail( $msg, $index = null ){ if( !$index ){ $this->index = $this->parserCurrentIndex; diff --git a/vendor/oyejorge/less.php/lib/Less/Functions.php b/vendor/oyejorge/less.php/lib/Less/Functions.php index ca541409fa..e1c68d8119 100755 --- a/vendor/oyejorge/less.php/lib/Less/Functions.php +++ b/vendor/oyejorge/less.php/lib/Less/Functions.php @@ -21,7 +21,7 @@ class Less_Functions{ /** * @param string $op */ - static public function operate( $op, $a, $b ){ + public static function operate( $op, $a, $b ){ switch ($op) { case '+': return $a + $b; case '-': return $a - $b; @@ -30,11 +30,11 @@ class Less_Functions{ } } - static public function clamp($val, $max = 1){ + public static function clamp($val, $max = 1){ return min( max($val, 0), $max); } - static function fround( $value ){ + public static function fround( $value ){ if( $value === 0 ){ return $value; @@ -47,7 +47,7 @@ class Less_Functions{ return $value; } - static public function number($n){ + public static function number($n){ if ($n instanceof Less_Tree_Dimension) { return floatval( $n->unit->is('%') ? $n->value / 100 : $n->value); @@ -58,7 +58,7 @@ class Less_Functions{ } } - static public function scaled($n, $size = 255 ){ + public static function scaled($n, $size = 255 ){ if( $n instanceof Less_Tree_Dimension && $n->unit->is('%') ){ return (float)$n->value * $size / 100; } else { @@ -102,7 +102,7 @@ class Less_Functions{ /** * @param double $h */ - function hsla_hue($h, $m1, $m2){ + public function hsla_hue($h, $m1, $m2){ $h = $h < 0 ? $h + 1 : ($h > 1 ? $h - 1 : $h); if ($h * 6 < 1) return $m1 + ($m2 - $m1) * $h * 6; else if ($h * 2 < 1) return $m2; @@ -520,7 +520,7 @@ class Less_Functions{ /** * @param boolean $isMin */ - function _minmax( $isMin, $args ){ + private function _minmax( $isMin, $args ){ $arg_count = count($args); @@ -715,12 +715,12 @@ class Less_Functions{ return null; } - function length($values){ + public function length($values){ $n = (property_exists($values,'value') && is_array($values->value)) ? count($values->value) : 1; return new Less_Tree_Dimension($n); } - function datauri($mimetypeNode, $filePathNode = null ) { + public function datauri($mimetypeNode, $filePathNode = null ) { $filePath = ( $filePathNode ? $filePathNode->value : null ); $mimetype = $mimetypeNode->value; @@ -796,7 +796,7 @@ class Less_Functions{ } //svg-gradient - function svggradient( $direction ){ + public function svggradient( $direction ){ $throw_message = 'svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position]'; $arguments = func_get_args(); @@ -995,7 +995,7 @@ class Less_Functions{ } // non-w3c functions: - function colorBlendAverage($cb, $cs ){ + public function colorBlendAverage($cb, $cs ){ return ($cb + $cs) / 2; } @@ -1003,7 +1003,7 @@ class Less_Functions{ return $this->colorBlend( array($this,'colorBlendNegation'), $color1, $color2 ); } - function colorBlendNegation($cb, $cs){ + public function colorBlendNegation($cb, $cs){ return 1 - abs($cb + $cs - 1); } diff --git a/vendor/oyejorge/less.php/lib/Less/Mime.php b/vendor/oyejorge/less.php/lib/Less/Mime.php index 36067955c9..109ecd3f82 100755 --- a/vendor/oyejorge/less.php/lib/Less/Mime.php +++ b/vendor/oyejorge/less.php/lib/Less/Mime.php @@ -16,10 +16,15 @@ class Less_Mime{ '.gif' => 'image/gif', '.jpg' => 'image/jpeg', '.jpeg'=> 'image/jpeg', - '.png' => 'image/png' + '.png' => 'image/png', + '.ttf' => 'application/x-font-ttf', + '.otf' => 'application/x-font-otf', + '.eot' => 'application/vnd.ms-fontobject', + '.woff' => 'application/x-font-woff', + '.svg' => 'image/svg+xml', ); - static function lookup( $filepath ){ + public static function lookup( $filepath ){ $parts = explode('.',$filepath); $ext = '.'.strtolower(array_pop($parts)); @@ -29,8 +34,8 @@ class Less_Mime{ return self::$_types[$ext]; } - static function charsets_lookup( $type = null ){ + public static function charsets_lookup( $type = null ){ // assumes all text types are UTF-8 return $type && preg_match('/^text\//',$type) ? 'UTF-8' : ''; } -} \ No newline at end of file +} diff --git a/vendor/oyejorge/less.php/lib/Less/Output/Mapped.php b/vendor/oyejorge/less.php/lib/Less/Output/Mapped.php index 5213579eb5..884490a200 100755 --- a/vendor/oyejorge/less.php/lib/Less/Output/Mapped.php +++ b/vendor/oyejorge/less.php/lib/Less/Output/Mapped.php @@ -93,7 +93,7 @@ class Less_Output_Mapped extends Less_Output { $this->column, // generated_column count($sourceLines), // original_line strlen($sourceColumns), // original_column - $fileInfo['currentUri'] + $fileInfo ); }else{ for($i = 0, $count = count($lines); $i < $count; $i++){ @@ -102,7 +102,7 @@ class Less_Output_Mapped extends Less_Output { $i === 0 ? $this->column : 0, // generated_column count($sourceLines) + $i, // original_line $i === 0 ? strlen($sourceColumns) : 0, // original_column - $fileInfo['currentUri'] + $fileInfo ); } } diff --git a/vendor/oyejorge/less.php/lib/Less/Parser.php b/vendor/oyejorge/less.php/lib/Less/Parser.php index 0bfdfad626..0452d34a37 100755 --- a/vendor/oyejorge/less.php/lib/Less/Parser.php +++ b/vendor/oyejorge/less.php/lib/Less/Parser.php @@ -26,7 +26,9 @@ class Less_Parser{ 'import_dirs' => array(), 'import_callback' => null, 'cache_dir' => null, - 'cache_method' => 'php', //false, 'serialize', 'php', 'var_export'; + 'cache_method' => 'php', // false, 'serialize', 'php', 'var_export', 'callback'; + 'cache_callback_get' => null, + 'cache_callback_set' => null, 'sourceMap' => false, // whether to output a source map 'sourceMapBasepath' => null, @@ -139,7 +141,25 @@ class Less_Parser{ Less_Parser::$options[$option] = $value; } + /** + * Registers a new custom function + * + * @param string $name function name + * @param callable $callback callback + */ + public function registerFunction($name, $callback) { + $this->env->functions[$name] = $callback; + } + /** + * Removed an already registered function + * + * @param string $name function name + */ + public function unregisterFunction($name) { + if( isset($this->env->functions[$name]) ) + unset($this->env->functions[$name]); + } /** @@ -327,7 +347,7 @@ class Less_Parser{ */ public function ModifyVars( $vars ){ - $this->input = $this->serializeVars( $vars ); + $this->input = Less_Parser::serializeVars( $vars ); $this->_parse(); return $this; @@ -446,26 +466,41 @@ class Less_Parser{ $this->SetInput($file_path); $cache_file = $this->CacheFile( $file_path ); - if( $cache_file && file_exists($cache_file) ){ - switch(Less_Parser::$options['cache_method']){ + if( $cache_file ){ + if( Less_Parser::$options['cache_method'] == 'callback' ){ + if( is_callable(Less_Parser::$options['cache_callback_get']) ){ + $cache = call_user_func_array( + Less_Parser::$options['cache_callback_get'], + array($this, $file_path, $cache_file) + ); - // Using serialize - // Faster but uses more memory - case 'serialize': - $cache = unserialize(file_get_contents($cache_file)); if( $cache ){ - touch($cache_file); $this->UnsetInput(); return $cache; } - break; + } + + }elseif( file_exists($cache_file) ){ + switch(Less_Parser::$options['cache_method']){ + + // Using serialize + // Faster but uses more memory + case 'serialize': + $cache = unserialize(file_get_contents($cache_file)); + if( $cache ){ + touch($cache_file); + $this->UnsetInput(); + return $cache; + } + break; - // Using generated php code - case 'var_export': - case 'php': - $this->UnsetInput(); - return include($cache_file); + // Using generated php code + case 'var_export': + case 'php': + $this->UnsetInput(); + return include($cache_file); + } } } @@ -480,22 +515,31 @@ class Less_Parser{ //save the cache if( $cache_file ){ + if( Less_Parser::$options['cache_method'] == 'callback' ){ + if( is_callable(Less_Parser::$options['cache_callback_set']) ){ + call_user_func_array( + Less_Parser::$options['cache_callback_set'], + array($this, $file_path, $cache_file, $rules) + ); + } - //msg('write cache file'); - switch(Less_Parser::$options['cache_method']){ - case 'serialize': - file_put_contents( $cache_file, serialize($rules) ); - break; - case 'php': - file_put_contents( $cache_file, '' ); - break; - case 'var_export': - //Requires __set_state() - file_put_contents( $cache_file, '' ); - break; - } + }else{ + //msg('write cache file'); + switch(Less_Parser::$options['cache_method']){ + case 'serialize': + file_put_contents( $cache_file, serialize($rules) ); + break; + case 'php': + file_put_contents( $cache_file, '' ); + break; + case 'var_export': + //Requires __set_state() + file_put_contents( $cache_file, '' ); + break; + } - Less_Cache::CleanCache(); + Less_Cache::CleanCache(); + } } return $rules; @@ -539,7 +583,7 @@ class Less_Parser{ public function CacheFile( $file_path ){ - if( $file_path && Less_Parser::$options['cache_method'] && Less_Cache::$cache_dir ){ + if( $file_path && $this->CacheEnabled() ){ $env = get_object_vars($this->env); unset($env['frames']); @@ -636,10 +680,12 @@ class Less_Parser{ */ private function MatchFuncs($toks){ - foreach($toks as $tok){ - $match = $this->$tok(); - if( $match ){ - return $match; + if( $this->pos < $this->input_len ){ + foreach($toks as $tok){ + $match = $this->$tok(); + if( $match ){ + return $match; + } } } @@ -864,7 +910,11 @@ class Less_Parser{ if ($e) { $this->MatchChar('~'); } - $str = $this->MatchReg('/\\G"((?:[^"\\\\\r\n]|\\\\.)*)"|\'((?:[^\'\\\\\r\n]|\\\\.)*)\'/'); + + // Fix for #124: match escaped newlines + //$str = $this->MatchReg('/\\G"((?:[^"\\\\\r\n]|\\\\.)*)"|\'((?:[^\'\\\\\r\n]|\\\\.)*)\'/'); + $str = $this->MatchReg('/\\G"((?:[^"\\\\\r\n]|\\\\.|\\\\\r\n|\\\\[\n\r\f])*)"|\'((?:[^\'\\\\\r\n]|\\\\.|\\\\\r\n|\\\\[\n\r\f])*)\'/'); + if( $str ){ $result = $str[0][0] == '"' ? $str[1] : $str[2]; return $this->NewObj5('Less_Tree_Quoted',array($str[0], $result, $e, $index, $this->env->currentFileInfo) ); @@ -1562,22 +1612,24 @@ class Less_Parser{ // in the input, to see if it's a ` ` character. // private function parseCombinator(){ - $c = $this->input[$this->pos]; - if ($c === '>' || $c === '+' || $c === '~' || $c === '|' || $c === '^' ){ + if( $this->pos < $this->input_len ){ + $c = $this->input[$this->pos]; + if ($c === '>' || $c === '+' || $c === '~' || $c === '|' || $c === '^' ){ - $this->pos++; - if( $this->input[$this->pos] === '^' ){ - $c = '^^'; $this->pos++; - } + if( $this->input[$this->pos] === '^' ){ + $c = '^^'; + $this->pos++; + } - $this->skipWhitespace(0); + $this->skipWhitespace(0); - return $c; - } + return $c; + } - if( $this->pos > 0 && $this->isWhitespace(-1) ){ - return ' '; + if( $this->pos > 0 && $this->isWhitespace(-1) ){ + return ' '; + } } } @@ -1618,7 +1670,9 @@ class Less_Parser{ //if( count($extendList) ){ //error("Extend can only be used at the end of selector"); //} - $c = $this->input[ $this->pos ]; + if( $this->pos < $this->input_len ){ + $c = $this->input[ $this->pos ]; + } $elements[] = $e; $e = null; } @@ -2378,7 +2432,7 @@ class Less_Parser{ } } - public function serializeVars( $vars ){ + public static function serializeVars( $vars ){ $s = ''; foreach($vars as $name => $value){ @@ -2426,7 +2480,7 @@ class Less_Parser{ */ public function NewObj0($class){ $obj = new $class(); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $obj->cache_string = ' new '.$class.'()'; } return $obj; @@ -2434,7 +2488,7 @@ class Less_Parser{ public function NewObj1($class, $arg){ $obj = new $class( $arg ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $obj->cache_string = ' new '.$class.'('.Less_Parser::ArgString($arg).')'; } return $obj; @@ -2442,7 +2496,7 @@ class Less_Parser{ public function NewObj2($class, $args){ $obj = new $class( $args[0], $args[1] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2450,7 +2504,7 @@ class Less_Parser{ public function NewObj3($class, $args){ $obj = new $class( $args[0], $args[1], $args[2] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2458,7 +2512,7 @@ class Less_Parser{ public function NewObj4($class, $args){ $obj = new $class( $args[0], $args[1], $args[2], $args[3] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2466,7 +2520,7 @@ class Less_Parser{ public function NewObj5($class, $args){ $obj = new $class( $args[0], $args[1], $args[2], $args[3], $args[4] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2474,7 +2528,7 @@ class Less_Parser{ public function NewObj6($class, $args){ $obj = new $class( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2482,7 +2536,7 @@ class Less_Parser{ public function NewObj7($class, $args){ $obj = new $class( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6] ); - if( Less_Cache::$cache_dir ){ + if( $this->CacheEnabled() ){ $this->ObjCache( $obj, $class, $args); } return $obj; @@ -2531,6 +2585,10 @@ class Less_Parser{ return str_replace('\\', '/', $path); } + public function CacheEnabled(){ + return (Less_Parser::$options['cache_method'] && (Less_Cache::$cache_dir || (Less_Parser::$options['cache_method'] == 'callback'))); + } + } diff --git a/vendor/oyejorge/less.php/lib/Less/SourceMap/Generator.php b/vendor/oyejorge/less.php/lib/Less/SourceMap/Generator.php index ff6c14b9d5..7e6c69130a 100755 --- a/vendor/oyejorge/less.php/lib/Less/SourceMap/Generator.php +++ b/vendor/oyejorge/less.php/lib/Less/SourceMap/Generator.php @@ -37,7 +37,10 @@ class Less_SourceMap_Generator extends Less_Configurable { 'outputSourceFiles' => false, // base path for filename normalization - 'sourceMapBasepath' => '' + 'sourceMapRootpath' => '', + + // base path for filename normalization + 'sourceMapBasepath' => '' ); /** @@ -74,6 +77,7 @@ class Less_SourceMap_Generator extends Less_Configurable { * @var array */ protected $sources = array(); + protected $source_keys = array(); /** * Constructor @@ -90,8 +94,9 @@ class Less_SourceMap_Generator extends Less_Configurable { // fix windows paths - if( isset($this->options['sourceMapBasepath']) ){ - $this->options['sourceMapBasepath'] = str_replace('\\', '/', $this->options['sourceMapBasepath']); + if( !empty($this->options['sourceMapRootpath']) ){ + $this->options['sourceMapRootpath'] = str_replace('\\', '/', $this->options['sourceMapRootpath']); + $this->options['sourceMapRootpath'] = rtrim($this->options['sourceMapRootpath'],'/').'/'; } } @@ -161,16 +166,22 @@ class Less_SourceMap_Generator extends Less_Configurable { * @return string */ protected function normalizeFilename($filename){ + $filename = str_replace('\\', '/', $filename); + $rootpath = $this->getOption('sourceMapRootpath'); $basePath = $this->getOption('sourceMapBasepath'); - if( $basePath && ($pos = strpos($filename, $basePath)) !== false ){ - $filename = substr($filename, $pos + strlen($basePath)); - if(strpos($filename, '\\') === 0 || strpos($filename, '/') === 0){ - $filename = substr($filename, 1); - } + // "Trim" the 'sourceMapBasepath' from the output filename. + if (strpos($filename, $basePath) === 0) { + $filename = substr($filename, strlen($basePath)); } - return sprintf('%s%s', $this->getOption('sourceMapRootpath'), $filename); + + // Remove extra leading path separators. + if(strpos($filename, '\\') === 0 || strpos($filename, '/') === 0){ + $filename = substr($filename, 1); + } + + return $rootpath . $filename; } /** @@ -182,19 +193,17 @@ class Less_SourceMap_Generator extends Less_Configurable { * @param integer $originalColumn The column number in original file * @param string $sourceFile The original source file */ - public function addMapping($generatedLine, $generatedColumn, $originalLine, $originalColumn, $sourceFile){ + public function addMapping($generatedLine, $generatedColumn, $originalLine, $originalColumn, $fileInfo ){ + $this->mappings[] = array( 'generated_line' => $generatedLine, 'generated_column' => $generatedColumn, 'original_line' => $originalLine, 'original_column' => $originalColumn, - 'source_file' => $sourceFile + 'source_file' => $fileInfo['currentUri'] ); - - $norm_file = $this->normalizeFilename($sourceFile); - - $this->sources[$norm_file] = $sourceFile; + $this->sources[$fileInfo['currentUri']] = $fileInfo['filename']; } @@ -228,8 +237,10 @@ class Less_SourceMap_Generator extends Less_Configurable { // A list of original sources used by the 'mappings' entry. - $sourceMap['sources'] = array_keys($this->sources); - + $sourceMap['sources'] = array(); + foreach($this->sources as $source_uri => $source_filename){ + $sourceMap['sources'][] = $this->normalizeFilename($source_filename); + } // A list of symbol names used by the 'mappings' entry. @@ -280,6 +291,9 @@ class Less_SourceMap_Generator extends Less_Configurable { return ''; } + $this->source_keys = array_flip(array_keys($this->sources)); + + // group mappings by generated line number. $groupedMap = $groupedMapEncoded = array(); foreach($this->mappings as $m){ @@ -303,7 +317,7 @@ class Less_SourceMap_Generator extends Less_Configurable { // find the index if( $m['source_file'] ){ - $index = $this->findFileIndex($this->normalizeFilename($m['source_file'])); + $index = $this->findFileIndex($m['source_file']); if( $index !== false ){ $mapEncoded .= $this->encoder->encode($index - $lastOriginalIndex); $lastOriginalIndex = $index; @@ -333,7 +347,7 @@ class Less_SourceMap_Generator extends Less_Configurable { * @return integer|false */ protected function findFileIndex($filename){ - return array_search($filename, array_keys($this->sources)); + return $this->source_keys[$filename]; } } \ No newline at end of file diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Anonymous.php b/vendor/oyejorge/less.php/lib/Less/Tree/Anonymous.php index f590ec562e..8889dc0f3d 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Anonymous.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Anonymous.php @@ -29,7 +29,7 @@ class Less_Tree_Anonymous extends Less_Tree{ return new Less_Tree_Anonymous($this->value, $this->index, $this->currentFileInfo, $this->mapLines); } - function compare($x){ + public function compare($x){ if( !is_object($x) ){ return -1; } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Assignment.php b/vendor/oyejorge/less.php/lib/Less/Tree/Assignment.php index ca6cbfb7c9..2380006477 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Assignment.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Assignment.php @@ -12,12 +12,12 @@ class Less_Tree_Assignment extends Less_Tree{ public $value; public $type = 'Assignment'; - function __construct($key, $val) { + public function __construct($key, $val) { $this->key = $key; $this->value = $val; } - function accept( $visitor ){ + public function accept( $visitor ){ $this->value = $visitor->visitObj( $this->value ); } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Attribute.php b/vendor/oyejorge/less.php/lib/Less/Tree/Attribute.php index 8f5d4ae334..32b8900d85 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Attribute.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Attribute.php @@ -13,13 +13,13 @@ class Less_Tree_Attribute extends Less_Tree{ public $value; public $type = 'Attribute'; - function __construct($key, $op, $value){ + public function __construct($key, $op, $value){ $this->key = $key; $this->op = $op; $this->value = $value; } - function compile($env){ + public function compile($env){ $key_obj = is_object($this->key); $val_obj = is_object($this->value); @@ -37,11 +37,11 @@ class Less_Tree_Attribute extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( $this->toCSS() ); } - function toCSS(){ + public function toCSS(){ $value = $this->key; if( $this->op ){ diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Call.php b/vendor/oyejorge/less.php/lib/Less/Tree/Call.php index fdd7ea3dcb..1560351ef7 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Call.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Call.php @@ -10,10 +10,10 @@ class Less_Tree_Call extends Less_Tree{ public $value; - var $name; - var $args; - var $index; - var $currentFileInfo; + protected $name; + protected $args; + protected $index; + protected $currentFileInfo; public $type = 'Call'; public function __construct($name, $args, $index, $currentFileInfo = null ){ @@ -23,7 +23,7 @@ class Less_Tree_Call extends Less_Tree{ $this->currentFileInfo = $currentFileInfo; } - function accept( $visitor ){ + public function accept( $visitor ){ $this->args = $visitor->visitArray( $this->args ); } @@ -79,6 +79,12 @@ class Less_Tree_Call extends Less_Tree{ } catch (Exception $e) { throw new Less_Exception_Compiler('error evaluating function `' . $this->name . '` '.$e->getMessage().' index: '. $this->index); } + } elseif( isset( $env->functions[$nameLC] ) && is_callable( $env->functions[$nameLC] ) ) { + try { + $result = call_user_func_array( $env->functions[$nameLC], $args ); + } catch (Exception $e) { + throw new Less_Exception_Compiler('error evaluating function `' . $this->name . '` '.$e->getMessage().' index: '. $this->index); + } } } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Color.php b/vendor/oyejorge/less.php/lib/Less/Tree/Color.php index c0433a700f..8ca2c66615 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Color.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Color.php @@ -148,7 +148,7 @@ class Less_Tree_Color extends Less_Tree{ } //Adapted from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript - function toHSV() { + public function toHSV() { $r = $this->rgb[0] / 255; $g = $this->rgb[1] / 255; $b = $this->rgb[2] / 255; @@ -196,7 +196,7 @@ class Less_Tree_Color extends Less_Tree{ $x->alpha === $this->alpha) ? 0 : -1; } - function toHex( $v ){ + public function toHex( $v ){ $ret = '#'; foreach($v as $c){ diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/DefaultFunc.php b/vendor/oyejorge/less.php/lib/Less/Tree/DefaultFunc.php index 1f7dc3d9bc..c2dbf74967 100644 --- a/vendor/oyejorge/less.php/lib/Less/Tree/DefaultFunc.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/DefaultFunc.php @@ -11,24 +11,24 @@ class Less_Tree_DefaultFunc{ static $error_; static $value_; - static function compile(){ + public static function compile(){ if( self::$error_ ){ - throw Exception(self::$error_); + throw new Exception(self::$error_); } if( self::$value_ !== null ){ return self::$value_ ? new Less_Tree_Keyword('true') : new Less_Tree_Keyword('false'); } } - static function value( $v ){ + public static function value( $v ){ self::$value_ = $v; } - static function error( $e ){ + public static function error( $e ){ self::$error_ = $e; } - static function reset(){ + public static function reset(){ self::$value_ = self::$error_ = null; } } \ No newline at end of file diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/DetachedRuleset.php b/vendor/oyejorge/less.php/lib/Less/Tree/DetachedRuleset.php index e927fa8dae..c887e400fa 100644 --- a/vendor/oyejorge/less.php/lib/Less/Tree/DetachedRuleset.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/DetachedRuleset.php @@ -12,16 +12,16 @@ class Less_Tree_DetachedRuleset extends Less_Tree{ public $frames; public $type = 'DetachedRuleset'; - function __construct( $ruleset, $frames = null ){ + public function __construct( $ruleset, $frames = null ){ $this->ruleset = $ruleset; $this->frames = $frames; } - function accept($visitor) { + public function accept($visitor) { $this->ruleset = $visitor->visitObj($this->ruleset); } - function compile($env){ + public function compile($env){ if( $this->frames ){ $frames = $this->frames; }else{ @@ -30,7 +30,7 @@ class Less_Tree_DetachedRuleset extends Less_Tree{ return new Less_Tree_DetachedRuleset($this->ruleset, $frames); } - function callEval($env) { + public function callEval($env) { if( $this->frames ){ return $this->ruleset->compile( $env->copyEvalEnv( array_merge($this->frames,$env->frames) ) ); } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Dimension.php b/vendor/oyejorge/less.php/lib/Less/Tree/Dimension.php index 3188f9b4b7..b693f57d79 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Dimension.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Dimension.php @@ -24,7 +24,7 @@ class Less_Tree_Dimension extends Less_Tree{ } } - function accept( $visitor ){ + public function accept( $visitor ){ $this->unit = $visitor->visitObj( $this->unit ); } @@ -147,11 +147,11 @@ class Less_Tree_Dimension extends Less_Tree{ } } - function unify() { + public function unify() { return $this->convertTo(array('length'=> 'px', 'duration'=> 's', 'angle' => 'rad' )); } - function convertTo($conversions) { + public function convertTo($conversions) { $value = $this->value; $unit = clone $this->unit; diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Directive.php b/vendor/oyejorge/less.php/lib/Less/Tree/Directive.php index 0c2d809ac1..04a1e467e0 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Directive.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Directive.php @@ -31,7 +31,7 @@ class Less_Tree_Directive extends Less_Tree{ } - function accept( $visitor ){ + public function accept( $visitor ){ if( $this->rules ){ $this->rules = $visitor->visitObj( $this->rules ); } @@ -44,7 +44,7 @@ class Less_Tree_Directive extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $value = $this->value; $rules = $this->rules; $output->add( $this->name, $this->currentFileInfo, $this->index ); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Element.php b/vendor/oyejorge/less.php/lib/Less/Tree/Element.php index 4dcb59e57a..9cea5e43c0 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Element.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Element.php @@ -29,7 +29,7 @@ class Less_Tree_Element extends Less_Tree{ $this->currentFileInfo = $currentFileInfo; } - function accept( $visitor ){ + public function accept( $visitor ){ if( $this->value_is_object ){ //object or string $this->value = $visitor->visitObj( $this->value ); } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php b/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php index 2a397fb369..d834354a1e 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Expression.php @@ -18,7 +18,7 @@ class Less_Tree_Expression extends Less_Tree{ $this->parens = $parens; } - function accept( $visitor ){ + public function accept( $visitor ){ $this->value = $visitor->visitArray( $this->value ); } @@ -71,7 +71,7 @@ class Less_Tree_Expression extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $val_len = count($this->value); for( $i = 0; $i < $val_len; $i++ ){ $this->value[$i]->genCSS( $output ); @@ -81,7 +81,7 @@ class Less_Tree_Expression extends Less_Tree{ } } - function throwAwayComments() { + public function throwAwayComments() { if( is_array($this->value) ){ $new_value = array(); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Extend.php b/vendor/oyejorge/less.php/lib/Less/Tree/Extend.php index 9840256048..8f21e939d9 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Extend.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Extend.php @@ -25,7 +25,7 @@ class Less_Tree_Extend extends Less_Tree{ /** * @param integer $index */ - function __construct($selector, $option, $index){ + public function __construct($selector, $option, $index){ static $i = 0; $this->selector = $selector; $this->option = $option; @@ -46,18 +46,18 @@ class Less_Tree_Extend extends Less_Tree{ $this->parent_ids = array($this->object_id); } - function accept( $visitor ){ + public function accept( $visitor ){ $this->selector = $visitor->visitObj( $this->selector ); } - function compile( $env ){ + public function compile( $env ){ Less_Parser::$has_extends = true; $this->selector = $this->selector->compile($env); return $this; //return new Less_Tree_Extend( $this->selector->compile($env), $this->option, $this->index); } - function findSelfSelectors( $selectors ){ + public function findSelfSelectors( $selectors ){ $selfElements = array(); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Import.php b/vendor/oyejorge/less.php/lib/Less/Tree/Import.php index ae2c90c828..0b552e83d6 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Import.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Import.php @@ -27,7 +27,7 @@ class Less_Tree_Import extends Less_Tree{ public $root; public $type = 'Import'; - function __construct($path, $features, $options, $index, $currentFileInfo = null ){ + public function __construct($path, $features, $options, $index, $currentFileInfo = null ){ $this->options = $options; $this->index = $index; $this->path = $path; @@ -58,7 +58,7 @@ class Less_Tree_Import extends Less_Tree{ // ruleset. // - function accept($visitor){ + public function accept($visitor){ if( $this->features ){ $this->features = $visitor->visitObj($this->features); @@ -73,7 +73,7 @@ class Less_Tree_Import extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ if( $this->css ){ $output->add( '@import ', $this->currentFileInfo, $this->index ); @@ -87,7 +87,7 @@ class Less_Tree_Import extends Less_Tree{ } } - function toCSS(){ + public function toCSS(){ $features = $this->features ? ' ' . $this->features->toCSS() : ''; if ($this->css) { @@ -100,21 +100,25 @@ class Less_Tree_Import extends Less_Tree{ /** * @return string */ - function getPath(){ + public function getPath(){ if ($this->path instanceof Less_Tree_Quoted) { $path = $this->path->value; - return ( isset($this->css) || preg_match('/(\.[a-z]*$)|([\?;].*)$/',$path)) ? $path : $path . '.less'; + $path = ( isset($this->css) || preg_match('/(\.[a-z]*$)|([\?;].*)$/',$path)) ? $path : $path . '.less'; } else if ($this->path instanceof Less_Tree_URL) { - return $this->path->value->value; + $path = $this->path->value->value; + }else{ + return null; } - return null; + + //remove query string and fragment + return preg_replace('/[\?#][^\?]*$/','',$path); } - function compileForImport( $env ){ + public function compileForImport( $env ){ return new Less_Tree_Import( $this->path->compile($env), $this->features, $this->options, $this->index, $this->currentFileInfo); } - function compilePath($env) { + public function compilePath($env) { $path = $this->path->compile($env); $rootpath = ''; if( $this->currentFileInfo && $this->currentFileInfo['rootpath'] ){ @@ -138,7 +142,7 @@ class Less_Tree_Import extends Less_Tree{ return $path; } - function compile( $env ){ + public function compile( $env ){ $evald = $this->compileForImport($env); @@ -195,7 +199,7 @@ class Less_Tree_Import extends Less_Tree{ * * @param Less_Tree_Import $evald */ - function PathAndUri(){ + public function PathAndUri(){ $evald_path = $this->getPath(); @@ -246,7 +250,7 @@ class Less_Tree_Import extends Less_Tree{ * * @return Less_Tree_Media|array */ - function ParseImport( $full_path, $uri, $env ){ + public function ParseImport( $full_path, $uri, $env ){ $import_env = clone $env; if( (isset($this->options['reference']) && $this->options['reference']) || isset($this->currentFileInfo['reference']) ){ diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Media.php b/vendor/oyejorge/less.php/lib/Less/Tree/Media.php index aebd28da22..f9ee9d4214 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Media.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Media.php @@ -28,7 +28,7 @@ class Less_Tree_Media extends Less_Tree{ $this->rules[0]->allowImports = true; } - function accept( $visitor ){ + public function accept( $visitor ){ $this->features = $visitor->visitObj($this->features); $this->rules = $visitor->visitArray($this->rules); } @@ -36,7 +36,7 @@ class Less_Tree_Media extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( '@media ', $this->currentFileInfo, $this->index ); $this->features->genCSS( $output ); @@ -169,7 +169,7 @@ class Less_Tree_Media extends Less_Tree{ return $result; } - function bubbleSelectors($selectors) { + public function bubbleSelectors($selectors) { if( !$selectors) return; diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Mixin/Call.php b/vendor/oyejorge/less.php/lib/Less/Tree/Mixin/Call.php index d3163d8665..d7e2a137cb 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Mixin/Call.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Mixin/Call.php @@ -107,7 +107,7 @@ class Less_Tree_Mixin_Call extends Less_Tree{ } else { $defaultResult = $defTrue; if( ($count[$defTrue] + $count[$defFalse]) > 1 ){ - throw Exception( 'Ambiguous use of `default()` found when matching for `'. $this->format($args) + '`' ); + throw new Exception( 'Ambiguous use of `default()` found when matching for `'. $this->format($args) + '`' ); } } @@ -145,7 +145,7 @@ class Less_Tree_Mixin_Call extends Less_Tree{ throw new Less_Exception_Compiler('No matching definition was found for `'.$this->Format( $args ).'`', null, $this->index, $this->currentFileInfo); }else{ - throw new Less_Exception_Compiler(trim($this->selector->toCSS()) . " is undefined", null, $this->index); + throw new Less_Exception_Compiler(trim($this->selector->toCSS()) . " is undefined in ".$this->currentFileInfo['filename'], null, $this->index); } } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/NameValue.php b/vendor/oyejorge/less.php/lib/Less/Tree/NameValue.php index 7ced5ccfc9..e65737c2fe 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/NameValue.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/NameValue.php @@ -25,7 +25,7 @@ class Less_Tree_NameValue extends Less_Tree{ $this->currentFileInfo = $currentFileInfo; } - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( $this->name diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Negative.php b/vendor/oyejorge/less.php/lib/Less/Tree/Negative.php index 20cdbb3bfe..507443ecf6 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Negative.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Negative.php @@ -11,7 +11,7 @@ class Less_Tree_Negative extends Less_Tree{ public $value; public $type = 'Negative'; - function __construct($node){ + public function __construct($node){ $this->value = $node; } @@ -22,12 +22,12 @@ class Less_Tree_Negative extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( '-' ); $this->value->genCSS( $output ); } - function compile($env) { + public function compile($env) { if( Less_Environment::isMathOn() ){ $ret = new Less_Tree_Operation('*', array( new Less_Tree_Dimension(-1), $this->value ) ); return $ret->compile($env); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Operation.php b/vendor/oyejorge/less.php/lib/Less/Tree/Operation.php index 6d8a0d4a9d..e69e0da6ee 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Operation.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Operation.php @@ -22,7 +22,7 @@ class Less_Tree_Operation extends Less_Tree{ $this->isSpaced = $isSpaced; } - function accept($visitor) { + public function accept($visitor) { $this->operands = $visitor->visitArray($this->operands); } @@ -55,7 +55,7 @@ class Less_Tree_Operation extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $this->operands[0]->genCSS( $output ); if( $this->isSpaced ){ $output->add( " " ); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Paren.php b/vendor/oyejorge/less.php/lib/Less/Tree/Paren.php index e865c89864..01864550a6 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Paren.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Paren.php @@ -15,14 +15,14 @@ class Less_Tree_Paren extends Less_Tree{ $this->value = $value; } - function accept($visitor){ + public function accept($visitor){ $this->value = $visitor->visitObj($this->value); } /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( '(' ); $this->value->genCSS( $output ); $output->add( ')' ); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Quoted.php b/vendor/oyejorge/less.php/lib/Less/Tree/Quoted.php index 32cd735924..80063b5efa 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Quoted.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Quoted.php @@ -63,7 +63,7 @@ class Less_Tree_Quoted extends Less_Tree{ return new Less_Tree_Quoted($this->quote . $value . $this->quote, $value, $this->escaped, $this->index, $this->currentFileInfo); } - function compare($x) { + public function compare($x) { if( !Less_Parser::is_method($x, 'toCSS') ){ return -1; diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php b/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php index 221008bf1c..ee4a9e2574 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Rule.php @@ -32,14 +32,14 @@ class Less_Tree_Rule extends Less_Tree{ $this->variable = ( is_string($name) && $name[0] === '@'); } - function accept($visitor) { + public function accept($visitor) { $this->value = $visitor->visitObj( $this->value ); } /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( $this->name . Less_Environment::$_outputMap[': '], $this->currentFileInfo, $this->index); try{ @@ -100,7 +100,7 @@ class Less_Tree_Rule extends Less_Tree{ } - function CompileName( $env, $name ){ + public function CompileName( $env, $name ){ $output = new Less_Output(); foreach($name as $n){ $n->compile($env)->genCSS($output); @@ -108,7 +108,7 @@ class Less_Tree_Rule extends Less_Tree{ return $output->toString(); } - function makeImportant(){ + public function makeImportant(){ return new Less_Tree_Rule($this->name, $this->value, '!important', $this->merge, $this->index, $this->currentFileInfo, $this->inline); } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php b/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php index 908e5a81a4..93d3d6b7bd 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Ruleset.php @@ -24,10 +24,10 @@ class Less_Tree_Ruleset extends Less_Tree{ public $multiMedia; public $allExtends; - var $ruleset_id; - var $originalRuleset; + public $ruleset_id; + public $originalRuleset; - var $first_oelements; + public $first_oelements; public function SetRulesetIndex(){ $this->ruleset_id = Less_Parser::$next_id++; @@ -50,7 +50,7 @@ class Less_Tree_Ruleset extends Less_Tree{ $this->SetRulesetIndex(); } - function accept( $visitor ){ + public function accept( $visitor ){ if( $this->paths ){ $paths_len = count($this->paths); for($i = 0,$paths_len; $i < $paths_len; $i++ ){ diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/RulesetCall.php b/vendor/oyejorge/less.php/lib/Less/Tree/RulesetCall.php index deac79f511..ed4c723731 100644 --- a/vendor/oyejorge/less.php/lib/Less/Tree/RulesetCall.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/RulesetCall.php @@ -11,13 +11,13 @@ class Less_Tree_RulesetCall extends Less_Tree{ public $variable; public $type = "RulesetCall"; - function __construct($variable){ + public function __construct($variable){ $this->variable = $variable; } - function accept($visitor) {} + public function accept($visitor) {} - function compile( $env ){ + public function compile( $env ){ $variable = new Less_Tree_Variable($this->variable); $detachedRuleset = $variable->compile($env); return $detachedRuleset->callEval($env); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Selector.php b/vendor/oyejorge/less.php/lib/Less/Tree/Selector.php index 74872fcff7..6b9dae6125 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Selector.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Selector.php @@ -45,7 +45,7 @@ class Less_Tree_Selector extends Less_Tree{ $this->CacheElements(); } - function accept($visitor) { + public function accept($visitor) { $this->elements = $visitor->visitArray($this->elements); $this->extendList = $visitor->visitArray($this->extendList); if( $this->condition ){ @@ -57,7 +57,7 @@ class Less_Tree_Selector extends Less_Tree{ } } - function createDerived( $elements, $extendList = null, $evaldCondition = null ){ + public function createDerived( $elements, $extendList = null, $evaldCondition = null ){ $newSelector = new Less_Tree_Selector( $elements, ($extendList ? $extendList : $this->extendList), null, $this->index, $this->currentFileInfo, $this->isReferenced); $newSelector->evaldCondition = $evaldCondition ? $evaldCondition : $this->evaldCondition; return $newSelector; @@ -142,7 +142,7 @@ class Less_Tree_Selector extends Less_Tree{ /** * @see Less_Tree::genCSS */ - function genCSS( $output, $firstSelector = true ){ + public function genCSS( $output, $firstSelector = true ){ if( !$firstSelector && $this->elements[0]->combinator === "" ){ $output->add(' ', $this->currentFileInfo, $this->index); @@ -153,15 +153,15 @@ class Less_Tree_Selector extends Less_Tree{ } } - function markReferenced(){ + public function markReferenced(){ $this->isReferenced = true; } - function getIsReferenced(){ + public function getIsReferenced(){ return !isset($this->currentFileInfo['reference']) || !$this->currentFileInfo['reference'] || $this->isReferenced; } - function getIsOutput(){ + public function getIsOutput(){ return $this->evaldCondition; } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php b/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php index 8ab6f43c0b..e13b100e26 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php @@ -13,19 +13,19 @@ class Less_Tree_Unit extends Less_Tree{ public $backupUnit; public $type = 'Unit'; - function __construct($numerator = array(), $denominator = array(), $backupUnit = null ){ + public function __construct($numerator = array(), $denominator = array(), $backupUnit = null ){ $this->numerator = $numerator; $this->denominator = $denominator; $this->backupUnit = $backupUnit; } - function __clone(){ + public function __clone(){ } /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ if( $this->numerator ){ $output->add( $this->numerator[0] ); @@ -37,7 +37,7 @@ class Less_Tree_Unit extends Less_Tree{ } } - function toString(){ + public function toString(){ $returnStr = implode('*',$this->numerator); foreach($this->denominator as $d){ $returnStr .= '/'.$d; @@ -45,7 +45,7 @@ class Less_Tree_Unit extends Less_Tree{ return $returnStr; } - function __toString(){ + public function __toString(){ return $this->toString(); } @@ -53,33 +53,33 @@ class Less_Tree_Unit extends Less_Tree{ /** * @param Less_Tree_Unit $other */ - function compare($other) { + public function compare($other) { return $this->is( $other->toString() ) ? 0 : -1; } - function is($unitString){ + public function is($unitString){ return $this->toString() === $unitString; } - function isLength(){ + public function isLength(){ $css = $this->toCSS(); return !!preg_match('/px|em|%|in|cm|mm|pc|pt|ex/',$css); } - function isAngle() { + public function isAngle() { return isset( Less_Tree_UnitConversions::$angle[$this->toCSS()] ); } - function isEmpty(){ + public function isEmpty(){ return !$this->numerator && !$this->denominator; } - function isSingular() { + public function isSingular() { return count($this->numerator) <= 1 && !$this->denominator; } - function usedUnits(){ + public function usedUnits(){ $result = array(); foreach(Less_Tree_UnitConversions::$groups as $groupName){ @@ -101,7 +101,7 @@ class Less_Tree_Unit extends Less_Tree{ return $result; } - function cancel(){ + public function cancel(){ $counter = array(); $backup = null; diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Url.php b/vendor/oyejorge/less.php/lib/Less/Tree/Url.php index 52384c9961..ef9c3c68c2 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Url.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Url.php @@ -20,14 +20,14 @@ class Less_Tree_Url extends Less_Tree{ $this->isEvald = $isEvald; } - function accept( $visitor ){ + public function accept( $visitor ){ $this->value = $visitor->visitObj($this->value); } /** * @see Less_Tree::genCSS */ - function genCSS( $output ){ + public function genCSS( $output ){ $output->add( 'url(' ); $this->value->genCSS( $output ); $output->add( ')' ); diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Value.php b/vendor/oyejorge/less.php/lib/Less/Tree/Value.php index 67602155f3..9f077bc567 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Value.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Value.php @@ -15,7 +15,7 @@ class Less_Tree_Value extends Less_Tree{ $this->value = $value; } - function accept($visitor) { + public function accept($visitor) { $this->value = $visitor->visitArray($this->value); } diff --git a/vendor/oyejorge/less.php/lib/Less/Tree/Variable.php b/vendor/oyejorge/less.php/lib/Less/Tree/Variable.php index fd774627f1..d2eb868f44 100755 --- a/vendor/oyejorge/less.php/lib/Less/Tree/Variable.php +++ b/vendor/oyejorge/less.php/lib/Less/Tree/Variable.php @@ -26,7 +26,7 @@ class Less_Tree_Variable extends Less_Tree{ public function compile($env) { if( $this->name[1] === '@' ){ - $v = new Less_Tree_Variable(substr($this->name, 1), $this->index + 1); + $v = new Less_Tree_Variable(substr($this->name, 1), $this->index + 1, $this->currentFileInfo); $name = '@' . $v->compile($env)->value; }else{ $name = $this->name; @@ -40,12 +40,13 @@ class Less_Tree_Variable extends Less_Tree{ foreach($env->frames as $frame){ if( $v = $frame->variable($name) ){ + $r = $v->value->compile($env); $this->evaluating = false; - return $v->value->compile($env); + return $r; } } - throw new Less_Exception_Compiler("variable " . $name . " is undefined", null, $this->index ); + throw new Less_Exception_Compiler("variable " . $name . " is undefined in file ".$this->currentFileInfo["filename"], null, $this->index ); } } diff --git a/vendor/oyejorge/less.php/lib/Less/Version.php b/vendor/oyejorge/less.php/lib/Less/Version.php index 32b364ce49..28c8ae14d5 100755 --- a/vendor/oyejorge/less.php/lib/Less/Version.php +++ b/vendor/oyejorge/less.php/lib/Less/Version.php @@ -8,7 +8,7 @@ */ class Less_Version{ - const version = '1.7.0'; // The current build number of less.php + const version = '1.7.0.2'; // The current build number of less.php const less_version = '1.7'; // The less.js version that this build should be compatible with const cache_version = '170'; // The parser cache version diff --git a/vendor/oyejorge/less.php/lib/Less/Visitor.php b/vendor/oyejorge/less.php/lib/Less/Visitor.php index 9bd6a7bc8a..d85f1d910d 100755 --- a/vendor/oyejorge/less.php/lib/Less/Visitor.php +++ b/vendor/oyejorge/less.php/lib/Less/Visitor.php @@ -8,15 +8,15 @@ */ class Less_Visitor{ - var $methods = array(); - var $_visitFnCache = array(); + protected $methods = array(); + protected $_visitFnCache = array(); - function __construct(){ + public function __construct(){ $this->_visitFnCache = get_class_methods(get_class($this)); $this->_visitFnCache = array_flip($this->_visitFnCache); } - function visitObj( $node ){ + public function visitObj( $node ){ $funcName = 'visit'.$node->type; if( isset($this->_visitFnCache[$funcName]) ){ @@ -40,7 +40,7 @@ class Less_Visitor{ return $node; } - function visitArray( $nodes ){ + public function visitArray( $nodes ){ array_map( array($this,'visitObj'), $nodes); return $nodes; diff --git a/vendor/oyejorge/less.php/lib/Less/Visitor/extendFinder.php b/vendor/oyejorge/less.php/lib/Less/Visitor/extendFinder.php index 28be9ae93f..22b3aac99a 100755 --- a/vendor/oyejorge/less.php/lib/Less/Visitor/extendFinder.php +++ b/vendor/oyejorge/less.php/lib/Less/Visitor/extendFinder.php @@ -12,7 +12,7 @@ class Less_Visitor_extendFinder extends Less_Visitor{ public $allExtendsStack; public $foundExtends; - function __construct(){ + public function __construct(){ $this->contexts = array(); $this->allExtendsStack = array(array()); parent::__construct(); @@ -21,21 +21,21 @@ class Less_Visitor_extendFinder extends Less_Visitor{ /** * @param Less_Tree_Ruleset $root */ - function run($root){ + public function run($root){ $root = $this->visitObj($root); $root->allExtends =& $this->allExtendsStack[0]; return $root; } - function visitRule($ruleNode, &$visitDeeper ){ + public function visitRule($ruleNode, &$visitDeeper ){ $visitDeeper = false; } - function visitMixinDefinition( $mixinDefinitionNode, &$visitDeeper ){ + public function visitMixinDefinition( $mixinDefinitionNode, &$visitDeeper ){ $visitDeeper = false; } - function visitRuleset($rulesetNode){ + public function visitRuleset($rulesetNode){ if( $rulesetNode->root ){ return; @@ -71,7 +71,7 @@ class Less_Visitor_extendFinder extends Less_Visitor{ $this->contexts[] = $rulesetNode->selectors; } - function allExtendsStackPush($rulesetNode, $selectorPath, $extend, &$j){ + public function allExtendsStackPush($rulesetNode, $selectorPath, $extend, &$j){ $this->foundExtends = true; $extend = clone $extend; $extend->findSelfSelectors( $selectorPath ); @@ -86,27 +86,27 @@ class Less_Visitor_extendFinder extends Less_Visitor{ } - function visitRulesetOut( $rulesetNode ){ + public function visitRulesetOut( $rulesetNode ){ if( !is_object($rulesetNode) || !$rulesetNode->root ){ array_pop($this->contexts); } } - function visitMedia( $mediaNode ){ + public function visitMedia( $mediaNode ){ $mediaNode->allExtends = array(); $this->allExtendsStack[] =& $mediaNode->allExtends; } - function visitMediaOut(){ + public function visitMediaOut(){ array_pop($this->allExtendsStack); } - function visitDirective( $directiveNode ){ + public function visitDirective( $directiveNode ){ $directiveNode->allExtends = array(); $this->allExtendsStack[] =& $directiveNode->allExtends; } - function visitDirectiveOut(){ + public function visitDirectiveOut(){ array_pop($this->allExtendsStack); } } diff --git a/vendor/oyejorge/less.php/lib/Less/Visitor/joinSelector.php b/vendor/oyejorge/less.php/lib/Less/Visitor/joinSelector.php index 540eb3d34e..f62af1a985 100755 --- a/vendor/oyejorge/less.php/lib/Less/Visitor/joinSelector.php +++ b/vendor/oyejorge/less.php/lib/Less/Visitor/joinSelector.php @@ -13,19 +13,19 @@ class Less_Visitor_joinSelector extends Less_Visitor{ /** * @param Less_Tree_Ruleset $root */ - function run( $root ){ + public function run( $root ){ return $this->visitObj($root); } - function visitRule( $ruleNode, &$visitDeeper ){ + public function visitRule( $ruleNode, &$visitDeeper ){ $visitDeeper = false; } - function visitMixinDefinition( $mixinDefinitionNode, &$visitDeeper ){ + public function visitMixinDefinition( $mixinDefinitionNode, &$visitDeeper ){ $visitDeeper = false; } - function visitRuleset( $rulesetNode ){ + public function visitRuleset( $rulesetNode ){ $paths = array(); @@ -54,11 +54,11 @@ class Less_Visitor_joinSelector extends Less_Visitor{ $this->contexts[] = $paths; //different from less.js. Placed after joinSelectors() so that $this->contexts will get correct $paths } - function visitRulesetOut(){ + public function visitRulesetOut(){ array_pop($this->contexts); } - function visitMedia($mediaNode) { + public function visitMedia($mediaNode) { $context = end($this->contexts); //$context = $this->contexts[ count($this->contexts) - 1]; if( !count($context) || (is_object($context[0]) && $context[0]->multiMedia) ){ diff --git a/vendor/oyejorge/less.php/lib/Less/Visitor/toCSS.php b/vendor/oyejorge/less.php/lib/Less/Visitor/toCSS.php index 93da6c25d8..18d328ffef 100755 --- a/vendor/oyejorge/less.php/lib/Less/Visitor/toCSS.php +++ b/vendor/oyejorge/less.php/lib/Less/Visitor/toCSS.php @@ -10,43 +10,43 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ private $charset; - function __construct(){ + public function __construct(){ parent::__construct(); } /** * @param Less_Tree_Ruleset $root */ - function run( $root ){ + public function run( $root ){ return $this->visitObj($root); } - function visitRule( $ruleNode ){ + public function visitRule( $ruleNode ){ if( $ruleNode->variable ){ return array(); } return $ruleNode; } - function visitMixinDefinition($mixinNode){ + public function visitMixinDefinition($mixinNode){ // mixin definitions do not get eval'd - this means they keep state // so we have to clear that state here so it isn't used if toCSS is called twice $mixinNode->frames = array(); return array(); } - function visitExtend(){ + public function visitExtend(){ return array(); } - function visitComment( $commentNode ){ + public function visitComment( $commentNode ){ if( $commentNode->isSilent() ){ return array(); } return $commentNode; } - function visitMedia( $mediaNode, &$visitDeeper ){ + public function visitMedia( $mediaNode, &$visitDeeper ){ $mediaNode->accept($this); $visitDeeper = false; @@ -56,7 +56,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ return $mediaNode; } - function visitDirective( $directiveNode ){ + public function visitDirective( $directiveNode ){ if( isset($directiveNode->currentFileInfo['reference']) && (!property_exists($directiveNode,'isReferenced') || !$directiveNode->isReferenced) ){ return array(); } @@ -80,7 +80,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ return $directiveNode; } - function checkPropertiesInRoot( $rulesetNode ){ + public function checkPropertiesInRoot( $rulesetNode ){ if( !$rulesetNode->firstRoot ){ return; @@ -95,7 +95,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ } - function visitRuleset( $rulesetNode, &$visitDeeper ){ + public function visitRuleset( $rulesetNode, &$visitDeeper ){ $visitDeeper = false; @@ -192,7 +192,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ return $paths; } - function _removeDuplicateRules( &$rules ){ + protected function _removeDuplicateRules( &$rules ){ // remove duplicates $ruleCache = array(); for( $i = count($rules)-1; $i >= 0 ; $i-- ){ @@ -219,7 +219,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ } } - function _mergeRules( &$rules ){ + protected function _mergeRules( &$rules ){ $groups = array(); //obj($rules); @@ -271,7 +271,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ } - static function toExpression($values){ + public static function toExpression($values){ $mapped = array(); foreach($values as $p){ $mapped[] = $p->value; @@ -279,7 +279,7 @@ class Less_Visitor_toCSS extends Less_VisitorReplacing{ return new Less_Tree_Expression( $mapped ); } - static function toValue($values){ + public static function toValue($values){ //return new Less_Tree_Value($values); ?? $mapped = array(); diff --git a/vendor/oyejorge/less.php/lib/Less/VisitorReplacing.php b/vendor/oyejorge/less.php/lib/Less/VisitorReplacing.php index e4189e747a..5923170e2f 100755 --- a/vendor/oyejorge/less.php/lib/Less/VisitorReplacing.php +++ b/vendor/oyejorge/less.php/lib/Less/VisitorReplacing.php @@ -8,7 +8,7 @@ */ class Less_VisitorReplacing extends Less_Visitor{ - function visitObj( $node ){ + public function visitObj( $node ){ $funcName = 'visit'.$node->type; if( isset($this->_visitFnCache[$funcName]) ){ @@ -34,7 +34,7 @@ class Less_VisitorReplacing extends Less_Visitor{ return $node; } - function visitArray( $nodes ){ + public function visitArray( $nodes ){ $newNodes = array(); foreach($nodes as $node){ @@ -50,7 +50,7 @@ class Less_VisitorReplacing extends Less_Visitor{ return $newNodes; } - function flatten( $arr, &$out ){ + public function flatten( $arr, &$out ){ foreach($arr as $item){ if( !is_array($item) ){ diff --git a/vendor/oyejorge/less.php/test/Fixtures/bootstrap3-sourcemap/expected/bootstrap.map b/vendor/oyejorge/less.php/test/Fixtures/bootstrap3-sourcemap/expected/bootstrap.map index ceade6363c..16f54962a1 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bootstrap3-sourcemap/expected/bootstrap.map +++ b/vendor/oyejorge/less.php/test/Fixtures/bootstrap3-sourcemap/expected/bootstrap.map @@ -1 +1 @@ -{"version":3,"sources":["normalize.less","print.less","scaffolding.less","mixins.less","variables.less","type.less","code.less","grid.less","tables.less","forms.less","buttons.less","component-animations.less","glyphicons.less","dropdowns.less","button-groups.less","input-groups.less","navs.less","navbar.less","utilities.less","breadcrumbs.less","pagination.less","pager.less","labels.less","badges.less","jumbotron.less","thumbnails.less","alerts.less","progress-bars.less","media.less","list-group.less","panels.less","wells.less","close.less","modals.less","tooltip.less","popovers.less","carousel.less","responsive-utilities.less"],"names":[],"mappings":";;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;;AAOF;AACA;AACA;EACE;;AAQF,KAAK,IAAI;EACP;EACA;;AAOF;EACE;;AAaF;EACE;EACA;EACA;;AAOF;EACE;;AAWF,CAAC;EACC,oBAAA;;AAOF,CAAC;AACD,CAAC;EACC;;AAYF;EACE;EACA,gBAAA;;AAOF,IAAI;EACF,yBAAA;;AAOF;AACA;EACE;;AAOF;EACE;;AAOF;EACE;EACA;EACA;;AAOF;EACE;EACA;;AAOF;AACA;AACA;AACA;EACE,6BAAA;EACA;;AAOF;EACE;;AAOF;EACE,QAAQ,QAAQ,QAAQ,QAAQ,OAAhC;;AAOF;EACE;;AAOF;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAWF;EACE;;AAOF,GAAG,IAAI;EACL;;AAWF;EACE;;AAWF;EACE,yBAAA;EACA,aAAA;EACA,8BAAA;;AAQF;EACE;EACA;;AASF;AACA;AACA;AACA;EACE;EACA;EACA;;AAQF;AACA;EACE;;AAUF;AACA;EACE;;AAWF;AACA,IAAK,MAAK;AACV,KAAK;AACL,KAAK;EACH;EACA;;AAOF,MAAM;AACN,IAAK,MAAK;EACR;;AAQF,KAAK;AACL,KAAK;EACH;EACA;;AASF,KAAK;EACH;EACA;EACA;EACA;;AAQF,KAAK,eAAe;AACpB,KAAK,eAAe;EAClB;;AAOF,MAAM;AACN,KAAK;EACH;EACA;;AAQF;EACE;EACA;;AAWF;EACE;EACA;;ACtSF;EA7FE;IACE;IACA;IACA;IACA;;EAGF;EACA,CAAC;IACC;;EAGF,CAAC,MAAM;IACL,SAAS,KAAK,WAAW,GAAzB;;EAGF,IAAI,OAAO;IACT,SAAS,KAAK,YAAY,GAA1B;;EAIF,GAAI,EAAC;EACL,CAAC,qBAAqB;EACtB,CAAC,WAAW;IACV,SAAS,EAAT;;EAGF;EACA;IACE,sBAAA;IACA;;EAGF;IACE;;EAGF;EACA;IACE;;EAGF;IACE;;EAGF;IACE,gBAAA;;EAGF;EACA;EACA;IACE;IACA;;EAGF;EACA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ACD,UAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,UAAC;EACC;;AANF,UAAC;AACD,UAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,UAAC;EACC;;AIdJ;EJ0gBE,kBAAA;EACA,mBAAA;;AAngBA,IAAC;AACD,IAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,IAAC;EACC;;AANF,IAAC;AACD,IAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,IAAC;EACC;;AITJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;EAEA;EAEA,kBAAA;EACA,mBAAA;;AAYF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;;AAEF;EAAa,kBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa;;AAkFb,QAvEmC;EACjC;IACE,gBAAA;;EAGF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;IACE;;EAEF;IAAa,kBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa;;EAGb;IAAkB,iBAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,SAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,SAAA;;EAClB;IAAkB,kBAA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\/B,gBAAgB,YAAe;AAC\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\/BsMA,UAAA;EAGA,wBAAA;;A+BtMA,QAAC;E\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\/ZN,QAH+B,uBAAgC;EAG\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"} \ No newline at end of file +{"version":3,"sources":["less\/normalize.less","less\/print.less","less\/scaffolding.less","less\/mixins.less","less\/variables.less","less\/type.less","less\/code.less","less\/grid.less","less\/tables.less","less\/forms.less","less\/buttons.less","less\/component-animations.less","less\/glyphicons.less","less\/dropdowns.less","less\/button-groups.less","less\/input-groups.less","less\/navs.less","less\/navbar.less","less\/utilities.less","less\/breadcrumbs.less","less\/pagination.less","less\/pager.less","less\/labels.less","less\/badges.less","less\/jumbotron.less","less\/thumbnails.less","less\/alerts.less","less\/progress-bars.less","less\/media.less","less\/list-group.less","less\/panels.less","less\/wells.less","less\/close.less","less\/modals.less","less\/tooltip.less","less\/popovers.less","less\/carousel.less","less\/responsive-utilities.less"],"names":[],"mappings":";;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;;AAOF;AACA;AACA;EACE;;AAQF,KAAK,IAAI;EACP;EACA;;AAOF;EACE;;AAaF;EACE;EACA;EACA;;AAOF;EACE;;AAWF,CAAC;EACC,oBAAA;;AAOF,CAAC;AACD,CAAC;EACC;;AAYF;EACE;EACA,gBAAA;;AAOF,IAAI;EACF,yBAAA;;AAOF;AACA;EACE;;AAOF;EACE;;AAOF;EACE;EACA;EACA;;AAOF;EACE;EACA;;AAOF;AACA;AACA;AACA;EACE,6BAAA;EACA;;AAOF;EACE;;AAOF;EACE,QAAQ,QAAQ,QAAQ,QAAQ,OAAhC;;AAOF;EACE;;AAOF;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAWF;EACE;;AAOF,GAAG,IAAI;EACL;;AAWF;EACE;;AAWF;EACE,yBAAA;EACA,aAAA;EACA,8BAAA;;AAQF;EACE;EACA;;AASF;AACA;AACA;AACA;EACE;EACA;EACA;;AAQF;AACA;EACE;;AAUF;AACA;EACE;;AAWF;AACA,IAAK,MAAK;AACV,KAAK;AACL,KAAK;EACH;EACA;;AAOF,MAAM;AACN,IAAK,MAAK;EACR;;AAQF,KAAK;AACL,KAAK;EACH;EACA;;AASF,KAAK;EACH;EACA;EACA;EACA;;AAQF,KAAK,eAAe;AACpB,KAAK,eAAe;EAClB;;AAOF,MAAM;AACN,KAAK;EACH;EACA;;AAQF;EACE;EACA;;AAWF;EACE;EACA;;ACtSF;EA7FE;IACE;IACA;IACA;IACA;;EAGF;EACA,CAAC;IACC;;EAGF,CAAC,MAAM;IACL,SAAS,KAAK,WAAW,GAAzB;;EAGF,IAAI,OAAO;IACT,SAAS,KAAK,YAAY,GAA1B;;EAIF,GAAI,EAAC;EACL,CAAC,qBAAqB;EACtB,CAAC,WAAW;IACV,SAAS,EAAT;;EAGF;EACA;IACE,sBAAA;IACA;;EAGF;IACE;;EAGF;EACA;IACE;;EAGF;IACE;;EAGF;IACE,gBAAA;;EAGF;EACA;EACA;IACE;IACA;;EAGF;EACA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ACD,UAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,UAAC;EACC;;AANF,UAAC;AACD,UAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,UAAC;EACC;;AIdJ;EJ0gBE,kBAAA;EACA,mBAAA;;AAngBA,IAAC;AACD,IAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,IAAC;EACC;;AANF,IAAC;AACD,IAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,IAAC;EACC;;AITJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;EAEA;EAEA,kBAAA;EACA,mBAAA;;AAYF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;;AAEF;EAAa,kBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,UAAA;;AACb;EAAa,mBAAA;;AACb;EAAa,mBAAA;;AACb;EAAa;;AAkFb,QAvEmC;EACjC;IACE,gBAAA;;EAGF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;IACE;;EAEF;IAAa,kBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,UAAA;;EACb;IAAa,mBAAA;;EACb;IAAa,mBAAA;;EACb;IAAa;;EAGb;IAAkB,iBAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,SAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,kBAAA;;EAClB;IAAkB,SAAA;;EAClB;IAAkB,kBAA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\/B,gBAAgB,YAAe;AAC\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\/BsMA,UAAA;EAGA,wBAAA;;A+BtMA,QAAC;E\/BmMD,YAAA;EAGA,yBAAA;;A+BrMA,QAAC;EAAU;EAAmB,cAAA;;AAC9B,QAAC;EAAU;EAAmB,cAAA;;AAC9B,QAAC;EAAU;EAAmB,cAAA;;AAC9B,QAAC;EAAU;EAAmB,cAAA;;AAIhC;EACE,gBAAA;EACA,gBAAA;EACA,cAAA;EACA;EACA;EACA,yBAAA;EACA,kBAAA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAGA,QAAC,IAAK;EACJ;EACA;EACA,iBAAA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,SAAU;EACT;EACA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,UAAW;EACV;EACA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,MAAO;EACN;EACA;EACA,gBAAA;EACA,2BAAA;EACA,2BAAA;;AAEF,QAAC,KAAM;EACL;EACA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;;AAEF,QAAC,OAAQ;EACP;EACA;EACA,iBAAA;EACA,uBAAA;EACA,4BAAA;;AAEF,QAAC,YAAa;EACZ;EACA;EACA,uBAAA;EACA,4BAAA;;AAEF,QAAC,aAAc;EACb;EACA;EACA,uBAAA;EACA,4BAAA;;ACvFJ;EACE;EACA;EACA;EACA,aAAA;EACA;EACA,gBAAA;EACA;EACA;EACA,yBAAA;EACA;EACA,yBAAA;EACA,oCAAA;EACA,kBAAA;EhCuFA,iDAAA;EACQ,yCAAA;EgCpFR;;AAGA,QAAC;EAAW;;AACZ,QAAC;EAAW;;AACZ,QAAC;EAAW;;AACZ,QAAC;EAAW;;AAGd;EACE;EACA,iBAAA;EACA,eAAA;EACA;EACA;EACA,yBAAA;EACA,gCAAA;EACA,0BAAA;;AAGF;EACE,iBAAA;;AAQA,QADO;AAEP,QAFO,OAEN;EACC;EACA;EACA;EACA;EACA;EACA;;AAGJ,QAAS;EACP,kBAAA;;AAEF,QAAS,OAAM;EACb,kBAAA;EACA,SAAS,EAAT;;AAIA,QAAC,IAAK;EACJ;EACA,kBAAA;EACA;EACA,yBAAA;EACA,qCAAA;EACA,aAAA;;AACA,QAPD,IAAK,OAOH;EACC,SAAS,GAAT;EACA;EACA,kBAAA;EACA;EACA,yBAAA;;AAGJ,QAAC,MAAO;EACN;EACA,WAAA;EACA,iBAAA;EACA;EACA,2BAAA;EACA,uCAAA;;AACA,QAPD,MAAO,OAOL;EACC,SAAS,GAAT;EACA;EACA,aAAA;EACA;EACA,2BAAA;;AAGJ,QAAC,OAAQ;EACP;EACA,kBAAA;EACA;EACA,4BAAA;EACA,wCAAA;EACA,UAAA;;AACA,QAPD,OAAQ,OAON;EACC,SAAS,GAAT;EACA;EACA,kBAAA;EACA;EACA,4BAAA;;AAIJ,QAAC,KAAM;EACL;EACA,YAAA;EACA,iBAAA;EACA;EACA,0BAAA;EACA,sCAAA;;AACA,QAPD,KAAM,OAOJ;EACC,SAAS,GAAT;EACA;EACA;EACA,0BAAA;EACA,aAAA;;AC1HN;EACE;;AAGF;EACE;EACA;EACA;;AAHF,eAKI;EACA;EACA;EjC8FF,yCAAA;EACQ,iCAAA;;AiCtGV,eAKI,QAME;AAXN,eAKI,QAOE,IAAI;EjC2SR,cAAA;EACA;EACA;EiC3SI;;AAdN,eAkBI;AAlBJ,eAmBI;AAnBJ,eAoBI;EAAQ;;AApBZ,eAsBI;EACA;;AAvBJ,eA0BI;AA1BJ,eA2BI;EACA;EACA;EACA;;AA9BJ,eAiCI;EACA;;AAlCJ,eAoCI;EACA;;AArCJ,eAuCI,QAAK;AAvCT,eAwCI,QAAK;EACL;;AAzCJ,eA4CI,UAAO;EACP;;AA7CJ,eA+CI,UAAO;EACP;;AAQJ;EACE;EACA;EACA;EACA;EACA,UAAA;EjC2IA,YAAA;EAGA,yBAAA;EiC5IA,eAAA;EACA,cAAA;EACA;EACA,yCAAA;;AAKA,iBAAC;EjCmJC,kBAAkB,2CAA+D,0BAAoB,0BAArG;EACA,kBAAkB,8BAA8B,mCAAyC,uCAAzF;EACA,kBAAkB,6EAAlB;EACA,kBAAmB,4EAAnB;EACA;EACA,sHAAA;;AiCrJF,iBAAC;EACC;EACA;EjC8IA,kBAAkB,2CAA+D,6BAAoB,uBAArG;EACA,kBAAkB,8BAA8B,sCAAyC,oCAAzF;EACA,kBAAkB,6EAAlB;EACA,kBAAmB,4EAAnB;EACA;EACA,sHAAA;;AiC9IF,iBAAC;AACD,iBAAC;EACC,cAAA;EACA;EjCoHF,YAAA;EAGA,yBAAA;;AiCnJF,iBAiCE;AAjCF,iBAkCE;AAlCF,iBAmCE;AAnCF,iBAoCE;EACE;EACA;EACA;EACA;EACA;;AAzCJ,iBA2CE;AA3CF,iBA4CE;EACE;EACA;EACA;EACA;EACA;;AAIA,iBADF,WACG;EACC,SAAS,OAAT;;AAIF,iBADF,WACG;EACC,SAAS,OAAT;;AAUN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AATF,oBAWE;EACE;EACA;EACA;EACA;EACA;EACA,yBAAA;EACA;EACA;;AAnBJ,oBAqBE;EACE;EACA;EACA;EACA,yBAAA;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAA;EACA;EACA,yCAAA;;AACA,iBAAE;EACA;;AA8BJ,mBAxB8C;EAG5C,iBAAkB;EAClB,iBAAkB;IAChB;IACA;IACA;IACA;IACA;;EAIF;IACE;IACA;IACA;;EAIF;IACE;;;AjC3LF,SAAC;AACD,SAAC;EACC,SAAS,GAAT;;EACA;;;AAEF,SAAC;EACC;;AedJ;EACE;;AAEF;EACE;;AAOF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;Ef0CE,WAAA;EACA;EACA;EACA;EACA;;AetCF;EACE;;AmB\/BF;EACE;;AAkBF,mBANqC;EACnC;IACE;;;AAMJ;EACE;EACA;;AAKF;ElC4dE;;AACA,EAAE;EAAI;;AACN,EAAE;AACF,EAAE;EAAI;;AkC1dN,QAHmC;EAGnC;IlCgdA;;EACA,EAAE;IAAI;;EACN,EAAE;EACF,EAAE;IAAI;;;AkC\/cN,QAHiC,uBAAgC;EAGjE,WAJC;IlCgdD;;EACA,EAAE,WkCjdD;IlCidK;;EACN,EAAE,WkCldD;ElCmdD,EAAE,WkCndD;IlCmdK;;;AkC1cN,QAHiC,uBAAgC;EAGjE,WAJC;IlC2cD;;EACA,EAAE,WkC5cD;IlC4cK;;EACN,EAAE,WkC7cD;ElC8cD,EAAE,WkC9cD;IlC8cK;;;AkCrcN,QAHiC;EAGjC,WAJC;IlCscD;;EACA,EAAE,WkCvcD;IlCucK;;EACN,EAAE,WkCxcD;ElCycD,EAAE,WkCzcD;IlCycK;;;AkCncR;ElCucE;;AACA,EAAE;EAAI;;AACN,EAAE;AACF,EAAE;EAAI;;AkCpcN,QAHqC;EAGrC,WAJC;IlC8bD;;EACA,EAAE,WkC\/bD;IlC+bK;;EACN,EAAE,WkChcD;ElCicD,EAAE,WkCjcD;IlCicK;;;AkCzbN,QAH+B,uBAAgC;EAG\/D;IlCsbA;;EACA,EAAE;IAAI;;EACN,EAAE;EACF,EAAE;IAAI;;;AkCrbN,QAHiC,uBAAgC;EAGjE,WAJC;IlCsbD;;EACA,EAAE,WkCvbD;IlCubK;;EACN,EAAE,WkCxbD;ElCybD,EAAE,WkCzbD;IlCybK;;;AkChbN,QAHiC;EAGjC,WAJC;IlCibD;;EACA,EAAE,WkClbD;IlCkbK;;EACN,EAAE,WkCnbD;ElCobD,EAAE,WkCpbD;IlCobK;;;AkC9aR;ElCkbE;;AACA,EAAE;EAAI;;AACN,EAAE;AACF,EAAE;EAAI;;AkC\/aN,QAHqC;EAGrC,WAJC;IlCyaD;;EACA,EAAE,WkC1aD;IlC0aK;;EACN,EAAE,WkC3aD;ElC4aD,EAAE,WkC5aD;IlC4aK;;;AkCnaN,QAHiC,uBAAgC;EAGjE,WAJC;IlCoaD;;EACA,EAAE,WkCraD;IlCqaK;;EACN,EAAE,WkCtaD;ElCuaD,EAAE,WkCvaD;IlCuaK;;;AkC\/ZN,QAH+B,uBAAgC;EAG\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"} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/72.css b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/72.css index e69de29bb2..b4cf93ce22 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/72.css +++ b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/72.css @@ -0,0 +1,3 @@ +.less_demo_logo { + background: transparent url(../images/logo.png) center center no-repeat; +} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/80.css b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/80.css index e69de29bb2..7546f90744 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/80.css +++ b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/80.css @@ -0,0 +1,3 @@ +.div { + background: transparent url("images/logo.png") center center no-repeat; +} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/81.css b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/81.css index fc6502785d..83f5950cdf 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/81.css +++ b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/81.css @@ -1,3 +1,3 @@ #example { - width: 100 px; -} + width: 99px; +} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/87.css b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/87.css index e69de29bb2..c5ea5b372e 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/87.css +++ b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/87.css @@ -0,0 +1,9 @@ +.test { + background: url('/assets/assets//images/logo.png'); +} +.test { + background: url('/assets/assets/images/logo.png'); +} +.test { + background: url('http://domain/assets/images/logo.png'); +} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/89.css b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/89.css index e69de29bb2..deb60d66ce 100644 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/89.css +++ b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/css/89.css @@ -0,0 +1,3 @@ +#div .div { + background: transparent url("images/logo.png") center center no-repeat; +} \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/less/bootstrap3 b/vendor/oyejorge/less.php/test/Fixtures/bug-reports/less/bootstrap3 deleted file mode 120000 index f8dac9e3a0..0000000000 --- a/vendor/oyejorge/less.php/test/Fixtures/bug-reports/less/bootstrap3 +++ /dev/null @@ -1 +0,0 @@ -/var/www/others/less.php/test/Fixtures/bootstrap3/less \ No newline at end of file diff --git a/vendor/oyejorge/less.php/test/index.php b/vendor/oyejorge/less.php/test/index.php index b5ca42952e..e922dbf150 100755 --- a/vendor/oyejorge/less.php/test/index.php +++ b/vendor/oyejorge/less.php/test/index.php @@ -11,16 +11,21 @@ set_error_handler(array('ParserTest','showError'),E_ALL | E_STRICT); set_time_limit(60); //error_reporting(E_ALL | E_STRICT); +$dir = dirname(dirname(__FILE__)); //get parser -$dir = dirname(dirname(__FILE__)); require_once $dir.'/lib/Less/Autoloader.php'; Less_Autoloader::register(); - require_once $dir.'/lessc.inc.php'; + +//using release +/* require_once $dir.'/test/release/Less.php'; */ + + + //get diff require( $dir. '/test/php-diff/lib/Diff.php'); require( $dir. '/test/php-diff/lib/Diff/Renderer/Html/SideBySide.php'); @@ -246,7 +251,8 @@ class ParserTest{ * Less_Cache Testing Less_Cache::$cache_dir = $this->cache_dir; //$cached_css_file = Less_Cache::Regen( array($file_less=>'') ); - $cached_css_file = Less_Cache::Get( array($file_less=>'') ); + //$options['output'] = md5($file_less).'.css'; + $cached_css_file = Less_Cache::Get( array($file_less=>''), $options ); $compiled = file_get_contents( $this->cache_dir.'/'.$cached_css_file ); */ @@ -809,7 +815,7 @@ function func_trace($len = 1){ } if( !in_array($trace, $traces) ){ msg($trace); - $traces[] = $trace; + //$traces[] = $trace; } } } diff --git a/vendor/oyejorge/less.php/test/phpunit/MapTest.php b/vendor/oyejorge/less.php/test/phpunit/MapTest.php index c4ca807276..799e4b9d26 100644 --- a/vendor/oyejorge/less.php/test/phpunit/MapTest.php +++ b/vendor/oyejorge/less.php/test/phpunit/MapTest.php @@ -18,6 +18,7 @@ class phpunit_MapTest extends phpunit_bootstrap{ $options['sourceMap'] = true; $options['sourceMapWriteTo'] = $map_destination; $options['sourceMapURL'] = '/'; + $options['sourceMapBasepath'] = dirname(dirname($less_file)); $parser = new Less_Parser($options); diff --git a/vendor/pagerfanta/pagerfanta/.gitignore b/vendor/pagerfanta/pagerfanta/.gitignore index 0f6a7dfa77..5a6cedbc6a 100644 --- a/vendor/pagerfanta/pagerfanta/.gitignore +++ b/vendor/pagerfanta/pagerfanta/.gitignore @@ -1,4 +1,4 @@ composer.lock Guardfile phpunit.xml -/vendor/ \ No newline at end of file +/vendor/ diff --git a/vendor/pagerfanta/pagerfanta/.travis.yml b/vendor/pagerfanta/pagerfanta/.travis.yml index a349398e6b..409bd0f926 100644 --- a/vendor/pagerfanta/pagerfanta/.travis.yml +++ b/vendor/pagerfanta/pagerfanta/.travis.yml @@ -3,10 +3,12 @@ language: php php: - 5.3 - 5.4 + - 5.5 + - 5.6 env: - - DOCTRINE_ORM_VERSION=2.2.* - DOCTRINE_ORM_VERSION=2.3.* + - DOCTRINE_ORM_VERSION=2.4.* - DOCTRINE_ORM_VERSION=dev-master - SOLARIUM_VERSION=2.* - SOLARIUM_VERSION=dev-develop @@ -14,7 +16,13 @@ env: services: mongodb before_script: - - pecl -q install -f mongo-1.3.4 && echo "extension=mongo.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` + - echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - sh -c "if [ $DOCTRINE_ORM_VERSION ]; then composer require doctrine/orm:${DOCTRINE_ORM_VERSION} --dev --no-update; fi" - sh -c "if [ $SOLARIUM_VERSION ]; then composer require solarium/solarium:${SOLARIUM_VERSION} --dev --no-update; fi" - - composer install --dev \ No newline at end of file + - composer install --dev + +script: vendor/bin/phpunit --coverage-clover=coverage.clover + +after_script: + - wget https://scrutinizer-ci.com/ocular.phar + - php ocular.phar code-coverage:upload --format=php-clover coverage.clover diff --git a/vendor/pagerfanta/pagerfanta/README.md b/vendor/pagerfanta/pagerfanta/README.md index ad9058e8d4..4998597466 100644 --- a/vendor/pagerfanta/pagerfanta/README.md +++ b/vendor/pagerfanta/pagerfanta/README.md @@ -1,6 +1,6 @@ # Pagerfanta -[![Build Status](https://travis-ci.org/whiteoctober/Pagerfanta.png?branch=master)](https://travis-ci.org/whiteoctober/Pagerfanta) +[![Build Status](https://travis-ci.org/whiteoctober/Pagerfanta.png?branch=master)](https://travis-ci.org/whiteoctober/Pagerfanta) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/whiteoctober/Pagerfanta/badges/quality-score.png?s=1ee480491644c07812b5206cf07d33a5035d0118)](https://scrutinizer-ci.com/g/whiteoctober/Pagerfanta/) [![Code Coverage](https://scrutinizer-ci.com/g/whiteoctober/Pagerfanta/badges/coverage.png?s=284be0616a9ba0439ee1123bcaf5fb3f6bfb0e50)](https://scrutinizer-ci.com/g/whiteoctober/Pagerfanta/) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/9e710230-b088-4904-baef-5f5e2d62e681/mini.png)](https://insight.sensiolabs.com/projects/9e710230-b088-4904-baef-5f5e2d62e681) [![Latest Stable Version](https://poser.pugx.org/pagerfanta/pagerfanta/v/stable.png)](https://packagist.org/packages/pagerfanta/pagerfanta) [![Total Downloads](https://poser.pugx.org/pagerfanta/pagerfanta/downloads.png)](https://packagist.org/packages/pagerfanta/pagerfanta) Pagination for PHP 5.3 @@ -154,7 +154,7 @@ $countQueryBuilderModifier = function ($queryBuilder) { ->setMaxResults(1); }; -$adapter = new DoctrineDbalAdapter($queryBuilder, $countQueryModifier); +$adapter = new DoctrineDbalAdapter($queryBuilder, $countQueryBuilderModifier); ``` ### DoctrineDbalSingleTableAdapter @@ -207,6 +207,20 @@ $queryBuilder = $documentManager->createQueryBuilder('Model\Article'); $adapter = new DoctrineODMMongoDBAdapter($queryBuilder); ``` +### DoctrineODMPhpcrAdapter + +To paginate [Doctrine PHPCR-ODM](http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/) query builders. + +```php +createQueryBuilder(); +$queryBuilder->from('Model\Article'); +$adapter = new DoctrineODMPhpcrAdapter($queryBuilder); +``` + ### DoctrineCollectionAdapter To paginate a `Doctrine\Common\Collection\Collections` interface diff --git a/vendor/pagerfanta/pagerfanta/composer.json b/vendor/pagerfanta/pagerfanta/composer.json index 6f4cca3847..8e19cb0ef9 100644 --- a/vendor/pagerfanta/pagerfanta/composer.json +++ b/vendor/pagerfanta/pagerfanta/composer.json @@ -14,17 +14,22 @@ "php": ">=5.3.0" }, "require-dev": { - "doctrine/orm": "2.*", - "mandango/mandango": "*", - "doctrine/mongodb-odm": "*", + "phpunit/phpunit": "3.7.*", + "doctrine/orm": "2.3.*", + "mandango/mandango": "1.0.*@dev", + "doctrine/mongodb-odm": "1.0.*@dev", + "jmikola/geojson": "1.0.*", + "doctrine/phpcr-odm": "1.*", "propel/propel1": "~1.6", - "solarium/solarium": "dev-develop" + "solarium/solarium": "3.1.*", + "jackalope/jackalope-doctrine-dbal": "1.*" }, "minimum-stability": "dev", "suggest": { "doctrine/orm": "To use the DoctrineORMAdapter.", "mandango/mandango": "To use the MandangoAdapter.", "doctrine/mongodb-odm": "To use the DoctrineODMMongoDBAdapter.", + "doctrine/phpcr-odm": "To use the DoctrineODMPhpcrAdapter. >= 1.1.0", "propel/propel1": "To use the PropelAdapter", "solarium/solarium": "To use the SolariumAdapter." }, diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineDbalSingleTableAdapter.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineDbalSingleTableAdapter.php index 3713d685bd..dbb8d9054d 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineDbalSingleTableAdapter.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineDbalSingleTableAdapter.php @@ -37,7 +37,7 @@ class DoctrineDbalSingleTableAdapter extends DoctrineDbalAdapter parent::__construct($queryBuilder, $countQueryBuilderModifier); } - private function hasQueryBuilderJoins($queryBuilder) + private function hasQueryBuilderJoins(QueryBuilder $queryBuilder) { $joins = $queryBuilder->getQueryPart('join'); diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/CountWalker.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/CountWalker.php deleted file mode 100644 index d8501485e5..0000000000 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/CountWalker.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Pagerfanta\Adapter\DoctrineORM; - -use Doctrine\ORM\Query\TreeWalkerAdapter, - Doctrine\ORM\Query\AST\SelectStatement, - Doctrine\ORM\Query\AST\SelectExpression, - Doctrine\ORM\Query\AST\PathExpression, - Doctrine\ORM\Query\AST\AggregateExpression; - -class CountWalker extends TreeWalkerAdapter -{ - /** - * Walks down a SelectStatement AST node, modifying it to retrieve a COUNT - * - * @param SelectStatement $AST - * @return void - */ - public function walkSelectStatement(SelectStatement $AST) - { - $parent = null; - $parentName = null; - - foreach ($this->_getQueryComponents() as $dqlAlias => $qComp) { - if (array_key_exists('parent', $qComp) && $qComp['parent'] === null && $qComp['nestingLevel'] == 0) { - $parent = $qComp; - $parentName = $dqlAlias; - break; - } - } - - - $pathExpression = new PathExpression( - PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $parentName, - $parent['metadata']->getSingleIdentifierFieldName() - ); - $pathExpression->type = PathExpression::TYPE_STATE_FIELD; - - $AST->selectClause->selectExpressions = array( - new SelectExpression( - new AggregateExpression('count', $pathExpression, true), null - ) - ); - - // ORDER BY is not needed, only increases query execution through unnecessary sorting. - $AST->orderByClause = null; - } - -} diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/LimitSubqueryWalker.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/LimitSubqueryWalker.php deleted file mode 100644 index 8eaf8300f3..0000000000 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/LimitSubqueryWalker.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Pagerfanta\Adapter\DoctrineORM; - -use Doctrine\ORM\Query\TreeWalkerAdapter, - Doctrine\ORM\Query\AST\SelectStatement, - Doctrine\ORM\Query\AST\SelectExpression, - Doctrine\ORM\Query\AST\PathExpression, - Doctrine\ORM\Query\AST\AggregateExpression; - -/** - * Replaces the selectClause of the AST with a SELECT DISTINCT root.id equivalent - * - * @category DoctrineExtensions - * @package DoctrineExtensions\Paginate - * @author David Abdemoulaie - * @copyright Copyright (c) 2010 David Abdemoulaie (http://hobodave.com/) - * @license http://hobodave.com/license.txt New BSD License - */ -class LimitSubqueryWalker extends TreeWalkerAdapter -{ - private $aliasCounter = 0; - - /** - * Walks down a SelectStatement AST node, modifying it to retrieve DISTINCT ids - * of the root Entity - * - * @param SelectStatement $AST - * @return void - */ - public function walkSelectStatement(SelectStatement $AST) - { - $parent = null; - $parentName = null; - $selectExpressions = array(); - - foreach ($this->_getQueryComponents() AS $dqlAlias => $qComp) { - // skip mixed data in query - if (isset($qComp['resultVariable'])) { - $selectExpressions[] = new SelectExpression($qComp['resultVariable'], $dqlAlias); - continue; - } - - if ($qComp['parent'] === null && $qComp['nestingLevel'] == 0) { - $parent = $qComp; - $parentName = $dqlAlias; - break; - } - } - - $pathExpression = new PathExpression( - PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, $parentName, - $parent['metadata']->getSingleIdentifierFieldName() - ); - $pathExpression->type = PathExpression::TYPE_STATE_FIELD; - - array_unshift($selectExpressions, new SelectExpression($pathExpression, '_dctrn_id')); - $AST->selectClause->selectExpressions = $selectExpressions; - - if (isset($AST->orderByClause)) { - foreach ($AST->orderByClause->orderByItems as $item) { - if ($item->expression instanceof PathExpression) { - $pathExpression = new PathExpression( - PathExpression::TYPE_STATE_FIELD | PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION, - $item->expression->identificationVariable, - $item->expression->field - ); - $pathExpression->type = PathExpression::TYPE_STATE_FIELD; - $AST->selectClause->selectExpressions[] = new SelectExpression($pathExpression, '_dctrn_ord'.$this->aliasCounter++); - } - } - } - - $AST->selectClause->isDistinct = true; - } - -} diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/Paginator.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/Paginator.php deleted file mode 100644 index 51ad7d0609..0000000000 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/Paginator.php +++ /dev/null @@ -1,153 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Pagerfanta\Adapter\DoctrineORM; - -use Doctrine\ORM\QueryBuilder; -use Doctrine\ORM\Query; -use Doctrine\ORM\NoResultException; - -/** - * DoctrineORM Paginator. - * - * This class emulates Doctrine\ORM\Tools\Pagination\Paginator for older - * Doctrine versions. - * - * @author Pablo Díez - * @author Benjamin Eberlei - */ -class Paginator implements \Countable, \IteratorAggregate -{ - /** - * @var Query - */ - private $query; - - private $fetchJoinCollection; - - /** - * Constructor. - * - * @param Query|QueryBuilder $query A Doctrine ORM query or query builder. - * @param Boolean $fetchJoinCollection Whether the query joins a collection (true by default). - */ - public function __construct($query, $fetchJoinCollection = true) - { - if ($query instanceof QueryBuilder) { - $query = $query->getQuery(); - } - - $this->query = $query; - $this->fetchJoinCollection = (Boolean) $fetchJoinCollection; - } - - /** - * Returns the query - * - * @return Query - */ - public function getQuery() - { - return $this->query; - } - - /** - * Returns whether the query joins a collection. - * - * @return Boolean Whether the query joins a collection. - */ - public function getFetchJoinCollection() - { - return $this->fetchJoinCollection; - } - - /** - * {@inheritdoc} - */ - public function count() - { - /* @var $countQuery Query */ - $countQuery = $this->cloneQuery($this->query); - - $countQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $countQuery->setFirstResult(null)->setMaxResults(null); - - try { - $data = $countQuery->getScalarResult(); - $data = array_map('current', $data); - return array_sum($data); - } catch(NoResultException $e) { - return 0; - } - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - $offset = $this->query->getFirstResult(); - $length = $this->query->getMaxResults(); - - if ($this->fetchJoinCollection) { - $subQuery = $this->cloneQuery($this->query); - $subQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\LimitSubqueryWalker')) - ->setFirstResult($offset) - ->setMaxResults($length); - - $ids = array_map('current', $subQuery->getScalarResult()); - - $whereInQuery = $this->cloneQuery($this->query); - // don't do this for an empty id array - if (count($ids) > 0) { - $namespace = 'pg_'; - - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', count($ids)); - $whereInQuery->setHint('pg.ns', $namespace); - $whereInQuery->setFirstResult(null)->setMaxResults(null); - foreach ($ids as $i => $id) { - $i++; - $whereInQuery->setParameter("{$namespace}_{$i}", $id); - } - } - - return new \ArrayIterator($whereInQuery->getResult($this->query->getHydrationMode())); - } - - $result = $this->cloneQuery($this->query) - ->setMaxResults($length) - ->setFirstResult($offset) - ->getResult($this->query->getHydrationMode()) - ; - - return new \ArrayIterator($result); - } - - /** - * Clones a query. - * - * @param Query $query The query. - * - * @return Query The cloned query. - */ - private function cloneQuery(Query $query) - { - /* @var $cloneQuery Query */ - $cloneQuery = clone $query; - $cloneQuery->setParameters($query->getParameters()); - foreach ($query->getHints() as $name => $value) { - $cloneQuery->setHint($name, $value); - } - - return $cloneQuery; - } -} diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/WhereInWalker.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/WhereInWalker.php deleted file mode 100644 index a391a22ad8..0000000000 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORM/WhereInWalker.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Pagerfanta\Adapter\DoctrineORM; - -use Doctrine\ORM\Query\TreeWalkerAdapter, - Doctrine\ORM\Query\AST\SelectStatement, - Doctrine\ORM\Query\AST\PathExpression, - Doctrine\ORM\Query\AST\InExpression, - Doctrine\ORM\Query\AST\InputParameter, - Doctrine\ORM\Query\AST\ConditionalPrimary, - Doctrine\ORM\Query\AST\ConditionalTerm, - Doctrine\ORM\Query\AST\ConditionalExpression, - Doctrine\ORM\Query\AST\ConditionalFactor, - Doctrine\ORM\Query\AST\NullComparisonExpression, - Doctrine\ORM\Query\AST\ArithmeticExpression, - Doctrine\ORM\Query\AST\SimpleArithmeticExpression, - Doctrine\ORM\Query\AST\WhereClause; - -/** - * Replaces the whereClause of the AST with a WHERE id IN (:foo_1, :foo_2) equivalent - * - * @category DoctrineExtensions - * @package DoctrineExtensions\Paginate - * @author David Abdemoulaie - * @copyright Copyright (c) 2010 David Abdemoulaie (http://hobodave.com/) - * @license http://hobodave.com/license.txt New BSD License - */ -class WhereInWalker extends TreeWalkerAdapter -{ - /** - * Replaces the whereClause in the AST - * - * Generates a clause equivalent to WHERE IN (:pgid_1, :pgid_2, ...) - * - * The parameter namespace (pgid) is retrieved from the pg.ns query hint - * The total number of parameters is retrieved from the id.count query hint - * - * @param SelectStatement $AST - * @return void - */ - public function walkSelectStatement(SelectStatement $AST) - { - $parent = null; - $parentName = null; - foreach ($this->_getQueryComponents() as $dqlAlias => $qComp) { - if (array_key_exists('parent', $qComp) && $qComp['parent'] === null && $qComp['nestingLevel'] == 0) { - $parent = $qComp; - $parentName = $dqlAlias; - break; - } - } - - $pathExpression = new PathExpression( - PathExpression::TYPE_STATE_FIELD, $parentName, $parent['metadata']->getSingleIdentifierFieldName() - ); - $pathExpression->type = PathExpression::TYPE_STATE_FIELD; - - $count = $this->_getQuery()->getHint('id.count'); - - if ($count > 0) { - // in new doctrine 2.2 version there's a different expression - if (property_exists('Doctrine\ORM\Query\AST\InExpression', 'expression')) { - $arithmeticExpression = new ArithmeticExpression(); - $arithmeticExpression->simpleArithmeticExpression = new SimpleArithmeticExpression( - array($pathExpression) - ); - $inExpression = new InExpression($arithmeticExpression); - } else { - $inExpression = new InExpression($pathExpression); - } - $ns = $this->_getQuery()->getHint('pg.ns'); - for ($i = 1; $i <= $count; $i++) { - $inExpression->literals[] = new InputParameter(":{$ns}_$i"); - } - } else { - $inExpression = new NullComparisonExpression($pathExpression); - $inExpression->not = false; - } - $conditionalPrimary = new ConditionalPrimary; - $conditionalPrimary->simpleConditionalExpression = $inExpression; - - // if no existing whereClause - if ($AST->whereClause === null) { - $AST->whereClause = new WhereClause( - new ConditionalExpression(array( - new ConditionalTerm(array( - new ConditionalFactor($conditionalPrimary) - )) - )) - ); - } else { // add to the existing using AND - // existing AND clause - if ($AST->whereClause->conditionalExpression instanceof ConditionalTerm) { - $AST->whereClause->conditionalExpression->conditionalFactors[] = $conditionalPrimary; - } - // single clause where - elseif ($AST->whereClause->conditionalExpression instanceof ConditionalPrimary) { - $AST->whereClause->conditionalExpression = new ConditionalExpression( - array( - new ConditionalTerm( - array( - $AST->whereClause->conditionalExpression, - $conditionalPrimary - ) - ) - ) - ); - } - // an OR or NOT clause - elseif ($AST->whereClause->conditionalExpression instanceof ConditionalExpression - || $AST->whereClause->conditionalExpression instanceof ConditionalFactor - ) { - $tmpPrimary = new ConditionalPrimary; - $tmpPrimary->conditionalExpression = $AST->whereClause->conditionalExpression; - $AST->whereClause->conditionalExpression = new ConditionalTerm( - array( - $tmpPrimary, - $conditionalPrimary, - ) - ); - } else { - // error check to provide a more verbose error on failure - throw new \RuntimeException("Unknown conditionalExpression in WhereInWalker"); - } - } - } - -} diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORMAdapter.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORMAdapter.php index a7a31e6ff1..9c0a45f9cc 100755 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORMAdapter.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/DoctrineORMAdapter.php @@ -12,7 +12,6 @@ namespace Pagerfanta\Adapter; use Doctrine\ORM\Tools\Pagination\Paginator as DoctrinePaginator; -use Pagerfanta\Adapter\DoctrineORM\Paginator as LegacyPaginator; /** * DoctrineORMAdapter. @@ -31,14 +30,12 @@ class DoctrineORMAdapter implements AdapterInterface * * @param \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder $query A Doctrine ORM query or query builder. * @param Boolean $fetchJoinCollection Whether the query joins a collection (true by default). + * @param Boolean $useOutputWalkers Whether to use output walkers pagination mode */ - public function __construct($query, $fetchJoinCollection = true) + public function __construct($query, $fetchJoinCollection = true, $useOutputWalkers = null) { - if (class_exists('Doctrine\ORM\Tools\Pagination\Paginator')) { - $this->paginator = new DoctrinePaginator($query, $fetchJoinCollection); - } else { - $this->paginator = new LegacyPaginator($query, $fetchJoinCollection); - } + $this->paginator = new DoctrinePaginator($query, $fetchJoinCollection); + $this->paginator->setUseOutputWalkers($useOutputWalkers); } /** diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/SolariumAdapter.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/SolariumAdapter.php index 54632c5bc9..259a3cb80b 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/SolariumAdapter.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/Adapter/SolariumAdapter.php @@ -27,6 +27,9 @@ class SolariumAdapter implements AdapterInterface private $client; private $query; private $resultSet; + private $endPoint; + private $resultSetStart; + private $resultSetRows; /** * Constructor. @@ -96,39 +99,71 @@ class SolariumAdapter implements AdapterInterface */ public function getSlice($offset, $length) { - $this->query - ->setStart($offset) - ->setRows($length); - - $this->clearResultSet(); - - return $this->getResultSet(); + return $this->getResultSet($offset, $length); } /** * @return Solarium_Result_Select|Solarium\QueryType\Select\Result\Result **/ - public function getResultSet() + public function getResultSet($start = null, $rows = null) { - if ($this->isResultSetNotCached()) { + if ($this->resultSetStartAndRowsAreNotNullAndChange($start, $rows)) { + $this->resultSetStart = $start; + $this->resultSetRows = $rows; + + $this->modifyQuery(); + $this->clearResultSet(); + } + + if ($this->resultSetEmpty()) { $this->resultSet = $this->createResultSet(); } return $this->resultSet; } - private function isResultSetNotCached() + private function resultSetStartAndRowsAreNotNullAndChange($start, $rows) { - return $this->resultSet === null; + return $this->resultSetStartAndRowsAreNotNull($start, $rows) && + $this->resultSetStartAndRowsChange($start, $rows); + } + + private function resultSetStartAndRowsAreNotNull($start, $rows) + { + return $start !== null && $rows !== null; + } + + private function resultSetStartAndRowsChange($start, $rows) + { + return $start !== $this->resultSetStart || $rows !== $this->resultSetRows; + } + + private function modifyQuery() + { + $this->query + ->setStart($this->resultSetStart) + ->setRows($this->resultSetRows); } private function createResultSet() { - return $this->client->select($this->query); + return $this->client->select($this->query, $this->endPoint); } private function clearResultSet() { $this->resultSet = null; } + + private function resultSetEmpty() + { + return $this->resultSet === null; + } + + public function setEndPoint($endPoint) + { + $this->endPoint = $endPoint; + + return $this; + } } diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/DefaultView.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/DefaultView.php index 9446235e99..65cc34a66c 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/DefaultView.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/DefaultView.php @@ -54,7 +54,7 @@ class DefaultView implements ViewInterface return $this->generate(); } - private function initializePagerfanta($pagerfanta) + private function initializePagerfanta(PagerfantaInterface $pagerfanta) { $this->pagerfanta = $pagerfanta; diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/OptionableView.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/OptionableView.php index 6dab7e39d5..f65307605b 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/OptionableView.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/OptionableView.php @@ -29,7 +29,7 @@ class OptionableView implements ViewInterface * Constructor. * * @param ViewInterface $view A view. - * @param array $options An array of default options. + * @param array $defaultOptions An array of default options. */ public function __construct(ViewInterface $view, array $defaultOptions) { diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrap3Template.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrap3Template.php index 8e4df7ab90..82b5471c22 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrap3Template.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrap3Template.php @@ -11,19 +11,23 @@ namespace Pagerfanta\View\Template; -use Pagerfanta\View\Template\TwitterBootstrapTemplate; - /** * TwitterBootstrap3Template */ class TwitterBootstrap3Template extends TwitterBootstrapTemplate { + public function __construct() + { + parent::__construct(); + + $this->setOptions(array('active_suffix' => '(current)')); + } public function container() { - return sprintf('
      %%pages%%
    ', $this->option('css_container_class') + return sprintf('
      %%pages%%
    ', + $this->option('css_container_class') ); } - } diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrapTemplate.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrapTemplate.php index 2632fe7b5b..d3d2f09d09 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrapTemplate.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/Template/TwitterBootstrapTemplate.php @@ -18,11 +18,9 @@ class TwitterBootstrapTemplate extends Template { static protected $defaultOptions = array( 'prev_message' => '← Previous', - 'prev_disabled_href' => '#', 'next_message' => 'Next →', - 'next_disabled_href' => '#', 'dots_message' => '…', - 'dots_href' => '#', + 'active_suffix' => '', 'css_container_class' => 'pagination', 'css_prev_class' => 'prev', 'css_next_class' => 'next', @@ -56,16 +54,15 @@ class TwitterBootstrapTemplate extends Template { $href = $this->generateRoute($page); - return $this->li($class, $href, $text); + return $this->linkLi($class, $href, $text); } public function previousDisabled() { $class = $this->previousDisabledClass(); - $href = $this->option('prev_disabled_href'); $text = $this->option('prev_message'); - return $this->li($class, $href, $text); + return $this->spanLi($class, $text); } private function previousDisabledClass() @@ -84,10 +81,9 @@ class TwitterBootstrapTemplate extends Template public function nextDisabled() { $class = $this->nextDisabledClass(); - $href = $this->option('next_disabled_href'); $text = $this->option('next_message'); - return $this->li($class, $href, $text); + return $this->spanLi($class, $text); } private function nextDisabledClass() @@ -115,25 +111,31 @@ class TwitterBootstrapTemplate extends Template public function current($page) { - $text = $page; + $text = trim($page . ' ' . $this->option('active_suffix')); $class = $this->option('css_active_class'); - return $this->pageWithTextAndClass($page, $text, $class); + return $this->spanLi($class, $text); } public function separator() { $class = $this->option('css_dots_class'); - $href = $this->option('dots_href'); $text = $this->option('dots_message'); - return $this->li($class, $href, $text); + return $this->spanLi($class, $text); } - private function li($class, $href, $text) + private function linkLi($class, $href, $text) { $liClass = $class ? sprintf(' class="%s"', $class) : ''; return sprintf('%s', $liClass, $href, $text); } + + private function spanLi($class, $text) + { + $liClass = $class ? sprintf(' class="%s"', $class) : ''; + + return sprintf('%s', $liClass, $text); + } } \ No newline at end of file diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrap3View.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrap3View.php index 95f6c0ff57..f314e389ed 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrap3View.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrap3View.php @@ -12,7 +12,6 @@ namespace Pagerfanta\View; use Pagerfanta\View\Template\TwitterBootstrap3Template; -use Pagerfanta\View\TwitterBootstrapView; /** * TwitterBootstrap3View. @@ -24,7 +23,6 @@ use Pagerfanta\View\TwitterBootstrapView; */ class TwitterBootstrap3View extends TwitterBootstrapView { - protected function createDefaultTemplate() { return new TwitterBootstrap3Template(); @@ -37,5 +35,4 @@ class TwitterBootstrap3View extends TwitterBootstrapView { return 'twitter_bootstrap3'; } - } diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrapView.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrapView.php index 9929526f34..942f9c1c6d 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrapView.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/TwitterBootstrapView.php @@ -11,7 +11,6 @@ namespace Pagerfanta\View; -use Pagerfanta\PagerfantaInterface; use Pagerfanta\View\Template\TwitterBootstrapTemplate; /** diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactory.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactory.php index 7772e3fdd6..16e3b37a9e 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactory.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactory.php @@ -11,7 +11,6 @@ namespace Pagerfanta\View; -use Pagerfanta\PagerfantaInterface; use Pagerfanta\Exception\InvalidArgumentException; /** diff --git a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactoryInterface.php b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactoryInterface.php index 99adc94f34..4ef4b7be9b 100644 --- a/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactoryInterface.php +++ b/vendor/pagerfanta/pagerfanta/src/Pagerfanta/View/ViewFactoryInterface.php @@ -11,8 +11,6 @@ namespace Pagerfanta\View; -use Pagerfanta\PagerfantaInterface; - /** * ViewFactoryInterface. * diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineDbalTestCase.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineDbalTestCase.php index 2a965d1e69..40530a823c 100644 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineDbalTestCase.php +++ b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineDbalTestCase.php @@ -45,13 +45,13 @@ abstract class DoctrineDbalTestCase extends \PHPUnit_Framework_TestCase { $schema = new Schema(); $posts = $schema->createTable('posts'); - $posts->addColumn('id', 'integer', array('unsigned' => true)); + $posts->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true)); $posts->addColumn('username', 'string', array('length' => 32)); $posts->addColumn('post_content', 'text'); $posts->setPrimaryKey(array('id')); $comments = $schema->createTable('comments'); - $comments->addColumn('id', 'integer', array('unsigned' => true)); + $comments->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true)); $comments->addColumn('post_id', 'integer', array('unsigned' => true)); $comments->addColumn('username', 'string', array('length' => 32)); $comments->addColumn('content', 'text'); diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/CountWalkerTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/CountWalkerTest.php deleted file mode 100644 index 729a298e02..0000000000 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/CountWalkerTest.php +++ /dev/null @@ -1,68 +0,0 @@ -entityManager->createQuery( - 'SELECT p, c, a FROM Pagerfanta\Tests\Adapter\DoctrineORM\BlogPost p JOIN p.category c JOIN p.author a'); - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $query->setFirstResult(null)->setMaxResults(null); - - $this->assertEquals( - "SELECT count(DISTINCT b0_.id) AS sclr0 FROM BlogPost b0_ INNER JOIN Category c1_ ON b0_.category_id = c1_.id INNER JOIN Author a2_ ON b0_.author_id = a2_.id", $query->getSql() - ); - } - - public function testCountQuery_MixedResultsWithName() - { - $query = $this->entityManager->createQuery( - 'SELECT a, sum(a.name) as foo FROM Pagerfanta\Tests\Adapter\DoctrineORM\Author a'); - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $query->setFirstResult(null)->setMaxResults(null); - - $this->assertEquals( - "SELECT count(DISTINCT a0_.id) AS sclr0 FROM Author a0_", $query->getSql() - ); - } - - public function testCountQuery_KeepsGroupBy() - { - $query = $this->entityManager->createQuery( - 'SELECT b FROM Pagerfanta\Tests\Adapter\DoctrineORM\BlogPost b GROUP BY b.id'); - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $query->setFirstResult(null)->setMaxResults(null); - - $this->assertEquals( - "SELECT count(DISTINCT b0_.id) AS sclr0 FROM BlogPost b0_ GROUP BY b0_.id", $query->getSql() - ); - } - - public function testCountQuery_RemovesOrderBy() - { - $query = $this->entityManager->createQuery( - 'SELECT p, c, a FROM Pagerfanta\Tests\Adapter\DoctrineORM\BlogPost p JOIN p.category c JOIN p.author a ORDER BY a.name'); - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $query->setFirstResult(null)->setMaxResults(null); - - $this->assertEquals( - "SELECT count(DISTINCT b0_.id) AS sclr0 FROM BlogPost b0_ INNER JOIN Category c1_ ON b0_.category_id = c1_.id INNER JOIN Author a2_ ON b0_.author_id = a2_.id", $query->getSql() - ); - } - - public function testCountQuery_RemovesLimits() - { - $query = $this->entityManager->createQuery( - 'SELECT p, c, a FROM Pagerfanta\Tests\Adapter\DoctrineORM\BlogPost p JOIN p.category c JOIN p.author a'); - $query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\CountWalker')); - $query->setFirstResult(null)->setMaxResults(null); - - $this->assertEquals( - "SELECT count(DISTINCT b0_.id) AS sclr0 FROM BlogPost b0_ INNER JOIN Category c1_ ON b0_.category_id = c1_.id INNER JOIN Author a2_ ON b0_.author_id = a2_.id", $query->getSql() - ); - } -} diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/LimitSubqueryWalkerTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/LimitSubqueryWalkerTest.php deleted file mode 100644 index a5015fdc13..0000000000 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/LimitSubqueryWalkerTest.php +++ /dev/null @@ -1,32 +0,0 @@ -entityManager->createQuery( - 'SELECT p, c, a FROM Pagerfanta\Tests\Adapter\DoctrineORM\MyBlogPost p JOIN p.category c JOIN p.author a'); - $limitQuery = clone $query; - $limitQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\LimitSubqueryWalker')); - - $this->assertEquals( - "SELECT DISTINCT m0_.id AS id0 FROM MyBlogPost m0_ INNER JOIN Category c1_ ON m0_.category_id = c1_.id INNER JOIN Author a2_ ON m0_.author_id = a2_.id", $limitQuery->getSql() - ); - } - - public function testCountQuery_MixedResultsWithName() - { - $query = $this->entityManager->createQuery( - 'SELECT a, sum(a.name) as foo FROM Pagerfanta\Tests\Adapter\DoctrineORM\Author a'); - $limitQuery = clone $query; - $limitQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\LimitSubqueryWalker')); - - $this->assertEquals( - "SELECT DISTINCT a0_.id AS id0, sum(a0_.name) AS sclr1 FROM Author a0_", $limitQuery->getSql() - ); - } -} diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/WhereInWalkerTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/WhereInWalkerTest.php deleted file mode 100644 index b58a3f9171..0000000000 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/DoctrineORM/WhereInWalkerTest.php +++ /dev/null @@ -1,106 +0,0 @@ -entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testCountQuery_MixedResultsWithName() - { - $query = $this->entityManager->createQuery( - 'SELECT a, sum(a.name) as foo FROM Pagerfanta\Tests\Adapter\DoctrineORM\Author a' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT a0_.id AS id0, a0_.name AS name1, sum(a0_.name) AS sclr2 FROM Author a0_ WHERE a0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testWhereInQuery_SingleWhere() - { - $query = $this->entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g WHERE 1 = 1' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE 1 = 1 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testWhereInQuery_MultipleWhereWithAnd() - { - $query = $this->entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g WHERE 1 = 1 AND 2 = 2' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE 1 = 1 AND 2 = 2 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testWhereInQuery_MultipleWhereWithOr() - { - $query = $this->entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g WHERE 1 = 1 OR 2 = 2' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 OR 2 = 2) AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testWhereInQuery_MultipleWhereWithMixed_1() - { - $query = $this->entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g WHERE (1 = 1 OR 2 = 2) AND 3 = 3' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 OR 2 = 2) AND 3 = 3 AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } - - public function testWhereInQuery_MultipleWhereWithMixed_2() - { - $query = $this->entityManager->createQuery( - 'SELECT u, g FROM Pagerfanta\Tests\Adapter\DoctrineORM\User u JOIN u.groups g WHERE 1 = 1 AND 2 = 2 OR 3 = 3' - ); - $whereInQuery = clone $query; - $whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\Adapter\DoctrineORM\WhereInWalker')); - $whereInQuery->setHint('id.count', 10); - - $this->assertEquals( - "SELECT u0_.id AS id0, g1_.id AS id1 FROM User u0_ INNER JOIN user_group u2_ ON u0_.id = u2_.user_id INNER JOIN groups g1_ ON g1_.id = u2_.group_id WHERE (1 = 1 AND 2 = 2 OR 3 = 3) AND u0_.id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $whereInQuery->getSql() - ); - } -} diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/SolariumAdapterTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/SolariumAdapterTest.php index 08b8a0785d..249f719ce6 100644 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/SolariumAdapterTest.php +++ b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/Adapter/SolariumAdapterTest.php @@ -43,6 +43,7 @@ abstract class SolariumAdapterTest extends \PHPUnit_Framework_TestCase public function testGetNbResults() { $query = $this->createQueryMock(); + $endPoint = null; $result = $this->createResultMock(); $result @@ -54,7 +55,7 @@ abstract class SolariumAdapterTest extends \PHPUnit_Framework_TestCase $client ->expects($this->once()) ->method('select') - ->with($query) + ->with($query, $endPoint) ->will($this->returnValue($result)); $adapter = new SolariumAdapter($client, $query); @@ -92,13 +93,14 @@ abstract class SolariumAdapterTest extends \PHPUnit_Framework_TestCase ->with(200) ->will($this->returnValue($query)); + $endPoint = null; $result = $this->createResultMock(); $client = $this->createClientMock(); $client ->expects($this->once()) ->method('select') - ->with($query) + ->with($query, $endPoint) ->will($this->returnValue($result)); $adapter = new SolariumAdapter($client, $query); @@ -122,16 +124,84 @@ abstract class SolariumAdapterTest extends \PHPUnit_Framework_TestCase $adapter->getSlice(1, 200); } + public function testGetNbResultCanUseAGetSliceCachedResultSet() + { + $query = $this->createQueryStub(); + + $client = $this->createClientMock(); + $client + ->expects($this->exactly(1)) + ->method('select') + ->will($this->returnValue($this->createResultMock())); + + $adapter = new SolariumAdapter($client, $query); + + $adapter->getSlice(1, 200); + $adapter->getNbResults(); + } + + public function testSameGetSliceUseACachedResultSet() + { + $query = $this->createQueryStub(); + + $client = $this->createClientMock(); + $client + ->expects($this->exactly(1)) + ->method('select') + ->will($this->returnValue($this->createResultMock())); + + $adapter = new SolariumAdapter($client, $query); + + $adapter->getSlice(1, 200); + $adapter->getSlice(1, 200); + } + + public function testDifferentGetSliceCannotUseACachedResultSet() + { + $query = $this->createQueryStub(); + + $client = $this->createClientMock(); + $client + ->expects($this->exactly(2)) + ->method('select') + ->will($this->returnValue($this->createResultMock())); + + $adapter = new SolariumAdapter($client, $query); + + $adapter->getSlice(1, 200); + $adapter->getSlice(2, 200); + } + public function testGetResultSet() { $query = $this->createQueryMock(); + $endPoint = null; + + $this->doTestGetResultSet($query, $endPoint); + } + + public function testGetResultSetCanUseAnEndPoint() + { + $query = $this->createQueryMock(); + $endPoint = 'ups'; + + $this->doTestGetResultSet($query, $endPoint); + } + + private function doTestGetResultSet($query, $endPoint) + { $client = $this->createClientMock(); $client ->expects($this->atLeastOnce()) ->method('select') + ->with($query, $endPoint) ->will($this->returnValue($this->createResultMock())); $adapter = new SolariumAdapter($client, $query); + if ($endPoint !== null) { + $adapter->setEndPoint($endPoint); + } + $this->assertInstanceOf($this->getResultClass(), $adapter->getResultSet()); } diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/DefaultViewWithCustomTemplateTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/DefaultViewWithCustomTemplateTest.php index a92ff0d063..8b5e2cdc5e 100644 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/DefaultViewWithCustomTemplateTest.php +++ b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/DefaultViewWithCustomTemplateTest.php @@ -26,13 +26,13 @@ class DefaultViewTestWithCustomTemplateTest extends ViewTestCase diff --git a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/TwitterBootstrap3ViewTest.php b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/TwitterBootstrap3ViewTest.php index b2fddc0c91..094ae513fe 100644 --- a/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/TwitterBootstrap3ViewTest.php +++ b/vendor/pagerfanta/pagerfanta/tests/Pagerfanta/Tests/View/TwitterBootstrap3ViewTest.php @@ -24,15 +24,15 @@ class TwitterBootstrap3ViewTest extends TwitterBootstrapViewTest @@ -49,15 +49,15 @@ EOF $this->assertRenderedView(<< - -
  • 1
  • + +
  • 1 (current)
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • -
  • +
  • 100
  • @@ -76,15 +76,15 @@ EOF EOF , $this->renderView($options)); @@ -103,11 +103,11 @@ EOF
  • 1
  • 2
  • 3
  • -
  • 4
  • +
  • 4 (current)
  • 5
  • 6
  • 7
  • -
  • +
  • 100
  • @@ -129,11 +129,11 @@ EOF
  • 2
  • 3
  • 4
  • -
  • 5
  • +
  • 5 (current)
  • 6
  • 7
  • 8
  • -
  • +
  • 100
  • @@ -152,11 +152,11 @@ EOF @@ -136,11 +136,11 @@ EOF
  • 2
  • 3
  • 4
  • -
  • 5
  • +
  • 5
  • 6
  • 7
  • 8
  • -
  • +
  • 100
  • @@ -161,11 +161,11 @@ EOF
    • 1
    • -
    • +
    • 94
    • 95
    • 96
    • -
    • 97
    • +
    • 97
    • 98
    • 99
    • 100
    • @@ -188,11 +188,11 @@ EOF
      • 1
      • -
      • +
      • 93
      • 94
      • 95
      • -
      • 96
      • +
      • 96
      • 97
      • 98
      • 99
      • @@ -216,13 +216,13 @@ EOF @@ -246,15 +246,15 @@ EOF @@ -280,15 +280,15 @@ EOF $this->assertRenderedView(<< diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/CHANGELOG.md b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/CHANGELOG.md index aa12aa9795..f673b8de68 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/CHANGELOG.md +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/CHANGELOG.md @@ -1,14 +1,6 @@ CHANGELOG ========= -3.0 ---- - - * fixed the Doctrine param converter that sent 500 when an entity was not found under some circumstancies - * ParamConverterInterface now uses ParamConverter as a type hint instead of ConfigurationInterface - * added support for @Security - * added support for HTTP validation cache in @Cache (ETag and LastModified) - 2.2 --- diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Cache.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Cache.php index 10056c8ebb..a18899ac65 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Cache.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Cache.php @@ -56,20 +56,6 @@ class Cache extends ConfigurationAnnotation */ protected $vary = array(); - /** - * An expression to compute the Last-Modified HTTP header. - * - * @var string - */ - protected $lastModified; - - /** - * An expression to compute the ETag HTTP header. - * - * @var string - */ - protected $etag; - /** * Returns the expiration date for the Expires header field. * @@ -172,46 +158,6 @@ class Cache extends ConfigurationAnnotation $this->vary = $vary; } - /** - * Sets the "Last-Modified"-header expression. - * - * @param string $expression - */ - public function setLastModified($expression) - { - $this->lastModified = $expression; - } - - /** - * Returns the "Last-Modified"-header expression. - * - * @return string - */ - public function getLastModified() - { - return $this->lastModified; - } - - /** - * Sets the "ETag"-header expression. - * - * @param string $expression - */ - public function setETag($expression) - { - $this->etag = $expression; - } - - /** - * Returns the "ETag"-header expression. - * - * @return string - */ - public function getETag() - { - return $this->etag; - } - /** * Returns the annotation alias name. * diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/ConfigurationInterface.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/ConfigurationInterface.php index 9e2e209dd4..797c2c750a 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/ConfigurationInterface.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/ConfigurationInterface.php @@ -23,12 +23,12 @@ interface ConfigurationInterface * * @return string */ - public function getAliasName(); + function getAliasName(); /** * Returns whether multiple annotations of this type are allowed * * @return Boolean */ - public function allowArray(); + function allowArray(); } diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Security.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Security.php deleted file mode 100644 index e22ede7b50..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Configuration/Security.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Sensio\Bundle\FrameworkExtraBundle\Configuration; - -/** - * The Security class handles the @Security annotation. - * - * @author Fabien Potencier - * @Annotation - */ -class Security extends ConfigurationAnnotation -{ - protected $expression; - - public function getExpression() - { - return $this->expression; - } - - public function setExpression($expression) - { - $this->expression = $expression; - } - - public function setValue($expression) - { - $this->setExpression($expression); - } - - public function getAliasName() - { - return 'security'; - } - - public function allowArray() - { - return false; - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/Configuration.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/Configuration.php index 8539f3377a..9f12c88a1c 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/Configuration.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/Configuration.php @@ -49,12 +49,6 @@ class Configuration implements ConfigurationInterface ->booleanNode('annotations')->defaultTrue()->end() ->end() ->end() - ->arrayNode('security') - ->addDefaultsIfNotSet() - ->children() - ->booleanNode('annotations')->defaultTrue()->end() - ->end() - ->end() ->end() ; diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/SensioFrameworkExtraExtension.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/SensioFrameworkExtraExtension.php index 10002a0b83..535cb9656b 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/SensioFrameworkExtraExtension.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/DependencyInjection/SensioFrameworkExtraExtension.php @@ -67,15 +67,7 @@ class SensioFrameworkExtraExtension extends Extension $annotationsToLoad[] = 'cache.xml'; $this->addClassesToCompile(array( - 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\HttpCacheListener', - )); - } - - if ($config['security']['annotations']) { - $annotationsToLoad[] = 'security.xml'; - - $this->addClassesToCompile(array( - 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\SecurityListener', + 'Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\CacheListener', )); } diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php index 6a7100d65b..d1282837f9 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/CacheListener.php @@ -16,14 +16,58 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface; */ /** - * CacheListener handles HTTP cache headers. + * The CacheListener class has the responsibility to modify the + * Response object when a controller uses the "@Cache" annotation. * - * It can be configured via the @Cache, @LastModified, and @Etag annotations. - * - * @author Fabien Potencier - * - * @deprecated Deprecated since 3.0, to be removed in 4.0. Use the HttpCacheListener instead. + * @author Fabien Potencier */ -class CacheListener extends HttpCacheListener +class CacheListener implements EventSubscriberInterface { + /** + * Modifies the response to apply HTTP expiration header fields. + * + * @param FilterResponseEvent $event The notified event + */ + public function onKernelResponse(FilterResponseEvent $event) + { + if (!$configuration = $event->getRequest()->attributes->get('_cache')) { + return; + } + + $response = $event->getResponse(); + + if (!$response->isSuccessful()) { + return; + } + + if (null !== $configuration->getSMaxAge()) { + $response->setSharedMaxAge($configuration->getSMaxAge()); + } + + if (null !== $configuration->getMaxAge()) { + $response->setMaxAge($configuration->getMaxAge()); + } + + if (null !== $configuration->getExpires()) { + $date = \DateTime::createFromFormat('U', strtotime($configuration->getExpires()), new \DateTimeZone('UTC')); + $response->setExpires($date); + } + + if (null !== $configuration->getVary()) { + $response->setVary($configuration->getVary()); + } + + if ($configuration->isPublic()) { + $response->setPublic(); + } + + $event->setResponse($response); + } + + public static function getSubscribedEvents() + { + return array( + KernelEvents::RESPONSE => 'onKernelResponse', + ); + } } diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/HttpCacheListener.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/HttpCacheListener.php deleted file mode 100644 index aea11a7c51..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/HttpCacheListener.php +++ /dev/null @@ -1,150 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -/** - * HttpCacheListener handles HTTP cache headers. - * - * It can be configured via the @Cache annotation. - * - * @author Fabien Potencier - */ -class HttpCacheListener implements EventSubscriberInterface -{ - private $lastModifiedDates; - private $etags; - private $expressionLanguage; - - public function __construct() - { - $this->lastModifiedDates = new \SplObjectStorage(); - $this->etags = new \SplObjectStorage(); - } - - /** - * Handles HTTP validation headers. - */ - public function onKernelController(FilterControllerEvent $event) - { - $request = $event->getRequest(); - if (!$configuration = $request->attributes->get('_cache')) { - return; - } - - $response = new Response(); - - $lastModifiedDate = ''; - if ($configuration->getLastModified()) { - $lastModifiedDate = $this->getExpressionLanguage()->evaluate($configuration->getLastModified(), $request->attributes->all()); - $response->setLastModified($lastModifiedDate); - } - - $etag = ''; - if ($configuration->getETag()) { - $etag = hash('sha256', $this->getExpressionLanguage()->evaluate($configuration->getETag(), $request->attributes->all())); - $response->setETag($etag); - } - - if ($response->isNotModified($request)) { - $event->setController(function () use ($response) { - return $response; - }); - } else { - if ($etag) { - $this->etags[$request] = $etag; - } - if ($lastModifiedDate) { - $this->lastModifiedDates[$request] = $lastModifiedDate; - } - } - } - - /** - * Modifies the response to apply HTTP cache headers when needed. - */ - public function onKernelResponse(FilterResponseEvent $event) - { - $request = $event->getRequest(); - - if (!$configuration = $request->attributes->get('_cache')) { - return; - } - - $response = $event->getResponse(); - - if (!$response->isSuccessful()) { - return; - } - - if (null !== $configuration->getSMaxAge()) { - $response->setSharedMaxAge($configuration->getSMaxAge()); - } - - if (null !== $configuration->getMaxAge()) { - $response->setMaxAge($configuration->getMaxAge()); - } - - if (null !== $configuration->getExpires()) { - $date = \DateTime::createFromFormat('U', strtotime($configuration->getExpires()), new \DateTimeZone('UTC')); - $response->setExpires($date); - } - - if (null !== $configuration->getVary()) { - $response->setVary($configuration->getVary()); - } - - if ($configuration->isPublic()) { - $response->setPublic(); - } - - if (isset($this->lastModifiedDates[$request])) { - $response->setLastModified($this->lastModifiedDates[$request]); - - unset($this->lastModifiedDates[$request]); - } - - if (isset($this->etags[$request])) { - $response->setETag($this->etags[$request]); - - unset($this->etags[$request]); - } - - $event->setResponse($response); - } - - public static function getSubscribedEvents() - { - return array( - KernelEvents::CONTROLLER => 'onKernelController', - KernelEvents::RESPONSE => 'onKernelResponse', - ); - } - - private function getExpressionLanguage() - { - if (null === $this->expressionLanguage) { - if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) { - throw new \RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); - } - $this->expressionLanguage = new ExpressionLanguage(); - } - - return $this->expressionLanguage; - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/SecurityListener.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/SecurityListener.php deleted file mode 100644 index d66388ab28..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/EventListener/SecurityListener.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * This source file is subject to the MIT license that is bundled - * with this source code in the file LICENSE. - */ - -namespace Sensio\Bundle\FrameworkExtraBundle\EventListener; - -use Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage; -use Symfony\Component\HttpKernel\Event\FilterControllerEvent; -use Symfony\Component\HttpKernel\KernelEvents; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\ExpressionLanguage\Expression; -use Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface; -use Symfony\Component\Security\Core\SecurityContextInterface; -use Symfony\Component\Security\Core\Exception\AccessDeniedException; -use Symfony\Component\Security\Core\Role\RoleHierarchyInterface; - -/** - * SecurityListener handles security restrictions on controllers. - * - * @author Fabien Potencier - */ -class SecurityListener implements EventSubscriberInterface -{ - private $securityContext; - private $language; - private $trustResolver; - private $roleHierarchy; - - public function __construct(SecurityContextInterface $securityContext = null, ExpressionLanguage $language = null, AuthenticationTrustResolverInterface $trustResolver = null, RoleHierarchyInterface $roleHierarchy = null) - { - $this->securityContext = $securityContext; - $this->language = $language; - $this->trustResolver = $trustResolver; - $this->roleHierarchy = $roleHierarchy; - } - - public function onKernelController(FilterControllerEvent $event) - { - $request = $event->getRequest(); - if (!$configuration = $request->attributes->get('_security')) { - return; - } - - if (null === $this->securityContext || null === $this->trustResolver) { - throw new \LogicException('To use the @Security tag, you need to install the Symfony Security bundle.'); - } - - if (!$this->language->evaluate($configuration->getExpression(), $this->getVariables($request))) { - throw new AccessDeniedException(sprintf('Expression "%s" denied access.', $configuration->getExpression())); - } - } - - // code should be sync with Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter - private function getVariables(Request $request) - { - $token = $this->securityContext->getToken(); - - if (null !== $this->roleHierarchy) { - $roles = $this->roleHierarchy->getReachableRoles($token->getRoles()); - } else { - $roles = $token->getRoles(); - } - - $variables = array( - 'token' => $token, - 'user' => $token->getUser(), - 'object' => $request, - 'request' => $request, - 'roles' => array_map(function ($role) { return $role->getRole(); }, $roles), - 'trust_resolver' => $this->trustResolver, - 'security_context' => $this->securityContext, - ); - - // controller variables should also be accessible - return array_merge($request->attributes->all(), $variables); - } - - public static function getSubscribedEvents() - { - return array(KernelEvents::CONTROLLER => 'onKernelController'); - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/README.md b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/README.md index 417a22a84d..00918aebb3 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/README.md +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/README.md @@ -4,9 +4,3 @@ SensioFrameworkExtraBundle This bundle provides a way to configure your controllers with annotations. Read about it on its [official homepage](http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html). - -As of v3.0.0 of the bundle, the release cycle is de-synchronized from the -framework's. It means you can just require "sensio/framework-extra-bundle": -"~3.0" in your composer.json and Composer will automatically pick the latest -version of the bundle that works with your current version of Symfony. The -minimum version of Symfony2 for this workflow is 2.4.0. diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DateTimeParamConverter.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DateTimeParamConverter.php index 49f4656583..fe4a8c0e61 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DateTimeParamConverter.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DateTimeParamConverter.php @@ -11,7 +11,7 @@ namespace Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use DateTime; @@ -24,11 +24,11 @@ use DateTime; class DateTimeParamConverter implements ParamConverterInterface { /** - * {@inheritdoc} - * + * @{inheritdoc} + * * @throws NotFoundHttpException When invalid date given */ - public function apply(Request $request, ParamConverter $configuration) + public function apply(Request $request, ConfigurationInterface $configuration) { $param = $configuration->getName(); @@ -39,10 +39,6 @@ class DateTimeParamConverter implements ParamConverterInterface $options = $configuration->getOptions(); $value = $request->attributes->get($param); - if (!$value && $configuration->isOptional()) { - return false; - } - $date = isset($options['format']) ? DateTime::createFromFormat($options['format'], $value) : new DateTime($value); @@ -57,9 +53,9 @@ class DateTimeParamConverter implements ParamConverterInterface } /** - * {@inheritdoc} + * @{inheritdoc} */ - public function supports(ParamConverter $configuration) + public function supports(ConfigurationInterface $configuration) { if (null === $configuration->getClass()) { return false; diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DoctrineParamConverter.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DoctrineParamConverter.php index db3c79420e..f9a1e78326 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DoctrineParamConverter.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/DoctrineParamConverter.php @@ -2,11 +2,11 @@ namespace Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpFoundation\Request; use Doctrine\Common\Persistence\ManagerRegistry; -use Doctrine\ORM\NoResultException; /* * This file is part of the Symfony framework. @@ -35,12 +35,12 @@ class DoctrineParamConverter implements ParamConverterInterface } /** - * {@inheritdoc} + * @{inheritdoc} * * @throws \LogicException When unable to guess how to get a Doctrine instance from the request information * @throws NotFoundHttpException When object not found */ - public function apply(Request $request, ParamConverter $configuration) + public function apply(Request $request, ConfigurationInterface $configuration) { $name = $configuration->getName(); $class = $configuration->getClass(); @@ -89,11 +89,7 @@ class DoctrineParamConverter implements ParamConverterInterface $method = 'find'; } - try { - return $this->getManager($options['entity_manager'], $class)->getRepository($class)->$method($id); - } catch (NoResultException $e) { - return null; - } + return $this->getManager($options['entity_manager'], $class)->getRepository($class)->$method($id); } protected function getIdentifier(Request $request, $options, $name) @@ -161,18 +157,18 @@ class DoctrineParamConverter implements ParamConverterInterface $method = 'findOneBy'; } - try { - return $em->getRepository($class)->$method($criteria); - } catch (NoResultException $e) { - return null; - } + return $em->getRepository($class)->$method($criteria); } /** - * {@inheritdoc} + * @{inheritdoc} */ - public function supports(ParamConverter $configuration) + public function supports(ConfigurationInterface $configuration) { + if (!$configuration instanceof ParamConverter) { + return false; + } + // if there is no manager, this means that only Doctrine DBAL is configured if (null === $this->registry || !count($this->registry->getManagers())) { return false; @@ -193,7 +189,7 @@ class DoctrineParamConverter implements ParamConverterInterface return ! $em->getMetadataFactory()->isTransient($configuration->getClass()); } - protected function getOptions(ParamConverter $configuration) + protected function getOptions(ConfigurationInterface $configuration) { return array_replace(array( 'entity_manager' => null, diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterInterface.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterInterface.php index 2d03d283ac..52acfd004c 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterInterface.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Request/ParamConverter/ParamConverterInterface.php @@ -2,7 +2,7 @@ namespace Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface; use Symfony\Component\HttpFoundation\Request; /* @@ -24,20 +24,20 @@ interface ParamConverterInterface { /** * Stores the object in the request. - * - * @param Request $request The request - * @param ParamConverter $configuration Contains the name, class and options of the object - * + * + * @param Request $request The request + * @param ConfigurationInterface $configuration Contains the name, class and options of the object + * * @return boolean True if the object has been successfully set, else false */ - public function apply(Request $request, ParamConverter $configuration); + function apply(Request $request, ConfigurationInterface $configuration); /** * Checks if the object is supported. - * - * @param ParamConverter $configuration Should be an instance of ParamConverter - * + * + * @param ConfigurationInterface $configuration Should be an instance of ParamConverter + * * @return boolean True if the object is supported, else false */ - public function supports(ParamConverter $configuration); + function supports(ConfigurationInterface $configuration); } diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/cache.xml b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/cache.xml index dd069733da..47e1050875 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/cache.xml +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/cache.xml @@ -5,7 +5,7 @@ xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> - + diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/security.xml b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/security.xml deleted file mode 100644 index b52659eb98..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/config/security.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/cache.rst b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/cache.rst index 717c80222c..3c68e0fb07 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/cache.rst +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/cache.rst @@ -1,11 +1,8 @@ @Cache ====== -The ``@Cache`` annotation makes it easy to define HTTP caching headers for -expiration and validation. - -HTTP Expiration Strategies --------------------------- +Usage +----- The ``@Cache`` annotation makes it easy to define HTTP caching:: @@ -18,8 +15,7 @@ The ``@Cache`` annotation makes it easy to define HTTP caching:: { } -You can also use the annotation on a class to define caching for all actions -of a controller:: +You can also use the annotation on a class to define caching for all methods:: /** * @Cache(expires="tomorrow", public="true") @@ -44,63 +40,22 @@ configuration, the latter overrides the former:: } } -.. note:: - - The ``expires`` attribute takes any valid date understood by the PHP - ``strtotime()`` function. - -HTTP Validation Strategies --------------------------- - -The ``lastModified`` and ``ETag`` attributes manages the HTTP validation cache -headers. ``lastModified`` adds a ``Last-Modified`` header to Responses and -``ETag`` adds an ``ETag`` header. - -Both automatically trigger the logic to return a 304 response when the -response is not modified (in this case, the controller is **not** called):: - - use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; - - /** - * @Cache(lastModified="post.getUpdatedAt()", ETag="'Post' ~ post.getId() ~ post.getUpdatedAt()") - */ - public function indexAction(Post $post) - { - // your code - // won't be called in case of a 304 - } - -It's roughly doing the same as the following code:: - - public function myAction(Request $request, Post $post) - { - $response = new Response(); - $response->setLastModified($post->getUpdatedAt()); - if ($response->isNotModified($request)) { - return $response; - } - - // your code - } - -.. note:: - - The ETag HTTP header value is the result of the expression hashed with the - ``sha256`` algorithm. - Attributes ---------- Here is a list of accepted attributes and their HTTP header equivalent: -===================================================== ================================ -Annotation Response Method -===================================================== ================================ -``@Cache(expires="tomorrow")`` ``$response->setExpires()`` -``@Cache(smaxage="15")`` ``$response->setSharedMaxAge()`` -``@Cache(maxage="15")`` ``$response->setMaxAge()`` -``@Cache(vary={"Cookie"})`` ``$response->setVary()`` -``@Cache(public="true")`` ``$response->setPublic()`` -``@Cache(lastModified="post.getUpdatedAt()")`` ``$response->setLastModified()`` -``@Cache(ETag="post.getId() ~ post.getUpdatedAt()")`` ``$response->setETag()`` -===================================================== ================================ +============================== =============== +Annotation Response Method +============================== =============== +``@Cache(expires="tomorrow")`` ``$response->setExpires()`` +``@Cache(smaxage="15")`` ``$response->setSharedMaxAge()`` +``@Cache(maxage="15")`` ``$response->setMaxAge()`` +``@Cache(vary=["Cookie"])`` ``$response->setVary()`` +``@Cache(public="true")`` ``$response->setPublic()`` +============================== =============== + +.. note:: + + The ``expires`` attribute takes any valid date understood by the PHP + ``strtotime()`` function. diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/converters.rst b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/converters.rst index 651e45b76b..10192e91db 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/converters.rst +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/converters.rst @@ -54,7 +54,7 @@ To detect which converter is run on a parameter the following process is run: Built-in Converters ------------------- -The bundle has two built-in converters, the Doctrine one and a DateTime +The bundle has two built-in converter, the Doctrine one and a DateTime converter. Doctrine Converter @@ -65,7 +65,7 @@ Converter Name: ``doctrine.orm`` The Doctrine Converter attempts to convert request attributes to Doctrine entities fetched from the database. Two different approaches are possible: -- Fetch object by primary key. +- Fetch object by primary key - Fetch object by one or several fields which contain unique values in the database. @@ -102,11 +102,6 @@ option:: { } -.. tip:: - - The ``id`` option specifies which placeholder from the route gets passed to the repository - method used. If no repository method is specified, ``find()`` is used by default. - This also allows you to have multiple converters in one action:: /** @@ -117,7 +112,7 @@ This also allows you to have multiple converters in one action:: { } -In the example above, the ``$post`` parameter is handled automatically, but ``$comment`` is +In the example above, the post parameter is handled automatically, but the comment is configured with the annotation since they can not both follow the default convention. If you want to match an entity using multiple fields use the ``mapping`` hash @@ -138,7 +133,7 @@ route parameter from being part of the criteria:: /** * @Route("/blog/{date}/{slug}") - * @ParamConverter("post", options={"exclude": {"date"}}) + * @ParamConverter("post", options={"exclude": ["date"]}) */ public function showAction(Post $post, \DateTime $date) { @@ -185,7 +180,8 @@ is accepted. You can be stricter with input given through the options:: Creating a Converter -------------------- -All converters must implement the ``ParamConverterInterface``:: +All converters must implement the +:class:`Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterInterface`:: namespace Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter; @@ -207,14 +203,14 @@ The ``ParamConverter`` instance has three information about the annotation: * ``name``: The attribute name; * ``class``: The attribute class name (can be any string representing a class name); -* ``options``: An array of options. +* ``options``: An array of options The ``apply()`` method is called whenever a configuration is supported. Based on the request attributes, it should set an attribute named ``$configuration->getName()``, which stores an object of class ``$configuration->getClass()``. -To register your converter service you must add a tag to your service: +To register your converter service you must add a tag to your service .. configuration-block:: diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst index f697a6866d..8e4d91f89e 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/routing.rst @@ -4,7 +4,7 @@ Usage ----- -The ``@Route`` annotation maps a route pattern with a controller:: +The @Route annotation maps a route pattern with a controller:: use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; @@ -25,7 +25,7 @@ URL. This is equivalent to the following YAML configuration: .. code-block:: yaml blog_home: - path: / + pattern: / defaults: { _controller: SensioBlogBundle:Post:index } Like any route pattern, you can define placeholders, requirements, and default diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/security.rst b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/security.rst deleted file mode 100644 index 20c9aa8c6d..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/annotations/security.rst +++ /dev/null @@ -1,52 +0,0 @@ -@Security -========= - -Usage ------ - -The ``@Security`` annotation restricts access on controllers:: - - use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; - - class PostController extends Controller - { - /** - * @Security("has_role('ROLE_ADMIN')") - */ - public function indexAction() - { - // ... - } - } - -The expression can use all functions that you can use in the ``access_control`` -section of the security bundle configuration, with the addition of the -``is_granted()`` function. - -The expression has access to the following variables: - -* ``token``: The current security token; -* ``user``: The current user object; -* ``request``: The request instance; -* ``roles``: The user roles; -* and all request attributes. - -The ``is_granted()`` function allows you to restrict access based on variables -passed to the controller:: - - /** - * @Security("is_granted('POST_SHOW', post)") - */ - public function showAction(Post $post) - { - } - -.. note:: - - Defining a ``Security`` annotation has the same effect as defining an - access control rule, but it is more efficient as the check is only done - when this specific route is accessed. - -.. tip:: - - You can also add a ``@Security`` annotation on a controller class. diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst index 54c4c02a78..b973754439 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/doc/index.rst @@ -98,7 +98,6 @@ The following annotations are defined by the bundle: annotations/converters annotations/view annotations/cache - annotations/security This example shows all the available annotations in action:: @@ -107,7 +106,6 @@ This example shows all the available annotations in action:: use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; - use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; /** * @Route("/blog") @@ -130,9 +128,8 @@ This example shows all the available annotations in action:: * @Route("/{id}") * @Method("GET") * @ParamConverter("post", class="SensioBlogBundle:Post") - * @Template("SensioBlogBundle:Annot:show.html.twig", vars={"post"}) - * @Cache(smaxage="15", lastmodified="post.getUpdatedAt()", etag="'Post' ~ post.getId() ~ post.getUpdatedAt()") - * @Security("has_role('ROLE_ADMIN') and is_granted('POST_SHOW', post)") + * @Template("SensioBlogBundle:Annot:post.html.twig", vars={"post"}) + * @Cache(smaxage="15") */ public function showAction(Post $post) { @@ -144,8 +141,7 @@ annotations:: /** * @Route("/{id}") - * @Cache(smaxage="15", lastModified="post.getUpdatedAt()", ETag="'Post' ~ post.getId() ~ post.getUpdatedAt()") - * @Security("has_role('ROLE_ADMIN') and is_granted('POST_SHOW', post)") + * @Cache(smaxage="15") */ public function showAction(Post $post) { diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/meta/LICENSE b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/meta/LICENSE deleted file mode 100644 index ad32bc5255..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Resources/meta/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010,2013 Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Security/ExpressionLanguage.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Security/ExpressionLanguage.php deleted file mode 100644 index a944d78bbd..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Security/ExpressionLanguage.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Sensio\Bundle\FrameworkExtraBundle\Security; - -use Symfony\Component\Security\Core\Authorization\ExpressionLanguage as BaseExpressionLanguage; - -/** - * Adds some function to the default Symfony Security ExpressionLanguage. - * - * @author Fabien Potencier - */ -class ExpressionLanguage extends BaseExpressionLanguage -{ - protected function registerFunctions() - { - parent::registerFunctions(); - - $this->register('is_granted', function ($attributes, $object = null) { - return '$security_context->isGranted($attributes, $object)'; - }, function (array $variables, $attributes, $object = null) { - return $variables['security_context']->isGranted($attributes, $object); - }); - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/ControllerListenerTest.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/ControllerListenerTest.php index 6e6b358c89..9c4257b496 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/ControllerListenerTest.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/ControllerListenerTest.php @@ -20,9 +20,6 @@ class ControllerListenerTest extends \PHPUnit_Framework_TestCase { $this->listener = new ControllerListener(new AnnotationReader()); $this->request = $this->createRequest(); - - // trigger the autoloading of the @Cache annotation - class_exists('Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache'); } public function tearDown() diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/HttpCacheListenerTest.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/HttpCacheListenerTest.php deleted file mode 100644 index 5f483b9349..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/HttpCacheListenerTest.php +++ /dev/null @@ -1,191 +0,0 @@ -listener = new HttpCacheListener(); - $this->response = new Response(); - $this->cache = new Cache(array()); - $this->request = $this->createRequest($this->cache); - $this->event = $this->createEventMock($this->request, $this->response); - } - - public function testWontReassignResponseWhenResponseIsUnsuccessful() - { - $this->event - ->expects($this->never()) - ->method('setResponse') - ; - - $this->response->setStatusCode(404); - - $this->assertInternalType('null', $this->listener->onKernelResponse($this->event)); - } - - public function testWontReassignResponseWhenNoConfigurationIsPresent() - { - $this->event - ->expects($this->never()) - ->method('setResponse') - ; - - $this->request->attributes->remove('_cache'); - - $this->assertInternalType('null', $this->listener->onKernelResponse($this->event)); - } - - public function testResponseIsPublicIfConfigurationIsPublic() - { - $request = $this->createRequest(new Cache(array( - 'public' => true, - ))); - - $this->listener->onKernelResponse($this->createEventMock($request, $this->response)); - - $this->assertTrue($this->response->headers->hasCacheControlDirective('public')); - $this->assertFalse($this->response->headers->hasCacheControlDirective('private')); - } - - public function testConfigurationAttributesAreSetOnResponse() - { - $this->assertInternalType('null', $this->response->getMaxAge()); - $this->assertInternalType('null', $this->response->getExpires()); - $this->assertFalse($this->response->headers->hasCacheControlDirective('s-maxage')); - - $this->request->attributes->set('_cache', new Cache(array( - 'expires' => 'tomorrow', - 'smaxage' => '15', - 'maxage' => '15', - ))); - - $this->listener->onKernelResponse($this->event); - - $this->assertEquals('15', $this->response->getMaxAge()); - $this->assertEquals('15', $this->response->headers->getCacheControlDirective('s-maxage')); - $this->assertInstanceOf('DateTime', $this->response->getExpires()); - } - - public function testLastModifiedNotModifiedResponse() - { - $request = $this->createRequest(new Cache(array('lastModified' => 'test.getDate()'))); - $request->attributes->set('test', new TestEntity()); - $request->headers->add(array('If-Modified-Since' => 'Fri, 23 Aug 2013 00:00:00 GMT')); - - $listener = new HttpCacheListener(); - $controllerEvent = new FilterControllerEvent($this->getKernel(), function () { return new Response(500); }, $request, null); - - $listener->onKernelController($controllerEvent); - $response = call_user_func($controllerEvent->getController()); - - $this->assertEquals(304, $response->getStatusCode()); - } - - public function testLastModifiedHeader() - { - $request = $this->createRequest(new Cache(array('lastModified' => 'test.getDate()'))); - $request->attributes->set('test', new TestEntity()); - $response = new Response(); - - $listener = new HttpCacheListener(); - $controllerEvent = new FilterControllerEvent($this->getKernel(), function () { return new Response(); }, $request, null); - $listener->onKernelController($controllerEvent); - - $responseEvent = new FilterResponseEvent($this->getKernel(), $request, null, call_user_func($controllerEvent->getController())); - $listener->onKernelResponse($responseEvent); - - $response = $responseEvent->getResponse(); - - $this->assertEquals(200, $response->getStatusCode()); - $this->assertTrue($response->headers->has('Last-Modified')); - $this->assertEquals('Fri, 23 Aug 2013 00:00:00 GMT', $response->headers->get('Last-Modified')); - } - - public function testETagNotModifiedResponse() - { - $request = $this->createRequest(new Cache(array('etag' => 'test.getId()'))); - $request->attributes->set('test', $entity = new TestEntity()); - $request->headers->add(array('If-None-Match' => sprintf('"%s"', hash('sha256', $entity->getId())))); - - $listener = new HttpCacheListener(); - $controllerEvent = new FilterControllerEvent($this->getKernel(), function () { return new Response(500); }, $request, null); - - $listener->onKernelController($controllerEvent); - $response = call_user_func($controllerEvent->getController()); - - $this->assertEquals(304, $response->getStatusCode()); - } - - public function testETagHeader() - { - $request = $this->createRequest(new Cache(array('ETag' => 'test.getId()'))); - $request->attributes->set('test', $entity = new TestEntity()); - $response = new Response(); - - $listener = new HttpCacheListener(); - $controllerEvent = new FilterControllerEvent($this->getKernel(), function () { return new Response(); }, $request, null); - $listener->onKernelController($controllerEvent); - - $responseEvent = new FilterResponseEvent($this->getKernel(), $request, null, call_user_func($controllerEvent->getController())); - $listener->onKernelResponse($responseEvent); - - $response = $responseEvent->getResponse(); - - $this->assertEquals(200, $response->getStatusCode()); - $this->assertTrue($response->headers->has('ETag')); - $this->assertContains(hash('sha256', $entity->getId()), $response->headers->get('ETag')); - } - - private function createRequest(Cache $cache = null) - { - return new Request(array(), array(), array( - '_cache' => $cache, - )); - } - - private function createEventMock(Request $request, Response $response) - { - $event = $this->getMock('Symfony\Component\HttpKernel\Event\FilterResponseEvent', array(), array(), '', null); - $event - ->expects($this->any()) - ->method('getRequest') - ->will($this->returnValue($request)) - ; - - $event - ->expects($this->any()) - ->method('getResponse') - ->will($this->returnValue($response)) - ; - - return $event; - } - - private function getKernel() - { - return $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'); - } -} - -class TestEntity -{ - public function getDate() - { - return new \DateTime('Fri, 23 Aug 2013 00:00:00 GMT'); - } - - public function getId() - { - return '12345'; - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/SecurityListenerTest.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/SecurityListenerTest.php deleted file mode 100644 index 8fd5b31d13..0000000000 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/EventListener/SecurityListenerTest.php +++ /dev/null @@ -1,50 +0,0 @@ -getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface'); - $token->expects($this->once())->method('getRoles')->will($this->returnValue(array())); - - $securityContext = $this->getMock('Symfony\Component\Security\Core\SecurityContextInterface'); - $securityContext->expects($this->once())->method('isGranted')->will($this->throwException(new AccessDeniedException())); - $securityContext->expects($this->once())->method('getToken')->will($this->returnValue($token)); - - $trustResolver = $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface'); - - $language = new ExpressionLanguage(); - - $listener = new SecurityListener($securityContext, $language, $trustResolver); - $request = $this->createRequest(new Security(array('expression' => 'has_role("ROLE_ADMIN") and is_granted("FOO")'))); - - $event = new FilterControllerEvent($this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'), function () { return new Response(); }, $request, null); - - $listener->onKernelController($event); - } - - private function createRequest(Security $security = null) - { - return new Request(array(), array(), array( - '_security' => $security, - )); - } - - private function getKernel() - { - return $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'); - } -} diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/Request/ParamConverter/DateTimeParamConverterTest.php b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/Request/ParamConverter/DateTimeParamConverterTest.php index 1cf627762e..b3cbfa4f3a 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/Request/ParamConverter/DateTimeParamConverterTest.php +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/Tests/Request/ParamConverter/DateTimeParamConverterTest.php @@ -47,26 +47,12 @@ class DateTimeParamConverterTest extends \PHPUnit_Framework_TestCase $this->converter->apply($request, $config); } - public function testApplyOptionalWithEmptyAttribute() - { - $request = new Request(array(), array(), array('start' => null)); - $config = $this->createConfiguration('DateTime', 'start'); - $config->expects($this->once()) - ->method('isOptional') - ->will($this->returnValue(true)); - - $this->assertFalse($this->converter->apply($request, $config)); - $this->assertNull($request->attributes->get('start')); - } - public function createConfiguration($class = null, $name = null) { - $config = $this - ->getMockBuilder('Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter') - ->setMethods(array('getClass', 'getAliasName', 'getOptions', 'getName', 'allowArray', 'isOptional')) - ->disableOriginalConstructor() - ->getMock(); - + $config = $this->getMock( + 'Sensio\Bundle\FrameworkExtraBundle\Configuration\ConfigurationInterface', array( + 'getClass', 'getAliasName', 'getOptions', 'getName', 'allowArray' + )); if ($name !== null) { $config->expects($this->any()) ->method('getName') diff --git a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/composer.json b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/composer.json index 81ed5e1ce5..1551d5bfdd 100644 --- a/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/composer.json +++ b/vendor/sensio/framework-extra-bundle/Sensio/Bundle/FrameworkExtraBundle/composer.json @@ -11,24 +11,16 @@ } ], "require": { - "symfony/framework-bundle": "~2.4", + "symfony/framework-bundle": "~2.2", "doctrine/common": "~2.2" }, - "require-dev": { - "symfony/expression-language": "~2.4", - "symfony/security-bundle": "~2.4" - }, - "suggest": { - "symfony/expression-language": "", - "symfony/security-bundle": "" - }, "autoload": { "psr-0": { "Sensio\\Bundle\\FrameworkExtraBundle": "" } }, "target-dir": "Sensio/Bundle/FrameworkExtraBundle", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "2.3.x-dev" } }, "minimum-stability": "dev" diff --git a/vendor/swiftmailer/swiftmailer/CHANGES b/vendor/swiftmailer/swiftmailer/CHANGES index ddbee68a1e..c78c463264 100644 --- a/vendor/swiftmailer/swiftmailer/CHANGES +++ b/vendor/swiftmailer/swiftmailer/CHANGES @@ -1,6 +1,18 @@ Changelog ========= +5.2.1 (2014-06-13) +------------------ + + * SECURITY FIX: fixed CLI escaping when using sendmail as a transport + + Prior to 5.2.1, the sendmail transport (Swift_Transport_SendmailTransport) + was vulnerable to an arbitrary shell execution if the "From" header came + from a non-trusted source and no "Return-Path" is configured. + + * fixed parameter in DKIMSigner + * fixed compatibility with PHP < 5.4 + 5.2.0 (2014-05-08) ------------------ diff --git a/vendor/swiftmailer/swiftmailer/README.git b/vendor/swiftmailer/swiftmailer/README.git deleted file mode 100644 index ad9cc2ec33..0000000000 --- a/vendor/swiftmailer/swiftmailer/README.git +++ /dev/null @@ -1,67 +0,0 @@ -This README applies to anyone who checks out the source from git. - -If you're reading this page on github.com, and you don't have git -installed or know about git, you can download this repository by -using the "download" button on github.com, right above the file -list. - -PREAMBLE: ---------- - -The git repository is structured in the expected way where "master" is the -main branch you should use if you want to have bleeding-edge updates. Any -other branch should be ignored since it will likely contain unstable -and/or experimental developments. - -Generally speaking you should feel safe using the "master" branch in -production code. Anything likely to break will be committed to another -branch. Only bugfixes and clean non-breaking feature additions will be -performed in master. - -All releases (post version 4.0.0) are tagged using the version number of -that release. Earlier versions exist in a subversion repository at the -old sourceforge project page. - - -WHAT IS SWIFT MAILER? ---------------------- - -Swift Mailer is a component based mailing solution for PHP 5. -It is released under the MIT license. - -Homepage: http://swiftmailer.org/ -Documentation: http://swiftmailer.org/docs -Mailing List: http://groups.google.com/group/swiftmailer -Bugs: https://github.com/swiftmailer/swiftmailer/issues -Repository: https://github.com/swiftmailer/swiftmailer - -Swift Mailer is highly object-oriented by design and lends itself -to use in complex web application with a great deal of flexibility. - -For full details on usage, see the documentation. - - -WHY SO MUCH CLUTTER? --------------------- -As you can probably see, there are a lot more files in here than you find in -the pre-packaged versions. That's because I store notes (UML, RFCs etc) in -the repository. - -The main library files live in /lib and the tests live in /tests. You can run -the tests by pointing your web browser at /test-suite, or by running the -command "php test-suite/run.php". Some tests will be "skipped" if -tests/smoke.conf.php and tests/acceptance.conf.php are not edited. This is -harmless and normal. - -If you want to create a bundled-up package from subversion you can do so if -you have Ant (http://ant.apache.org/) installed. Simply run "ant package" -from this directory and the tar.gz file will be created in the /build -directory. - -Running the command "ant" with no arguments will bundle up the package without -compressing it into a tar.gz file. - -Tests can also be run using "ant test" provided php is on your PATH -environment variable. - -EoM diff --git a/vendor/swiftmailer/swiftmailer/VERSION b/vendor/swiftmailer/swiftmailer/VERSION index 137c6adef1..064e3a3be6 100644 --- a/vendor/swiftmailer/swiftmailer/VERSION +++ b/vendor/swiftmailer/swiftmailer/VERSION @@ -1 +1 @@ -Swift-5.2.0 +Swift-5.2.1 diff --git a/vendor/swiftmailer/swiftmailer/build.xml b/vendor/swiftmailer/swiftmailer/build.xml deleted file mode 100644 index 2260269b5d..0000000000 --- a/vendor/swiftmailer/swiftmailer/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/swiftmailer/swiftmailer/create_pear_package.php b/vendor/swiftmailer/swiftmailer/create_pear_package.php deleted file mode 100644 index 521d65011f..0000000000 --- a/vendor/swiftmailer/swiftmailer/create_pear_package.php +++ /dev/null @@ -1,42 +0,0 @@ - date('Y-m-d'), - 'time' => date('H:m:00'), - 'version' => $argv[1], - 'api_version' => $argv[1], - 'stability' => $argv[2], - 'api_stability' => $argv[2], -); - -$context['files'] = ''; -$path = realpath(dirname(__FILE__).'/lib/classes/Swift'); -foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::LEAVES_ONLY) as $file) -{ - if (preg_match('/\.php$/', $file)) - { - $name = str_replace($path.'/', '', $file); - $context['files'] .= ' '."\n"; - } -} - -$template = file_get_contents(dirname(__FILE__).'/package.xml.tpl'); -$content = preg_replace_callback('/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/', 'replace_parameters', $template); -file_put_contents(dirname(__FILE__).'/package.xml', $content); - -function replace_parameters($matches) -{ - global $context; - - return isset($context[$matches[1]]) ? $context[$matches[1]] : null; -} diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php index 75fc01b087..f2a25149fa 100644 --- a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php @@ -195,7 +195,7 @@ class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner */ public static function newInstance($privateKey, $domainName, $selector) { - return new static($privateKey, $domainName, $selector); + return new static($privateKey, $domainName, $selector); } @@ -663,6 +663,10 @@ class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner $this->_headerCanonData .= $header; } + /** + * @throws Swift_SwiftException + * @return string + */ private function _getEncryptedHash() { $signature = ''; @@ -678,7 +682,7 @@ class Swift_Signers_DKIMSigner implements Swift_Signers_HeaderSigner if (!$pkeyId) { throw new Swift_SwiftException('Unable to load DKIM Private Key ['.openssl_error_string().']'); } - if (openssl_sign($this->_headerCanonData, $signature, $this->_privateKey, $algorithm)) { + if (openssl_sign($this->_headerCanonData, $signature, $pkeyId, $algorithm)) { return $signature; } throw new Swift_SwiftException('Unable to sign DKIM Hash ['.openssl_error_string().']'); diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php index dbfd292b45..d6d728fcc7 100644 --- a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php @@ -142,7 +142,7 @@ class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner * @return Swift_Signers_DomainKeySigner */ public static function newInstance($privateKey, $domainName, $selector) { - return new static($privateKey, $domainName, $selector); + return new static($privateKey, $domainName, $selector); } /** @@ -230,7 +230,7 @@ class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner // Don't have to mirror anything foreach ($this->_bound as $k => $stream) { if ($stream === $is) { - unset($this->_bound[$k]); + unset($this->_bound[$k]); return; } @@ -501,6 +501,10 @@ class Swift_Signers_DomainKeySigner implements Swift_Signers_HeaderSigner $this->_canonLine = ''; } + /** + * @throws Swift_SwiftException + * @return string + */ private function _getEncryptedHash() { $signature = ''; diff --git a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php index 95c2e4a09b..9ce748017d 100644 --- a/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php +++ b/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php @@ -114,7 +114,7 @@ class Swift_Transport_SendmailTransport extends Swift_Transport_AbstractSmtpTran } if (false === strpos($command, ' -f')) { - $command .= ' -f' . $this->_getReversePath($message); + $command .= ' -f' . escapeshellarg($this->_getReversePath($message)); } $buffer->initialize(array_merge($this->_params, array('command' => $command))); diff --git a/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php b/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php index 36628a07e8..695d94d311 100755 --- a/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php +++ b/vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php @@ -25,12 +25,12 @@ function generateUpToDateMimeArray() $mime_xml = @file_get_contents(FREEDESKTOP_XML_URL); // prepare valid mime types - $valid_mime_types = []; + $valid_mime_types = array(); // split mime type and extensions eg. "video/x-matroska mkv mk3d mks" if (preg_match_all('/^#?([a-z0-9\-\+\/\.]+)[\t]+(.*)$/miu', $mime_types, $matches) !== FALSE) { // collection of predefined mimetypes (bugfix for wrong resolved or missing mime types) - $valid_mime_types_preset = [ + $valid_mime_types_preset = array( 'php' => 'application/x-php', 'php3' => 'application/x-php', 'php4' => 'application/x-php', @@ -103,7 +103,7 @@ function generateUpToDateMimeArray() 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xml' => 'application/xml', 'zip' => 'application/zip' - ]; + ); // wrap array for generating file foreach ($valid_mime_types_preset as $extension => $mime_type) { @@ -112,7 +112,7 @@ function generateUpToDateMimeArray() } // collect extensions - $valid_extensions = []; + $valid_extensions = array(); // all extensions from second match foreach ($matches[2] as $i => $extensions) { diff --git a/vendor/swiftmailer/swiftmailer/package.xml.tpl b/vendor/swiftmailer/swiftmailer/package.xml.tpl deleted file mode 100644 index 306a4eb6e3..0000000000 --- a/vendor/swiftmailer/swiftmailer/package.xml.tpl +++ /dev/null @@ -1,73 +0,0 @@ - - - Swift - pear.swiftmailer.org - Free Feature-rich PHP Mailer. - - Swift Mailer integrates into any web app written in PHP 5, offering a flexible and elegant object-oriented approach to sending emails with a multitude of features. - - - Fabien Potencier - fabpot - fabien.potencier@symfony-project.org - yes - - - Chris Corbyn - d11wtq - - no - - {{ date }} - - - {{ version }} - {{ api_version }} - - - {{ stability }} - {{ stability }} - - MIT - - - - - - - - - - - - - - - - - - - - - - -{{ files }} - - - - - - - - - 5.2.4 - - - 1.4.0 - - - - - diff --git a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php index f6efbfe862..f6f915163e 100644 --- a/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php +++ b/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php @@ -210,7 +210,7 @@ class Swift_Transport_Esmtp_Auth_NTLMAuthenticatorTest extends \SwiftMailerTestC private function _getAgent() { - return $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing();; + return $this->getMockery('Swift_Transport_SmtpAgent')->shouldIgnoreMissing(); } private function _invokePrivateMethod($method, $instance, array $args = array()) diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/.travis.yml b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/.travis.yml index 39a0efed4e..f6bb3d9357 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/.travis.yml +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/.travis.yml @@ -3,7 +3,12 @@ language: php php: - 5.3 - 5.4 + - 5.5 + - 5.6 + - hhvm before_script: - - curl -s http://getcomposer.org/installer | php - - php composer.phar install --dev + - composer self-update + - composer install --prefer-source + +script: phpunit --coverage-text diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Compiler/DebugHandlerPass.php b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Compiler/DebugHandlerPass.php index 8906abe5e4..46b4b766e0 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Compiler/DebugHandlerPass.php +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Compiler/DebugHandlerPass.php @@ -15,7 +15,6 @@ use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\HttpKernel\Kernel; use Monolog\Logger; /** diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php index 10c9a61643..850b238dc0 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php @@ -40,6 +40,10 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; * - [level]: level name or int value, defaults to DEBUG * - [bubble]: bool, defaults to true * + * - browser_console: + * - [level]: level name or int value, defaults to DEBUG + * - [bubble]: bool, defaults to true + * * - gelf: * - publisher: {id: ...} or {hostname: ..., port: ..., chunk_size: ...} * - [level]: level name or int value, defaults to DEBUG @@ -73,6 +77,14 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; * - [excluded_404s]: if set, the strategy will be changed to one that excludes 404s coming from URLs matching any of those patterns * - [buffer_size]: defaults to 0 (unlimited) * - [stop_buffering]: bool to disable buffering once the handler has been activated, defaults to true + * - [passthru_level]: level name or int value for messages to always flush, disabled by default + * - [bubble]: bool, defaults to true + * + * - filter: + * - handler: the wrapped handler's name + * - [accepted_levels]: list of levels to accept + * - [min_level]: minimum level to accept (only used if accepted_levels not specified) + * - [max_level]: maximum level to accept (only used if accepted_levels not specified) * - [bubble]: bool, defaults to true * * - buffer: @@ -92,6 +104,14 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; * - [level]: level name or int value, defaults to DEBUG * - [bubble]: bool, defaults to true * + * - syslogudp: + * - host: syslogd host name + * - [port]: defaults to 514 + * - [facility]: defaults to LOG_USER + * - [logopts]: defaults to LOG_PID + * - [level]: level name or int value, defaults to DEBUG + * - [bubble]: bool, defaults to true + * * - swift_mailer: * - from_email: optional if email_prototype is given * - to_email: optional if email_prototype is given @@ -125,6 +145,7 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; * * - raven: * - dsn: connection string + * - client_id: Raven client custom service id (optional) * - [level]: level name or int value, defaults to DEBUG * - [bubble]: bool, defaults to true * @@ -174,6 +195,26 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; * - [bubble]: bool, defaults to true * - [tags]: tag names * + * - logentries: + * - token: logentries api token + * - [use_ssl]: whether or not SSL encryption should be used, defaults to true + * - [level]: level name or int value, defaults to DEBUG + * - [bubble]: bool, defaults to true + * + * - flowdock: + * - token: flowdock api token + * - source: human readable identifier of the application + * - from_email: email address of the message sender + * - [level]: level name or int value, defaults to DEBUG + * - [bubble]: bool, defaults to true + * + * - rollbar: + * - id: RollbarNotifier service (mandatory if token is not provided) + * - token: rollbar api token (skip if you provide a RollbarNotifier service id) + * - [config]: config values from https://github.com/rollbar/rollbar-php#configuration-reference + * - [level]: level name or int value, defaults to DEBUG + * - [bubble]: bool, defaults to true + * * @author Jordi Boggiano * @author Christophe Coevoet */ @@ -204,6 +245,7 @@ class Configuration implements ConfigurationInterface ->fixXmlConfig('member') ->fixXmlConfig('excluded_404') ->fixXmlConfig('tag') + ->fixXmlConfig('accepted_level') ->canBeUnset() ->children() ->scalarNode('type') @@ -211,10 +253,10 @@ class Configuration implements ConfigurationInterface ->treatNullLike('null') ->beforeNormalization() ->always() - ->then(function($v) { return strtolower($v); }) + ->then(function ($v) { return strtolower($v); }) ->end() ->end() - ->scalarNode('id')->end() + ->scalarNode('id')->end() // service & rollbar ->scalarNode('priority')->defaultValue(0)->end() ->scalarNode('level')->defaultValue('DEBUG')->end() ->booleanNode('bubble')->defaultTrue()->end() @@ -226,10 +268,17 @@ class Configuration implements ConfigurationInterface ->scalarNode('action_level')->defaultValue('WARNING')->end() // fingers_crossed ->scalarNode('activation_strategy')->defaultNull()->end() // fingers_crossed ->booleanNode('stop_buffering')->defaultTrue()->end()// fingers_crossed + ->scalarNode('passthru_level')->defaultNull()->end() // fingers_crossed ->arrayNode('excluded_404s') // fingers_crossed ->canBeUnset() ->prototype('scalar')->end() ->end() + ->arrayNode('accepted_levels') // filter + ->canBeUnset() + ->prototype('scalar')->end() + ->end() + ->scalarNode('min_level')->defaultValue('DEBUG')->end() // filter + ->scalarNode('max_level')->defaultValue('EMERGENCY')->end() //filter ->scalarNode('buffer_size')->defaultValue(0)->end() // fingers_crossed and buffer ->scalarNode('handler')->end() // fingers_crossed and buffer ->scalarNode('url')->end() // cube @@ -238,21 +287,25 @@ class Configuration implements ConfigurationInterface ->scalarNode('room')->end() // hipchat ->scalarNode('notify')->defaultFalse()->end() // hipchat ->scalarNode('nickname')->defaultValue('Monolog')->end() // hipchat - ->scalarNode('token')->end() // pushover & hipchat & loggly + ->scalarNode('token')->end() // pushover & hipchat & loggly & logentries & flowdock & rollbar + ->scalarNode('source')->end() // flowdock + ->booleanNode('use_ssl')->defaultTrue()->end() // logentries ->variableNode('user') // pushover ->validate() - ->ifTrue(function($v) { + ->ifTrue(function ($v) { return !is_string($v) && !is_array($v); }) ->thenInvalid('User must be a string or an array.') ->end() ->end() ->scalarNode('title')->defaultNull()->end() // pushover + ->scalarNode('host')->end() // syslogudp + ->scalarNode('port')->defaultValue(514)->end() // syslogudp ->arrayNode('publisher') ->canBeUnset() ->beforeNormalization() ->ifString() - ->then(function($v) { return array('id'=> $v); }) + ->then(function ($v) { return array('id'=> $v); }) ->end() ->children() ->scalarNode('id')->end() @@ -261,7 +314,7 @@ class Configuration implements ConfigurationInterface ->scalarNode('chunk_size')->defaultValue(1420)->end() ->end() ->validate() - ->ifTrue(function($v) { + ->ifTrue(function ($v) { return !isset($v['id']) && !isset($v['hostname']); }) ->thenInvalid('What must be set is either the hostname or the id.') @@ -271,7 +324,7 @@ class Configuration implements ConfigurationInterface ->canBeUnset() ->beforeNormalization() ->ifString() - ->then(function($v) { return array('id'=> $v); }) + ->then(function ($v) { return array('id'=> $v); }) ->end() ->children() ->scalarNode('id')->end() @@ -283,29 +336,33 @@ class Configuration implements ConfigurationInterface ->scalarNode('collection')->defaultValue('logs')->end() ->end() ->validate() - ->ifTrue(function($v) { + ->ifTrue(function ($v) { return !isset($v['id']) && !isset($v['host']); }) ->thenInvalid('What must be set is either the host or the id.') ->end() ->validate() - ->ifTrue(function($v) { + ->ifTrue(function ($v) { return isset($v['user']) && !isset($v['pass']); }) ->thenInvalid('If you set user, you must provide a password.') ->end() ->end() // mongo + ->arrayNode('config') + ->canBeUnset() + ->prototype('scalar')->end() + ->end() // rollbar ->arrayNode('members') // group ->canBeUnset() ->performNoDeepMerging() ->prototype('scalar')->end() ->end() - ->scalarNode('from_email')->end() // swift_mailer and native_mailer + ->scalarNode('from_email')->end() // swift_mailer, native_mailer and flowdock ->arrayNode('to_email') // swift_mailer and native_mailer ->prototype('scalar')->end() ->beforeNormalization() ->ifString() - ->then(function($v) { return array($v); }) + ->then(function ($v) { return array($v); }) ->end() ->end() ->scalarNode('subject')->end() // swift_mailer and native_mailer @@ -315,7 +372,7 @@ class Configuration implements ConfigurationInterface ->canBeUnset() ->beforeNormalization() ->ifString() - ->then(function($v) { return array('id' => $v); }) + ->then(function ($v) { return array('id' => $v); }) ->end() ->children() ->scalarNode('id')->isRequired()->end() @@ -327,15 +384,16 @@ class Configuration implements ConfigurationInterface ->scalarNode('connection_timeout')->end() // socket_handler ->booleanNode('persistent')->end() // socket_handler ->scalarNode('dsn')->end() // raven_handler + ->scalarNode('client_id')->defaultNull()->end() // raven_handler ->scalarNode('message_type')->defaultValue(0)->end() // error_log ->arrayNode('tags') // loggly ->beforeNormalization() ->ifString() - ->then(function($v) { return explode(',', $v); }) + ->then(function ($v) { return explode(',', $v); }) ->end() ->beforeNormalization() ->ifArray() - ->then(function($v) { return array_filter(array_map('trim', $v)); }) + ->then(function ($v) { return array_filter(array_map('trim', $v)); }) ->end() ->prototype('scalar')->end() ->end() @@ -400,14 +458,14 @@ class Configuration implements ConfigurationInterface ->canBeUnset() ->beforeNormalization() ->ifString() - ->then(function($v) { return array('elements' => array($v)); }) + ->then(function ($v) { return array('elements' => array($v)); }) ->end() ->beforeNormalization() - ->ifTrue(function($v) { return is_array($v) && is_numeric(key($v)); }) - ->then(function($v) { return array('elements' => $v); }) + ->ifTrue(function ($v) { return is_array($v) && is_numeric(key($v)); }) + ->then(function ($v) { return array('elements' => $v); }) ->end() ->validate() - ->ifTrue(function($v) { return empty($v); }) + ->ifTrue(function ($v) { return empty($v); }) ->thenUnset() ->end() ->validate() @@ -452,68 +510,88 @@ class Configuration implements ConfigurationInterface ->scalarNode('formatter')->end() ->end() ->validate() - ->ifTrue(function($v) { return 'service' === $v['type'] && !empty($v['formatter']); }) + ->ifTrue(function ($v) { return 'service' === $v['type'] && !empty($v['formatter']); }) ->thenInvalid('Service handlers can not have a formatter configured in the bundle, you must reconfigure the service itself instead') ->end() ->validate() - ->ifTrue(function($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type']) && 1 !== count($v['handler']); }) - ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler or BufferHandler') + ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); }) + ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler or BufferHandler or FilterHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'fingers_crossed' === $v['type'] && !empty($v['excluded_404s']) && !empty($v['activation_strategy']); }) + ->ifTrue(function ($v) { return 'fingers_crossed' === $v['type'] && !empty($v['excluded_404s']) && !empty($v['activation_strategy']); }) ->thenInvalid('You can not use excluded_404s together with a custom activation_strategy in a FingersCrossedHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'swift_mailer' === $v['type'] && empty($v['email_prototype']) && (empty($v['from_email']) || empty($v['to_email']) || empty($v['subject'])); }) + ->ifTrue(function ($v) { return 'filter' === $v['type'] && "DEBUG" !== $v['min_level'] && !empty($v['accepted_levels']); }) + ->thenInvalid('You can not use min_level together with accepted_levels in a FilterHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'filter' === $v['type'] && "EMERGENCY" !== $v['max_level'] && !empty($v['accepted_levels']); }) + ->thenInvalid('You can not use max_level together with accepted_levels in a FilterHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'rollbar' === $v['type'] && !empty($v['id']) && !empty($v['token']); }) + ->thenInvalid('You can not use both an id and a token in a RollbarHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'rollbar' === $v['type'] && empty($v['id']) && empty($v['token']); }) + ->thenInvalid('The id or the token has to be specified to use a RollbarHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'swift_mailer' === $v['type'] && empty($v['email_prototype']) && (empty($v['from_email']) || empty($v['to_email']) || empty($v['subject'])); }) ->thenInvalid('The sender, recipient and subject or an email prototype have to be specified to use a SwiftMailerHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'native_mailer' === $v['type'] && (empty($v['from_email']) || empty($v['to_email']) || empty($v['subject'])); }) + ->ifTrue(function ($v) { return 'native_mailer' === $v['type'] && (empty($v['from_email']) || empty($v['to_email']) || empty($v['subject'])); }) ->thenInvalid('The sender, recipient and subject have to be specified to use a NativeMailerHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'service' === $v['type'] && !isset($v['id']); }) + ->ifTrue(function ($v) { return 'service' === $v['type'] && !isset($v['id']); }) ->thenInvalid('The id has to be specified to use a service as handler') ->end() ->validate() - ->ifTrue(function($v) { return 'gelf' === $v['type'] && !isset($v['publisher']); }) + ->ifTrue(function ($v) { return 'syslogudp' === $v['type'] && !isset($v['host']); }) + ->thenInvalid('The host has to be specified to use a syslogudp as handler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'gelf' === $v['type'] && !isset($v['publisher']); }) ->thenInvalid('The publisher has to be specified to use a GelfHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'socket' === $v['type'] && !isset($v['connection_string']); }) + ->ifTrue(function ($v) { return 'socket' === $v['type'] && !isset($v['connection_string']); }) ->thenInvalid('The connection_string has to be specified to use a SocketHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'pushover' === $v['type'] && (empty($v['token']) || empty($v['user'])); }) + ->ifTrue(function ($v) { return 'pushover' === $v['type'] && (empty($v['token']) || empty($v['user'])); }) ->thenInvalid('The token and user have to be specified to use a PushoverHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'raven' === $v['type'] && !array_key_exists('dsn', $v); }) + ->ifTrue(function ($v) { return 'raven' === $v['type'] && !array_key_exists('dsn', $v); }) ->thenInvalid('The DSN has to be specified to use a RavenHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'hipchat' === $v['type'] && (empty($v['token']) || empty($v['room'])); }) + ->ifTrue(function ($v) { return 'hipchat' === $v['type'] && (empty($v['token']) || empty($v['room'])); }) ->thenInvalid('The token and room have to be specified to use a HipChatHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'cube' === $v['type'] && empty($v['url']); }) + ->ifTrue(function ($v) { return 'cube' === $v['type'] && empty($v['url']); }) ->thenInvalid('The url has to be specified to use a CubeHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'mongo' === $v['type'] && !isset($v['mongo']); }) + ->ifTrue(function ($v) { return 'mongo' === $v['type'] && !isset($v['mongo']); }) ->thenInvalid('The mongo configuration has to be specified to use a MongoHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'amqp' === $v['type'] && empty($v['exchange']); }) + ->ifTrue(function ($v) { return 'amqp' === $v['type'] && empty($v['exchange']); }) ->thenInvalid('The exchange has to be specified to use a AmqpHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'loggly' === $v['type'] && empty($v['token']); }) + ->ifTrue(function ($v) { return 'loggly' === $v['type'] && empty($v['token']); }) ->thenInvalid('The token has to be specified to use a LogglyHandler') ->end() ->validate() - ->ifTrue(function($v) { return 'loggly' === $v['type'] && !empty($v['tags']); }) - ->then(function($v) { + ->ifTrue(function ($v) { return 'loggly' === $v['type'] && !empty($v['tags']); }) + ->then(function ($v) { $invalidTags = preg_grep('/^[a-z0-9][a-z0-9\.\-_]*$/i', $v['tags'], PREG_GREP_INVERT); if (!empty($invalidTags)) { throw new InvalidConfigurationException(sprintf('The following Loggly tags are invalid: %s.', implode(', ', $invalidTags))); @@ -522,9 +600,25 @@ class Configuration implements ConfigurationInterface return $v; }) ->end() + ->validate() + ->ifTrue(function ($v) { return 'logentries' === $v['type'] && empty($v['token']); }) + ->thenInvalid('The token has to be specified to use a LogEntriesHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'flowdock' === $v['type'] && empty($v['token']); }) + ->thenInvalid('The token has to be specified to use a FlowdockHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'flowdock' === $v['type'] && empty($v['from_email']); }) + ->thenInvalid('The from_email has to be specified to use a FlowdockHandler') + ->end() + ->validate() + ->ifTrue(function ($v) { return 'flowdock' === $v['type'] && empty($v['source']); }) + ->thenInvalid('The source has to be specified to use a FlowdockHandler') + ->end() ->end() ->validate() - ->ifTrue(function($v) { return isset($v['debug']); }) + ->ifTrue(function ($v) { return isset($v['debug']); }) ->thenInvalid('The "debug" name cannot be used as it is reserved for the handler of the profiler') ->end() ->example(array( @@ -534,7 +628,6 @@ class Configuration implements ConfigurationInterface 'level' => 'ERROR', 'bubble' => 'false', 'formatter' => 'my_formatter', - 'processors' => array('some_callable') ), 'main' => array( 'type' => 'fingers_crossed', @@ -544,7 +637,7 @@ class Configuration implements ConfigurationInterface ), 'custom' => array( 'type' => 'service', - 'id' => 'my_handler' + 'id' => 'my_handler', ) )) ->end() diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/MonologExtension.php b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/MonologExtension.php index c03d4223e7..6f4bd2f39b 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/MonologExtension.php +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/DependencyInjection/MonologExtension.php @@ -31,6 +31,11 @@ class MonologExtension extends Extension private $swiftMailerHandlers = array(); + private function levelToMonologConst($level) + { + return is_int($level) ? $level : constant('Monolog\Logger::'.strtoupper($level)); + } + /** * Loads the Monolog configuration. * @@ -85,6 +90,7 @@ class MonologExtension extends Extension 'Monolog\\Handler\\AbstractProcessingHandler', 'Monolog\\Handler\\StreamHandler', 'Monolog\\Handler\\FingersCrossedHandler', + 'Monolog\\Handler\\FilterHandler', 'Monolog\\Handler\\TestHandler', 'Monolog\\Logger', 'Symfony\\Bridge\\Monolog\\Logger', @@ -116,7 +122,7 @@ class MonologExtension extends Extension { $handlerId = $this->getHandlerId($name); $definition = new Definition(sprintf('%%monolog.handler.%s.class%%', $handler['type'])); - $handler['level'] = is_int($handler['level']) ? $handler['level'] : constant('Monolog\Logger::'.strtoupper($handler['level'])); + $handler['level'] = $this->levelToMonologConst($handler['level']); switch ($handler['type']) { case 'service': @@ -156,7 +162,22 @@ class MonologExtension extends Extension case 'gelf': if (isset($handler['publisher']['id'])) { $publisherId = $handler['publisher']['id']; - } else { + } elseif (class_exists('Gelf\Transport\UdpTransport')) { + $transport = new Definition("Gelf\Transport\UdpTransport", array( + $handler['publisher']['hostname'], + $handler['publisher']['port'], + $handler['publisher']['chunk_size'], + )); + $transportId = uniqid('monolog.gelf.transport.'); + $transport->setPublic(false); + $container->setDefinition($transportId, $transport); + + $publisher = new Definition("%monolog.gelfphp.publisher.class%", array()); + $publisher->addMethodCall('addTransport', array(new Reference($transportId))); + $publisherId = uniqid('monolog.gelf.publisher.'); + $publisher->setPublic(false); + $container->setDefinition($publisherId, $publisher); + } elseif (class_exists('Gelf\MessagePublisher')) { $publisher = new Definition("%monolog.gelf.publisher.class%", array( $handler['publisher']['hostname'], $handler['publisher']['port'], @@ -166,6 +187,8 @@ class MonologExtension extends Extension $publisherId = uniqid('monolog.gelf.publisher.'); $publisher->setPublic(false); $container->setDefinition($publisherId, $publisher); + } else { + throw new \RuntimeException('The gelf handler requires the graylog2/gelf-php package to be installed'); } $definition->setArguments(array( @@ -181,7 +204,7 @@ class MonologExtension extends Extension } else { $server = 'mongodb://'; - if(isset($handler['mongo']['user'])) { + if (isset($handler['mongo']['user'])) { $server .= $handler['mongo']['user'] . ':' . $handler['mongo']['pass'] . '@'; } @@ -223,7 +246,10 @@ class MonologExtension extends Extension break; case 'fingers_crossed': - $handler['action_level'] = is_int($handler['action_level']) ? $handler['action_level'] : constant('Monolog\Logger::'.strtoupper($handler['action_level'])); + $handler['action_level'] = $this->levelToMonologConst($handler['action_level']); + if (null !== $handler['passthru_level']) { + $handler['passthru_level'] = $this->levelToMonologConst($handler['passthru_level']); + } $nestedHandlerId = $this->getHandlerId($handler['handler']); $this->nestedHandlers[] = $nestedHandlerId; @@ -244,6 +270,26 @@ class MonologExtension extends Extension $handler['buffer_size'], $handler['bubble'], $handler['stop_buffering'], + $handler['passthru_level'] + )); + break; + + case 'filter': + $handler['min_level'] = $this->levelToMonologConst($handler['min_level']); + $handler['max_level'] = $this->levelToMonologConst($handler['max_level']); + foreach (array_keys($handler['accepted_levels']) as $k) { + $handler['accepted_levels'][$k] = $this->levelToMonologConst($handler['accepted_levels'][$k]); + } + + $nestedHandlerId = $this->getHandlerId($handler['handler']); + $this->nestedHandlers[] = $nestedHandlerId; + $minLevelOrList = !empty($handler['accepted_levels']) ? $handler['accepted_levels'] : $handler['min_level']; + + $definition->setArguments(array( + new Reference($nestedHandlerId), + $minLevelOrList, + $handler['max_level'], + $handler['bubble'] )); break; @@ -283,6 +329,16 @@ class MonologExtension extends Extension )); break; + case 'syslogudp': + $definition->setArguments(array( + $handler['host'], + $handler['port'], + $handler['facility'], + $handler['level'], + $handler['bubble'], + )); + break; + case 'swift_mailer': $oldHandler = false; // fallback for older symfony versions that don't have the new SwiftMailerHandler in the bridge @@ -300,13 +356,20 @@ class MonologExtension extends Extension } } else { $message = new Definition('Swift_Message'); - $message->setFactoryService('mailer'); $message->setFactoryMethod('createMessage'); $message->setPublic(false); $message->addMethodCall('setFrom', array($handler['from_email'])); $message->addMethodCall('setTo', array($handler['to_email'])); $message->addMethodCall('setSubject', array($handler['subject'])); + if (isset($handler['mailer'])) { + $mailer = $handler['mailer']; + } else { + $mailer = 'mailer'; + } + $message->setFactoryService($mailer); + + if (isset($handler['content_type'])) { $message->addMethodCall('setContentType', array($handler['content_type'])); } @@ -324,6 +387,9 @@ class MonologExtension extends Extension if (!$oldHandler) { $this->swiftMailerHandlers[] = $handlerId; $definition->addTag('kernel.event_listener', array('event' => 'kernel.terminate', 'method' => 'onKernelTerminate')); + if (method_exists($newHandlerClass, 'onCliTerminate')) { + $definition->addTag('kernel.event_listener', array('event' => 'console.terminate', 'method' => 'onCliTerminate')); + } } break; @@ -402,6 +468,9 @@ class MonologExtension extends Extension case 'raven': $clientId = 'monolog.raven.client.' . sha1($handler['dsn']); + if (null !== $handler['client_id']) { + $clientId = $handler['client_id']; + } if (!$container->hasDefinition($clientId)) { $client = new Definition("Raven_Client", array( $handler['dsn'] @@ -427,7 +496,58 @@ class MonologExtension extends Extension } break; + case 'logentries': + $definition->setArguments(array( + $handler['token'], + $handler['use_ssl'], + $handler['level'], + $handler['bubble'], + )); + break; + + case 'flowdock': + $definition->setArguments(array( + $handler['token'], + $handler['level'], + $handler['bubble'], + )); + + if (empty($handler['formatter'])) { + $formatter = new Definition("Monolog\Formatter\FlowdockFormatter", array( + $handler['source'], + $handler['from_email'], + )); + $formatterId = 'monolog.flowdock.formatter.'.sha1($handler['source'].'|'.$handler['from_email']); + $formatter->setPublic(false); + $container->setDefinition($formatterId, $formatter); + + $definition->addMethodCall('setFormatter', array(new Reference($formatterId))); + } + break; + + case 'rollbar': + if (!empty($handler['id'])) { + $rollbarId = $handler['id']; + } else { + $config = $handler['config'] ?: array(); + $config['access_token'] = $handler['token']; + $rollbar = new Definition("RollbarNotifier", array( + $config, + )); + $rollbarId = 'monolog.rollbar.notifier.'.sha1(json_encode($config)); + $rollbar->setPublic(false); + $container->setDefinition($rollbarId, $rollbar); + } + + $definition->setArguments(array( + new Reference($rollbarId), + $handler['level'], + $handler['bubble'], + )); + break; + // Handlers using the constructor of AbstractHandler without adding their own arguments + case 'browser_console': case 'newrelic': case 'test': case 'null': diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/monolog.xml b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/monolog.xml index bf745ae4b0..65c0e072b7 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/monolog.xml +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/monolog.xml @@ -7,15 +7,20 @@ Symfony\Bridge\Monolog\Logger Gelf\MessagePublisher + Gelf\Publisher Monolog\Handler\StreamHandler Symfony\Bridge\Monolog\Handler\ConsoleHandler Monolog\Handler\GroupHandler Monolog\Handler\BufferHandler Monolog\Handler\RotatingFileHandler Monolog\Handler\SyslogHandler + Monolog\Handler\SyslogUdpHandler Monolog\Handler\NullHandler Monolog\Handler\TestHandler Monolog\Handler\GelfHandler + Monolog\Handler\RollbarHandler + Monolog\Handler\FlowdockHandler + Monolog\Handler\BrowserConsoleHandler Symfony\Bridge\Monolog\Handler\FirePHPHandler Symfony\Bridge\Monolog\Handler\ChromePhpHandler Symfony\Bridge\Monolog\Handler\DebugHandler @@ -30,10 +35,12 @@ Monolog\Handler\AmqpHandler Monolog\Handler\ErrorLogHandler Monolog\Handler\LogglyHandler + Monolog\Handler\LogEntriesHandler Symfony\Bundle\MonologBundle\NotFoundActivationStrategy Monolog\Handler\FingersCrossedHandler Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy + Monolog\Handler\FilterHandler Monolog\Handler\MongoDBHandler MongoClient diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/schema/monolog-1.0.xsd b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/schema/monolog-1.0.xsd index 8ef32494ed..3e339e816d 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/schema/monolog-1.0.xsd +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Resources/config/schema/monolog-1.0.xsd @@ -20,8 +20,10 @@ + + @@ -32,38 +34,55 @@ + + + + + + - + + + + + + + + + + + + diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/FixtureMonologExtensionTest.php b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/FixtureMonologExtensionTest.php index 96c24218fc..c4f50c801c 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/FixtureMonologExtensionTest.php +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/FixtureMonologExtensionTest.php @@ -28,9 +28,10 @@ abstract class FixtureMonologExtensionTest extends DependencyInjectionTest $this->assertTrue($container->hasDefinition('monolog.handler.nested')); $logger = $container->getDefinition('monolog.logger'); - $this->assertCount(2, $logger->getMethodCalls()); - $this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.custom'))); - $this->assertDICDefinitionMethodCallAt(0, $logger, 'pushHandler', array(new Reference('monolog.handler.main'))); + $this->assertCount(3, $logger->getMethodCalls()); + $this->assertDICDefinitionMethodCallAt(2, $logger, 'pushHandler', array(new Reference('monolog.handler.custom'))); + $this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.main'))); + $this->assertDICDefinitionMethodCallAt(0, $logger, 'pushHandler', array(new Reference('monolog.handler.filtered'))); $handler = $container->getDefinition('monolog.handler.custom'); $this->assertDICDefinitionClass($handler, '%monolog.handler.stream.class%'); @@ -38,7 +39,11 @@ abstract class FixtureMonologExtensionTest extends DependencyInjectionTest $handler = $container->getDefinition('monolog.handler.main'); $this->assertDICDefinitionClass($handler, '%monolog.handler.fingers_crossed.class%'); - $this->assertDICConstructorArguments($handler, array(new Reference('monolog.handler.nested'), \Monolog\Logger::ERROR, 0, true, true)); + $this->assertDICConstructorArguments($handler, array(new Reference('monolog.handler.nested'), \Monolog\Logger::ERROR, 0, true, true, \Monolog\Logger::NOTICE)); + + $handler = $container->getDefinition('monolog.handler.filtered'); + $this->assertDICDefinitionClass($handler, '%monolog.handler.filter.class%'); + $this->assertDICConstructorArguments($handler, array(new Reference('monolog.handler.nested2'), array(\Monolog\Logger::WARNING, \Monolog\Logger::ERROR), \Monolog\Logger::EMERGENCY, true)); } public function testLoadWithOverwriting() @@ -61,7 +66,7 @@ abstract class FixtureMonologExtensionTest extends DependencyInjectionTest $handler = $container->getDefinition('monolog.handler.main'); $this->assertDICDefinitionClass($handler, '%monolog.handler.fingers_crossed.class%'); - $this->assertDICConstructorArguments($handler, array(new Reference('monolog.handler.nested'), \Monolog\Logger::ERROR, 0, true, true)); + $this->assertDICConstructorArguments($handler, array(new Reference('monolog.handler.nested'), \Monolog\Logger::ERROR, 0, true, true, null)); } public function testLoadWithNewAtEnd() diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/xml/multiple_handlers.xml b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/xml/multiple_handlers.xml index fe98c55c7c..df9e790cfd 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/xml/multiple_handlers.xml +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/xml/multiple_handlers.xml @@ -8,7 +8,12 @@ - + + + WARNING + ERROR + + diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/yml/multiple_handlers.yml b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/yml/multiple_handlers.yml index 14af13e3b7..653e74ea5f 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/yml/multiple_handlers.yml +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/Fixtures/yml/multiple_handlers.yml @@ -8,6 +8,13 @@ monolog: main: type: fingers_crossed action_level: ERROR + passthru_level: NOTICE handler: nested nested: type: stream + filtered: + type: filter + accepted_levels: [WARNING, ERROR] + handler: nested2 + nested2: + type: stream diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/MonologExtensionTest.php b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/MonologExtensionTest.php index e0d970d160..683e7e37fb 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/MonologExtensionTest.php +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/Tests/DependencyInjection/MonologExtensionTest.php @@ -70,6 +70,17 @@ class MonologExtensionTest extends DependencyInjectionTest $loader->load(array(array('handlers' => array('main' => array('type' => 'fingers_crossed')))), $container); } + /** + * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException + */ + public function testExceptionWhenUsingFilterWithoutHandler() + { + $container = new ContainerBuilder(); + $loader = new MonologExtension(); + + $loader->load(array(array('handlers' => array('main' => array('type' => 'filter')))), $container); + } + /** * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException */ @@ -141,6 +152,36 @@ class MonologExtensionTest extends DependencyInjectionTest $this->assertDICConstructorArguments($handler, array(false, 'user', \Monolog\Logger::DEBUG, true, LOG_CONS)); } + public function testRollbarHandlerCreatesNotifier() + { + $container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'rollbar', 'token' => 'MY_TOKEN'))))); + + $this->assertTrue($container->hasDefinition('monolog.logger')); + $this->assertTrue($container->hasDefinition('monolog.handler.main')); + + $logger = $container->getDefinition('monolog.logger'); + $this->assertDICDefinitionMethodCallAt(0, $logger, 'pushHandler', array(new Reference('monolog.handler.main'))); + + $handler = $container->getDefinition('monolog.handler.main'); + $this->assertDICDefinitionClass($handler, '%monolog.handler.rollbar.class%'); + $this->assertDICConstructorArguments($handler, array(new Reference('monolog.rollbar.notifier.1c8e6a67728dff6a209f828427128dd8b3c2b746'), \Monolog\Logger::DEBUG, true)); + } + + public function testRollbarHandlerReusesNotifier() + { + $container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'rollbar', 'id' => 'my_rollbar_id'))))); + + $this->assertTrue($container->hasDefinition('monolog.logger')); + $this->assertTrue($container->hasDefinition('monolog.handler.main')); + + $logger = $container->getDefinition('monolog.logger'); + $this->assertDICDefinitionMethodCallAt(0, $logger, 'pushHandler', array(new Reference('monolog.handler.main'))); + + $handler = $container->getDefinition('monolog.handler.main'); + $this->assertDICDefinitionClass($handler, '%monolog.handler.rollbar.class%'); + $this->assertDICConstructorArguments($handler, array(new Reference('my_rollbar_id'), \Monolog\Logger::DEBUG, true)); + } + public function testSocketHandler() { try { @@ -181,7 +222,7 @@ class MonologExtensionTest extends DependencyInjectionTest } $container = $this->getContainer(array(array('handlers' => array('raven' => array( - 'type' => 'raven', 'dsn' => $dsn ) + 'type' => 'raven', 'dsn' => $dsn) )))); $this->assertTrue($container->hasDefinition('monolog.logger')); $this->assertTrue($container->hasDefinition('monolog.handler.raven')); @@ -189,8 +230,19 @@ class MonologExtensionTest extends DependencyInjectionTest $logger = $container->getDefinition('monolog.logger'); $this->assertDICDefinitionMethodCallAt(0, $logger, 'pushHandler', array(new Reference('monolog.handler.raven'))); + $this->assertTrue($container->hasDefinition('monolog.raven.client.'.sha1($dsn))); + $handler = $container->getDefinition('monolog.handler.raven'); $this->assertDICDefinitionClass($handler, '%monolog.handler.raven.class%'); + + $container = $this->getContainer(array(array('handlers' => array('raven' => array( + 'type' => 'raven', 'dsn' => $dsn, 'client_id' => 'raven.client') + )))); + + $this->assertTrue($container->hasDefinition('raven.client')); + + $handler = $container->getDefinition('raven.client'); + $this->assertDICDefinitionClass($handler, 'Raven_Client'); } public function testLogglyHandler() diff --git a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/composer.json b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/composer.json index 23ce3fdeca..44242a9439 100644 --- a/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/composer.json +++ b/vendor/symfony/monolog-bundle/Symfony/Bundle/MonologBundle/composer.json @@ -21,7 +21,7 @@ "symfony/dependency-injection": "~2.3", "symfony/config": "~2.3", "symfony/http-kernel": "~2.3", - "monolog/monolog": "~1.6" + "monolog/monolog": "~1.8" }, "require-dev": { "symfony/yaml": "~2.3", @@ -33,7 +33,7 @@ "target-dir": "Symfony/Bundle/MonologBundle", "extra": { "branch-alias": { - "dev-master": "2.5.x-dev" + "dev-master": "2.6.x-dev" } } } diff --git a/vendor/symfony/symfony/.travis.yml b/vendor/symfony/symfony/.travis.yml index 85a1f7a074..e6fddf3362 100644 --- a/vendor/symfony/symfony/.travis.yml +++ b/vendor/symfony/symfony/.travis.yml @@ -6,23 +6,26 @@ php: - 5.4 - 5.5 - 5.6 - - hhvm + - hhvm-nightly matrix: allow_failures: - - php: hhvm + - php: 5.6 + - php: hhvm-nightly services: mongodb before_script: - travis_retry sudo apt-get install parallel - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini; fi;' - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini; fi;' + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;' + - sudo locale-gen fr_FR.UTF-8 && sudo update-locale - COMPOSER_ROOT_VERSION=dev-master composer --prefer-source --dev install + - wget https://phar.phpunit.de/phpunit.phar && rm `which phpunit` && sudo cp phpunit.phar /usr/local/bin/phpunit && sudo chmod +x /usr/local/bin/phpunit script: - - ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo "Running {} tests"; phpunit --exclude-group tty,benchmark {};' || exit 1 + - ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo "Running {} tests"; phpunit --exclude-group tty,benchmark {};' || false - echo "Running tests requiring tty"; phpunit --group tty diff --git a/vendor/symfony/symfony/CHANGELOG-2.3.md b/vendor/symfony/symfony/CHANGELOG-2.3.md index c8b2938fd2..7d1982188b 100644 --- a/vendor/symfony/symfony/CHANGELOG-2.3.md +++ b/vendor/symfony/symfony/CHANGELOG-2.3.md @@ -7,6 +7,40 @@ in 2.3 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.3.0...v2.3.1 +* 2.3.15 (2014-05-22) + + * reverted #10908 + +* 2.3.14 (2014-05-22) + + * bug #10849 [WIP][Finder] Fix wrong implementation on sortable callback comparator (ProPheT777) + * bug #10929 [Process] Add validation on Process input (romainneutron) + * bug #10958 [DomCrawler] Fixed filterXPath() chaining loosing the parent DOM nodes (stof, robbertkl) + * bug #10953 [HttpKernel] fixed file uploads in functional tests without file selected (realmfoo) + * bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque) + * bug #10908 [HttpFoundation] implement session locking for PDO (Tobion) + * bug #10894 [HttpKernel] removed absolute paths from the generated container (fabpot) + * bug #10926 [DomCrawler] Fixed the initial state for options without value attribute (stof) + * bug #10925 [DomCrawler] Fixed the handling of boolean attributes in ChoiceFormField (stof) + * bug #10777 [Form] Automatically add step attribute to HTML5 time widgets to display seconds if needed (tucksaun) + * bug #10909 [PropertyAccess] Fixed plurals for -ves words (csarrazi) + * bug #10899 Explicitly define the encoding. (jakzal) + * bug #10897 [Console] Fix a console test (jakzal) + * bug #10896 [HttpKernel] Fixed cache behavior when TTL has expired and a default "global" TTL is defined (alquerci, fabpot) + * bug #10841 [DomCrawler] Fixed image input case sensitive (geoffrey-brier) + * bug #10714 [Console]Improve formatter for double-width character (denkiryokuhatsuden) + * bug #10872 [Form] Fixed TrimListenerTest as of PHP 5.5 (webmozart) + * bug #10762 [BrowserKit] Allow URLs that don't contain a path when creating a cookie from a string (thewilkybarkid) + * bug #10863 [Security] Add check for supported attributes in AclVoter (artursvonda) + * bug #10833 [TwigBridge][Transchoice] set %count% from the current context. (aitboudad) + * bug #10820 [WebProfilerBundle] Fixed profiler seach/homepage with empty token (tucksaun) + * bug #10815 Fixed issue #5427 (umpirsky) + * bug #10817 [Debug] fix #10313: FlattenException not found (nicolas-grekas) + * bug #10803 [Debug] fix ErrorHandlerTest when context is not an array (nicolas-grekas) + * bug #10801 [Debug] ErrorHandler: remove $GLOBALS from context in PHP5.3 fix #10292 (nicolas-grekas) + * bug #10797 [HttpFoundation] Allow File instance to be passed to BinaryFileResponse (anlutro) + * bug #10643 [TwigBridge] Removed strict check when found variables inside a translation (goetas) + * 2.3.13 (2014-04-27) * bug #10789 [Console] Fixed the rendering of exceptions on HHVM with a terminal width (stof) diff --git a/vendor/symfony/symfony/CHANGELOG-2.4.md b/vendor/symfony/symfony/CHANGELOG-2.4.md index 9c98f4769e..65902a801e 100644 --- a/vendor/symfony/symfony/CHANGELOG-2.4.md +++ b/vendor/symfony/symfony/CHANGELOG-2.4.md @@ -7,6 +7,38 @@ in 2.4 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.4.0...v2.4.1 +* 2.4.5 (2014-05-22) + + * bug #10849 [WIP][Finder] Fix wrong implementation on sortable callback comparator (ProPheT777) + * bug #10929 [Process] Add validation on Process input (romainneutron) + * bug #10958 [DomCrawler] Fixed filterXPath() chaining loosing the parent DOM nodes (stof, robbertkl) + * bug #10953 [HttpKernel] fixed file uploads in functional tests without file selected (realmfoo) + * bug #10947 [PropertyAccess] Fixed getValue() when accessing non-existing indices of ArrayAccess implementations (webmozart) + * bug #10937 [HttpKernel] Fix "absolute path" when we look to the cache directory (BenoitLeveque) + * bug #10894 [HttpKernel] removed absolute paths from the generated container (fabpot) + * bug #10926 [DomCrawler] Fixed the initial state for options without value attribute (stof) + * bug #10925 [DomCrawler] Fixed the handling of boolean attributes in ChoiceFormField (stof) + * bug #10777 [Form] Automatically add step attribute to HTML5 time widgets to display seconds if needed (tucksaun) + * bug #10909 [PropertyAccess] Fixed plurals for -ves words (csarrazi) + * bug #10904 [HttpKernel] Replace sha1 with sha256 in recently added tests (jakzal) + * bug #10899 Explicitly define the encoding. (jakzal) + * bug #10897 [Console] Fix a console test (jakzal) + * bug #10896 [HttpKernel] Fixed cache behavior when TTL has expired and a default "global" TTL is defined (alquerci, fabpot) + * bug #10841 [DomCrawler] Fixed image input case sensitive (geoffrey-brier) + * bug #10714 [Console]Improve formatter for double-width character (denkiryokuhatsuden) + * bug #10872 [Form] Fixed TrimListenerTest as of PHP 5.5 (webmozart) + * bug #10762 [BrowserKit] Allow URLs that don't contain a path when creating a cookie from a string (thewilkybarkid) + * bug #10863 [Security] Add check for supported attributes in AclVoter (artursvonda) + * bug #10833 [TwigBridge][Transchoice] set %count% from the current context. (aitboudad) + * bug #10820 [WebProfilerBundle] Fixed profiler seach/homepage with empty token (tucksaun) + * bug #10815 Fixed issue #5427 (umpirsky) + * bug #10817 [Debug] fix #10313: FlattenException not found (nicolas-grekas) + * bug #10803 [Debug] fix ErrorHandlerTest when context is not an array (nicolas-grekas) + * bug #10801 [Debug] ErrorHandler: remove $GLOBALS from context in PHP5.3 fix #10292 (nicolas-grekas) + * bug #10797 [HttpFoundation] Allow File instance to be passed to BinaryFileResponse (anlutro) + * bug #10643 [TwigBridge] Removed strict check when found variables inside a translation (goetas) + * bug #10605 [ExpressionLanguage] Strict in_array check in Parser.php (parnas) + * 2.4.4 (2014-04-27) * bug #10789 [Console] Fixed the rendering of exceptions on HHVM with a terminal width (stof) diff --git a/vendor/symfony/symfony/CONTRIBUTING.md b/vendor/symfony/symfony/CONTRIBUTING.md index 383bec81f6..4479b927cf 100644 --- a/vendor/symfony/symfony/CONTRIBUTING.md +++ b/vendor/symfony/symfony/CONTRIBUTING.md @@ -1,11 +1,20 @@ Contributing ------------ -Symfony2 is an open source, community-driven project. If you'd like to contribute, -please read the [Contributing Code][1] part of the documentation. If you're submitting -a pull request, please follow the guidelines in the [Submitting a Patch][2] section -and use the [Pull Request Template][3]. +Symfony2 is an open source, community-driven project. + +If you'd like to contribute, please read the following documents: + +* [Contributing Code][1]: The document index related to contributions; + +* [Submitting a Patch][2]: Guidelines for submitting a pull request; + +* [Pull Request Template][3]: Template header to use in your pull request + description; + +* [Backwards Compatibility][4]: Backward compatibility rules. [1]: http://symfony.com/doc/current/contributing/code/index.html [2]: http://symfony.com/doc/current/contributing/code/patches.html#check-list [3]: http://symfony.com/doc/current/contributing/code/patches.html#make-a-pull-request +[4]: http://symfony.com/doc/current/contributing/code/bc.html#working-on-symfony-code diff --git a/vendor/symfony/symfony/CONTRIBUTORS.md b/vendor/symfony/symfony/CONTRIBUTORS.md index d67d7509e1..63dd89eab6 100644 --- a/vendor/symfony/symfony/CONTRIBUTORS.md +++ b/vendor/symfony/symfony/CONTRIBUTORS.md @@ -37,12 +37,12 @@ Symfony2 is the result of the work of many people who made the code better - Francis Besset (francisbesset) - Miha Vrhovnik - Henrik Bjørnskov (henrikbjorn) + - Saša Stamenković (umpirsky) - Konstantin Kudryashov (everzet) - Bilal Amarni (bamarni) - Florin Patan (florinpatan) - - Saša Stamenković (umpirsky) - - Eric Clemmons (ericclemmons) - Wouter De Jong (wouterj) + - Eric Clemmons (ericclemmons) - Deni - Henrik Westphal (snc) - Dariusz Górecki (canni) @@ -61,6 +61,7 @@ Symfony2 is the result of the work of many people who made the code better - Antoine Hérault (herzult) - Toni Uebernickel (havvg) - Arnaud Le Blanc (arnaud-lb) + - Nicolas Grekas (nicolas-grekas) - Brice BERNARD (brikou) - Luis Cordova (cordoval) - Tim Nagel (merk) @@ -80,11 +81,11 @@ Symfony2 is the result of the work of many people who made the code better - Juti Noppornpitak (shiroyuki) - Sebastian Hörl (blogsh) - Hidenori Goto (hidenorigoto) + - Ait Boudad Abdellatif (aitboudad) - Daniel Gomes (danielcsgomes) - Peter Kokot (maastermedia) - Jérémie Augustin (jaugustin) - David Buchmann (dbu) - - Ait Boudad Abdellatif (aitboudad) - Jérôme Tamarelle (gromnan) - Tigran Azatyan (tigranazatyan) - Javier Eguiluz (javier.eguiluz) @@ -99,7 +100,6 @@ Symfony2 is the result of the work of many people who made the code better - Jonathan Ingram (jonathaningram) - Artur Kotyrba - Guilherme Blanco (guilhermeblanco) - - Nicolas Grekas (nicolas-grekas) - Pablo Godel (pgodel) - Eric GELOEN (gelo) - Dmitrii Chekaliuk (lazyhammer) @@ -114,6 +114,7 @@ Symfony2 is the result of the work of many people who made the code better - Benjamin Dulau (dbenjamin) - Andreas Hucks (meandmymonkey) - Noel Guilbert (noel) + - Charles Sarrazin (csarrazi) - bronze1man - Larry Garfield (crell) - Martin Schuhfuß (usefulthink) @@ -132,7 +133,9 @@ Symfony2 is the result of the work of many people who made the code better - Andréia Bohner (andreia) - Joel Wurtz (brouznouf) - Rui Marinho (ruimarinho) + - sun (sun) - Julien Brochet (mewt) + - Tugdual Saunier (tucksaun) - Sergey Linnik (linniksa) - Marcel Beerta (mazen) - Francois Zaninotto @@ -152,7 +155,6 @@ Symfony2 is the result of the work of many people who made the code better - Félix Labrecque (woodspire) - Christian Flothmann (xabbuh) - GordonsLondon - - sun (sun) - Jan Sorgalla (jsor) - Ray - Chekote @@ -175,6 +177,7 @@ Symfony2 is the result of the work of many people who made the code better - Lars Strojny (lstrojny) - Bertrand Zuchuat (garfield-fr) - Gabor Toth (tgabi333) + - realmfoo - Thomas Tourlourat (armetiz) - Andrey Esaulov (andremaha) - Grégoire Passault (gregwar) @@ -193,6 +196,7 @@ Symfony2 is the result of the work of many people who made the code better - Ricard Clau (ricardclau) - Erin Millard - Matthew Lewinski (lewinski) + - alquerci - Francesco Levorato - Vitaliy Zakharov (zakharovvi) - Gyula Sallai (salla) @@ -205,6 +209,7 @@ Symfony2 is the result of the work of many people who made the code better - Sébastien Lavoie (lavoiesl) - Terje Bråten - Kristen Gilden (kgilden) + - Robbert Klarenbeek (robbertkl) - hossein zolfi (ocean) - Eduardo Gulias (egulias) - giulio de donato (liuggio) @@ -217,7 +222,6 @@ Symfony2 is the result of the work of many people who made the code better - Costin Bereveanu (schniper) - Loïc Chardonnet (gnusat) - Marek Kalnik (marekkalnik) - - realmfoo - Tamas Szijarto - Pavel Volokitin (pvolok) - Tobias Naumann (tna) @@ -252,7 +256,6 @@ Symfony2 is the result of the work of many people who made the code better - Olivier Dolbeau (odolbeau) - Roumen Damianoff (roumen) - Tobias Sjösten (tobiassjosten) - - alquerci - vagrant - Asier Illarramendi (doup) - Kévin Dunglas (dunglas) @@ -260,12 +263,10 @@ Symfony2 is the result of the work of many people who made the code better - Vitaliy Tverdokhlib (vitaliytv) - Dirk Pahl (dirkaholic) - cedric lombardot (cedriclombardot) - - Charles Sarrazin (csarrazi) - Jonas Flodén (flojon) - Marcin Sikoń (marphi) - franek (franek) - Adam Harvey - - Robbert Klarenbeek (robbertkl) - François-Xavier de Guillebon (de-gui_f) - boombatower - Fabrice Bernhard (fabriceb) @@ -294,6 +295,7 @@ Symfony2 is the result of the work of many people who made the code better - Erik Trapman (eriktrapman) - De Cock Xavier (xdecock) - Alex Pott + - Issei Murasawa (issei_m) - Norbert Orzechowicz (norzechowicz) - Matthijs van den Bos (matthijs) - Nils Adermann (naderman) @@ -312,6 +314,7 @@ Symfony2 is the result of the work of many people who made the code better - Ned Schwartz - Ziumin - Lenar Lõhmus + - julien pauli (jpauli) - Zach Badgett (zachbadgett) - Aurélien Fredouelle - Karoly Negyesi (chx) @@ -343,6 +346,7 @@ Symfony2 is the result of the work of many people who made the code better - Kamil Kokot (pamil) - Florian Lonqueu-Brochard (florianlb) - Rostyslav Kinash + - Daisuke Ohata - Vincent Simonin - Christian Schmidt - Stefan Warman @@ -392,10 +396,12 @@ Symfony2 is the result of the work of many people who made the code better - Josiah (josiah) - John Bohn (jbohn) - Jakub Škvára (jskvara) + - Chris Wilkinson (thewilkybarkid) - Andrew Hilobok (hilobok) - Christian Soronellas (theunic) - Jérôme Vieilledent (lolautruche) - Degory Valentine + - Benoit Lévêque (benoit_leveque) - hacfi (hifi) - Krzysiek Łabuś - Xavier Lacot (xavier) @@ -405,7 +411,6 @@ Symfony2 is the result of the work of many people who made the code better - Jayson Xu (superjavason) - Jaik Dean (jaikdean) - Jan Prieser - - Issei Murasawa (issei_m) - James Michael DuPont - Tom Klingenberg - Christopher Hall (mythmakr) @@ -419,8 +424,8 @@ Symfony2 is the result of the work of many people who made the code better - Abhoryo - Fabian Vogler (fabian) - Maksim Kotlyar (makasim) - - Tugdual Saunier (tucksaun) - Neil Ferreira + - Dmitry Parnas (parnas) - Tony Malzhacker - Cyril Quintin (cyqui) - Gerard van Helden (drm) @@ -429,7 +434,6 @@ Symfony2 is the result of the work of many people who made the code better - Aleksey Podskrebyshev - David Marín Carreño (davefx) - Jörn Lang (j.lang) - - julien pauli (jpauli) - mwsaz - Benoît Bourgeois - corphi @@ -537,6 +541,7 @@ Symfony2 is the result of the work of many people who made the code better - Vincent AUBERT (vincent) - Benoit Garret - DerManoMann + - Asmir Mustafic (goetas) - Marcin Chwedziak - Roland Franssen (ro0) - Maciej Malarz @@ -581,6 +586,7 @@ Symfony2 is the result of the work of many people who made the code better - Jeroen van den Enden (stoefke) - Quique Porta (quiqueporta) - Tomasz Szymczyk (karion) + - Arturs Vonda - ConneXNL - Aharon Perkel - Abdul.Mohsen B. A. A @@ -588,8 +594,10 @@ Symfony2 is the result of the work of many people who made the code better - Cédric Girard (enk_) - Oriol Mangas Abellan (oriolman) - Sebastian Göttschkes (sgoettschkes) + - Ross Tuck - Kévin Gomez (kevin) - Ludek Stepan + - Geoffrey Brier - Aaron Stephens (astephens) - Balázs Benyó (duplabe) - Erika Heidi Reinaldo (erikaheidi) @@ -612,7 +620,6 @@ Symfony2 is the result of the work of many people who made the code better - Sergey Kolodyazhnyy - George Giannoulopoulos - Daniel Richter (richtermeister) - - Chris Wilkinson (thewilkybarkid) - ChrisC - Ilya Biryukov - Jason Desrosiers @@ -638,6 +645,7 @@ Symfony2 is the result of the work of many people who made the code better - Nathaniel Catchpole - Adrien Samson (adriensamson) - Samuel Gordalina (gordalina) + - Max Romanovsky (maxromanovsky) - Timothy Anido (xanido) - Sebastian Krebs - Rick Prent @@ -670,7 +678,6 @@ Symfony2 is the result of the work of many people who made the code better - Jonathan Gough - Benjamin Bender - Konrad Mohrfeldt - - Benoit Lévêque (benoit_leveque) - kor3k kor3k (kor3k) - Stelian Mocanita (stelian) - Flavian (2much) @@ -800,6 +807,7 @@ Symfony2 is the result of the work of many people who made the code better - Grzegorz Łukaszewicz (newicz) - Robert Campbell - Matt Lehner + - Ruben Kruiswijk - Alex Pods - timaschew - Ian Phillips @@ -870,6 +878,7 @@ Symfony2 is the result of the work of many people who made the code better - Brian Debuire - Sylvain Lorinet - klyk50 + - Andreas Lutro - jc - BenjaminBeck - Aurelijus Rožėnas @@ -892,6 +901,7 @@ Symfony2 is the result of the work of many people who made the code better - andreabreu98 - Thomas Schulz - Michael Schneider + - n-aleha - Kaipi Yann - Sam Williams - James Michael DuPont @@ -912,7 +922,6 @@ Symfony2 is the result of the work of many people who made the code better - Abdulkadir N. A. - Sema - Thorsten Hallwas - - Daisuke Ohata - Michael Squires - Matt Janssen - Peter Gribanov @@ -944,6 +953,7 @@ Symfony2 is the result of the work of many people who made the code better - Bill Hance (billhance) - Bernd Matzner (bmatzner) - Chris Sedlmayr (catchamonkey) + - Choong Wei Tjeng (choonge) - Kousuke Ebihara (co3k) - Loïc Vernet (coil) - Christoph Schaefer (cvschaefer) @@ -957,6 +967,7 @@ Symfony2 is the result of the work of many people who made the code better - Yohan Giarelli (frequence-web) - Massimiliano Arione (garak) - Ghazy Ben Ahmed (ghazy) + - Arash Tabriziyan (ghost098) - ibasaw (ibasaw) - Vladislav Krupenkin (ideea) - joris de wit (jdewit) @@ -985,6 +996,7 @@ Symfony2 is the result of the work of many people who made the code better - André Filipe Gonçalves Neves (seven) - Andrea Giuliano (shark) - Julien Sanchez (sumbobyboys) + - Guillermo Gisinger (t3chn0r) - Markus Tacker (tacker) - Tyler Stroud (tystr) - Víctor Mateo (victormateo) diff --git a/vendor/symfony/symfony/UPGRADE-2.2.md b/vendor/symfony/symfony/UPGRADE-2.2.md index 993426472f..24d8b0f86b 100644 --- a/vendor/symfony/symfony/UPGRADE-2.2.md +++ b/vendor/symfony/symfony/UPGRADE-2.2.md @@ -646,3 +646,23 @@ extended with an optional `$context` array. This was necessary to allow for more complex use-cases that require context information during the (de)normalization and en-/decoding steps. + +### HttpKernel + + * The `Symfony\Component\HttpKernel\Log\LoggerInterface` now extends `Psr\Log\LoggerInterface`. + So if you have implemented your own logger, you need to implement these methods: + + * `emergency` + * `critical` + * `error` + * `warning` + * `log` + +#### Deprecations: + + * The following Logger methods are deprecated and will be removed in 3.0. You should use the new PSR-3 methods: + + * `emerg()` -> `emergency()` + * `crit()` -> `critical()` + * `err()` -> `error()` + * `warn()` -> `warning()` diff --git a/vendor/symfony/symfony/UPGRADE-3.0.md b/vendor/symfony/symfony/UPGRADE-3.0.md index 4e41a20491..70f56da36f 100644 --- a/vendor/symfony/symfony/UPGRADE-3.0.md +++ b/vendor/symfony/symfony/UPGRADE-3.0.md @@ -18,6 +18,79 @@ UPGRADE FROM 2.x to 3.0 `DebugClassLoader`. The difference is that the constructor now takes a loader to wrap. +### Console + + * The `dialog` helper has been removed in favor of the `question` helper. + + * The methods `isQuiet`, `isVerbose`, `isVeryVerbose` and `isDebug` were added + to `Symfony\Component\Console\Output\OutputInterface`. + + * `ProgressHelper` has been removed in favor of `ProgressBar`. + + Before: + + ``` + $h = new ProgressHelper(); + $h->start($output, 10); + for ($i = 1; $i < 5; $i++) { + usleep(200000); + $h->advance(); + } + $h->finish(); + ``` + + After: + + ``` + $bar = new ProgressBar($output, 10); + $bar->start(); + for ($i = 1; $i < 5; $i++) { + usleep(200000); + $bar->advance(); + } + ``` + + * `TableHelper` has been removed in favor of `Table`. + + Before: + + ``` + $table = $app->getHelperSet()->get('table'); + $table + ->setHeaders(array('ISBN', 'Title', 'Author')) + ->setRows(array( + array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'), + array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'), + array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'), + array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'), + )) + ; + $table->render($output); + ``` + + After: + + ``` + use Symfony\Component\Console\Helper\Table; + + $table = new Table($output); + $table + ->setHeaders(array('ISBN', 'Title', 'Author')) + ->setRows(array( + array('99921-58-10-7', 'Divine Comedy', 'Dante Alighieri'), + array('9971-5-0210-0', 'A Tale of Two Cities', 'Charles Dickens'), + array('960-425-059-0', 'The Lord of the Rings', 'J. R. R. Tolkien'), + array('80-902734-1-6', 'And Then There Were None', 'Agatha Christie'), + )) + ; + $table->render(); + ``` + +### EventDispatcher + + * The interface `Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface` + extends `Symfony\Component\EventDispatcher\EventDispatcherInterface`. + ### Form * The methods `Form::bind()` and `Form::isBound()` were removed. You should @@ -175,6 +248,22 @@ UPGRADE FROM 2.x to 3.0 * The options "csrf_provider" and "intention" were renamed to "csrf_token_generator" and "csrf_token_id". + * The method `Form::getErrorsAsString()` was removed. Use `Form::getErrors()` + instead with the argument `$deep` set to true and `$flatten` set to false + and cast the returned iterator to a string (if not done implicitly by PHP). + + Before: + + ``` + echo $form->getErrorsAsString(); + ``` + + After: + + ``` + echo $form->getErrors(true, false); + ``` + ### FrameworkBundle @@ -213,6 +302,9 @@ UPGRADE FROM 2.x to 3.0 } ``` + * The `request` service was removed. You must inject the `request_stack` + service instead. + * The `enctype` method of the `form` helper was removed. You should use the new method `start` instead. @@ -263,6 +355,8 @@ UPGRADE FROM 2.x to 3.0 end($form) ?> ``` + * The `RouterApacheDumperCommand` was removed. + ### HttpKernel * The `Symfony\Component\HttpKernel\Log\LoggerInterface` has been removed in @@ -292,6 +386,9 @@ UPGRADE FROM 2.x to 3.0 * The `Symfony\Component\HttpKernel\EventListener\ExceptionListener` now passes the Request format as the `_format` argument instead of `format`. + * The `Symfony\Component\HttpKernel\DependencyInjection\RegisterListenersPass` has been renamed to + `Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass` and moved to the EventDispatcher component. + ### Locale * The Locale component was removed and replaced by the Intl component. @@ -370,6 +467,10 @@ UPGRADE FROM 2.x to 3.0 $route->setSchemes('https'); ``` + * The `ApacheMatcherDumper` and `ApacheUrlMatcher` were removed since + the performance gains were minimal and it's hard to replicate the behaviour + of PHP implementation. + ### Security * The `Resources/` directory was moved to `Core/Resources/` @@ -435,6 +536,29 @@ UPGRADE FROM 2.x to 3.0 ### Validator + * The class `Symfony\Component\Validator\Mapping\Cache\ApcCache` has been removed in favor + of `Symfony\Component\Validator\Mapping\Cache\DoctrineCache`. + + Before: + + ``` + use Symfony\Component\Validator\Mapping\Cache\ApcCache; + + $cache = new ApcCache('symfony.validator'); + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\Cache\DoctrineCache; + use Doctrine\Common\Cache\ApcCache; + + $apcCache = new ApcCache(); + $apcCache->setNamespace('symfony.validator'); + + $cache = new DoctrineCache($apcCache); + ``` + * The constraints `Optional` and `Required` were moved to the `Symfony\Component\Validator\Constraints\` namespace. You should adapt the path wherever you used them. @@ -525,6 +649,309 @@ UPGRADE FROM 2.x to 3.0 } ``` + * The interface `ValidatorInterface` was replaced by the more powerful + interface `Validator\ValidatorInterface`. The signature of the `validate()` + method is slightly different in that interface and accepts a value, zero + or more constraints and validation group. It replaces both + `validate()` and `validateValue()` in the previous interface. + + Before: + + ``` + $validator->validate($object, 'Strict'); + + $validator->validateValue($value, new NotNull()); + ``` + + After: + + ``` + $validator->validate($object, null, 'Strict'); + + $validator->validate($value, new NotNull()); + ``` + + Apart from this change, the new methods `startContext()` and `inContext()` + were added. The first of them allows to run multiple validations in the + same context and aggregate their violations: + + ``` + $violations = $validator->startContext() + ->atPath('firstName')->validate($firstName, new NotNull()) + ->atPath('age')->validate($age, new Type('integer')) + ->getViolations(); + ``` + + The second allows to run validation in an existing context. This is + especially useful when calling the validator from within constraint + validators: + + ``` + $validator->inContext($context)->validate($object); + ``` + + Instead of a `Validator`, the validator builder now returns a + `Validator\RecursiveValidator` instead. + + * The interface `ValidationVisitorInterface` and its implementation + `ValidationVisitor` were removed. The implementation of the visitor pattern + was flawed. Fixing that implementation would have drastically slowed down + the validator execution, so the visitor was removed completely instead. + + Along with the visitor, the method `accept()` was removed from + `MetadataInterface`. + + * The interface `MetadataInterface` was moved to the `Mapping` namespace. + + Before: + + ``` + use Symfony\Component\Validator\MetadataInterface; + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\MetadataInterface; + ``` + + The methods `getCascadingStrategy()` and `getTraversalStrategy()` were + added to the interface. The first method should return a bit mask of the + constants in class `CascadingStrategy`. The second should return a bit + mask of the constants in `TraversalStrategy`. + + Example: + + ``` + use Symfony\Component\Validator\Mapping\TraversalStrategy; + + public function getTraversalStrategy() + { + return TraversalStrategy::TRAVERSE; + } + ``` + + * The interface `PropertyMetadataInterface` was moved to the `Mapping` + namespace. + + Before: + + ``` + use Symfony\Component\Validator\PropertyMetadataInterface; + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\PropertyMetadataInterface; + ``` + + * The interface `PropertyMetadataContainerInterface` was moved to the `Mapping` + namespace and renamed to `ClassMetadataInterface`. + + Before: + + ``` + use Symfony\Component\Validator\PropertyMetadataContainerInterface; + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\ClassMetadataInterface; + ``` + + The interface now contains four additional methods: + + * `getConstrainedProperties()` + * `hasGroupSequence()` + * `getGroupSequence()` + * `isGroupSequenceProvider()` + + See the inline documentation of these methods for more information. + + * The interface `ClassBasedInterface` was removed. You should use + `Mapping\ClassMetadataInterface` instead: + + Before: + + ``` + use Symfony\Component\Validator\ClassBasedInterface; + + class MyClassMetadata implements ClassBasedInterface + { + // ... + } + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\ClassMetadataInterface; + + class MyClassMetadata implements ClassMetadataInterface + { + // ... + } + ``` + + * The class `ElementMetadata` was renamed to `GenericMetadata`. + + Before: + + ``` + use Symfony\Component\Validator\Mapping\ElementMetadata; + + class MyMetadata extends ElementMetadata + { + } + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\GenericMetadata; + + class MyMetadata extends GenericMetadata + { + } + ``` + + * The interface `ExecutionContextInterface` and its implementation + `ExecutionContext` were moved to the `Context` namespace. + + Before: + + ``` + use Symfony\Component\Validator\ExecutionContextInterface; + ``` + + After: + + ``` + use Symfony\Component\Validator\Context\ExecutionContextInterface; + ``` + + The interface now contains the following additional methods: + + * `getValidator()` + * `getObject()` + * `setNode()` + * `setGroup()` + * `markGroupAsValidated()` + * `isGroupValidated()` + * `markConstraintAsValidated()` + * `isConstraintValidated()` + + See the inline documentation of these methods for more information. + + The method `addViolationAt()` was removed. You should use `buildViolation()` + instead. + + Before: + + ``` + $context->addViolationAt('property', 'The value {{ value }} is invalid.', array( + '{{ value }}' => $invalidValue, + )); + ``` + + After: + + ``` + $context->buildViolation('The value {{ value }} is invalid.') + ->atPath('property') + ->setParameter('{{ value }}', $invalidValue) + ->addViolation(); + )); + ``` + + The methods `validate()` and `validateValue()` were removed. You should use + `getValidator()` together with `inContext()` instead. + + Before: + + ``` + $context->validate($object); + ``` + + After: + + ``` + $context->getValidator() + ->inContext($context) + ->validate($object); + ``` + + The parameters `$invalidValue`, `$plural` and `$code` were removed from + `addViolation()`. You should use `buildViolation()` instead. See above for + an example. + + The method `getMetadataFactory()` was removed. You can use `getValidator()` + instead and use the methods `getMetadataFor()` or `hasMetadataFor()` on the + validator instance. + + Before: + + ``` + $metadata = $context->getMetadataFactory()->getMetadataFor($myClass); + ``` + + After: + + ``` + $metadata = $context->getValidator()->getMetadataFor($myClass); + ``` + + * The interface `GlobalExecutionContextInterface` was removed. Most of the + information provided by that interface can be queried from + `Context\ExecutionContextInterface` instead. + + * The interface `MetadataFactoryInterface` was moved to the `Mapping\Factory` + namespace along with its implementations `BlackholeMetadataFactory` and + `ClassMetadataFactory`. These classes were furthermore renamed to + `BlackHoleMetadataFactory` and `LazyLoadingMetadataFactory`. + + Before: + + ``` + use Symfony\Component\Validator\Mapping\ClassMetadataFactory; + + $factory = new ClassMetadataFactory($loader); + ``` + + After: + + ``` + use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory; + + $factory = new LazyLoadingMetadataFactory($loader); + ``` + + * The option `$deep` was removed from the constraint `Valid`. When traversing + arrays, nested arrays are always traversed (same behavior as before). When + traversing nested objects, their traversal strategy is used. + + * The method `ValidatorBuilder::setPropertyAccessor()` was removed. The + validator now functions without a property accessor. + + * The methods `getMessageParameters()` and `getMessagePluralization()` in + `ConstraintViolation` were renamed to `getParameters()` and `getPlural()`. + + Before: + + ``` + $parameters = $violation->getMessageParameters(); + $plural = $violation->getMessagePluralization(); + ``` + + After: + + ``` + $parameters = $violation->getParameters(); + $plural = $violation->getPlural(); + ``` + ### Yaml * The ability to pass file names to `Yaml::parse()` has been removed. @@ -539,4 +966,9 @@ UPGRADE FROM 2.x to 3.0 ``` Yaml::parse(file_get_contents($fileName)); - ``` + +### Process + + * Process::setStdin() and Process::getStdin() have been removed. Use + Process::setInput() and Process::getInput() that works the same way. + * Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types. diff --git a/vendor/symfony/symfony/composer.json b/vendor/symfony/symfony/composer.json index f3d7223fa3..7efd53bdff 100644 --- a/vendor/symfony/symfony/composer.json +++ b/vendor/symfony/symfony/composer.json @@ -73,7 +73,8 @@ "monolog/monolog": "~1.3", "propel/propel1": "1.6.*", "ircmaxell/password-compat": "1.0.*", - "ocramius/proxy-manager": ">=0.3.1,<0.6-dev" + "ocramius/proxy-manager": ">=0.3.1,<0.6-dev", + "egulias/email-validator": "1.1.0" }, "autoload": { "psr-0": { "Symfony\\": "src/" }, @@ -86,7 +87,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php index bcc4a2b5a4..458497bc9d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/AbstractDoctrineExtension.php @@ -304,14 +304,30 @@ abstract class AbstractDoctrineExtension extends Extension */ protected function loadObjectManagerCacheDriver(array $objectManager, ContainerBuilder $container, $cacheName) { - $cacheDriver = $objectManager[$cacheName.'_driver']; - $cacheDriverService = $this->getObjectManagerElementName($objectManager['name'].'_'.$cacheName); + $this->loadCacheDriver($cacheName, $objectManager['name'], $objectManager[$cacheName.'_driver'], $container); + } + + /** + * Loads a cache driver. + * + * @param string $cacheDriverServiceId The cache driver name. + * @param string $objectManagerName The object manager name. + * @param array $cacheDriver The cache driver mapping. + * @param \Symfony\Component\DependencyInjection\ContainerBuilder $container The ContainerBuilder instance. + * + * @return string + * + * @throws \InvalidArgumentException + */ + protected function loadCacheDriver($cacheName, $objectManagerName, array $cacheDriver, ContainerBuilder $container) + { + $cacheDriverServiceId = $this->getObjectManagerElementName($objectManagerName . '_' . $cacheName); switch ($cacheDriver['type']) { case 'service': - $container->setAlias($cacheDriverService, new Alias($cacheDriver['id'], false)); + $container->setAlias($cacheDriverServiceId, new Alias($cacheDriver['id'], false)); - return; + return $cacheDriverServiceId; case 'memcache': $memcacheClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.memcache.class').'%'; $memcacheInstanceClass = !empty($cacheDriver['instance_class']) ? $cacheDriver['instance_class'] : '%'.$this->getObjectManagerElementName('cache.memcache_instance.class').'%'; @@ -322,8 +338,8 @@ abstract class AbstractDoctrineExtension extends Extension $memcacheInstance->addMethodCall('connect', array( $memcacheHost, $memcachePort )); - $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcache_instance', $objectManager['name'])), $memcacheInstance); - $cacheDef->addMethodCall('setMemcache', array(new Reference($this->getObjectManagerElementName(sprintf('%s_memcache_instance', $objectManager['name']))))); + $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcache_instance', $objectManagerName)), $memcacheInstance); + $cacheDef->addMethodCall('setMemcache', array(new Reference($this->getObjectManagerElementName(sprintf('%s_memcache_instance', $objectManagerName))))); break; case 'memcached': $memcachedClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.memcached.class').'%'; @@ -335,8 +351,8 @@ abstract class AbstractDoctrineExtension extends Extension $memcachedInstance->addMethodCall('addServer', array( $memcachedHost, $memcachedPort )); - $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManager['name'])), $memcachedInstance); - $cacheDef->addMethodCall('setMemcached', array(new Reference($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManager['name']))))); + $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName)), $memcachedInstance); + $cacheDef->addMethodCall('setMemcached', array(new Reference($this->getObjectManagerElementName(sprintf('%s_memcached_instance', $objectManagerName))))); break; case 'redis': $redisClass = !empty($cacheDriver['class']) ? $cacheDriver['class'] : '%'.$this->getObjectManagerElementName('cache.redis.class').'%'; @@ -348,8 +364,8 @@ abstract class AbstractDoctrineExtension extends Extension $redisInstance->addMethodCall('connect', array( $redisHost, $redisPort )); - $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManager['name'])), $redisInstance); - $cacheDef->addMethodCall('setRedis', array(new Reference($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManager['name']))))); + $container->setDefinition($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName)), $redisInstance); + $cacheDef->addMethodCall('setRedis', array(new Reference($this->getObjectManagerElementName(sprintf('%s_redis_instance', $objectManagerName))))); break; case 'apc': case 'array': @@ -366,12 +382,18 @@ abstract class AbstractDoctrineExtension extends Extension if (!isset($cacheDriver['namespace'])) { // generate a unique namespace for the given application - $cacheDriver['namespace'] = 'sf2'.$this->getMappingResourceExtension().'_'.$objectManager['name'].'_'.hash('sha256',($container->getParameter('kernel.root_dir').$container->getParameter('kernel.environment'))); + $env = $container->getParameter('kernel.root_dir').$container->getParameter('kernel.environment'); + $hash = hash('sha256', $env); + $namespace = 'sf2'.$this->getMappingResourceExtension().'_'.$objectManagerName.'_'.$hash; + + $cacheDriver['namespace'] = $namespace; } $cacheDef->addMethodCall('setNamespace', array($cacheDriver['namespace'])); - $container->setDefinition($cacheDriverService, $cacheDef); + $container->setDefinition($cacheDriverServiceId, $cacheDef); + + return $cacheDriverServiceId; } /** diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php index 308d883b2e..54e667972d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php @@ -46,6 +46,10 @@ class UniqueEntityValidator extends ConstraintValidator */ public function validate($entity, Constraint $constraint) { + if (!$constraint instanceof UniqueEntity) { + throw new UnexpectedTypeException($constraint, __NAMESPACE__.'\UniqueEntity'); + } + if (!is_array($constraint->fields) && !is_string($constraint->fields)) { throw new UnexpectedTypeException($constraint->fields, 'array'); } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/composer.json index 55dc2ed5cb..383df1ed37 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/composer.json @@ -45,7 +45,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/Handler/SwiftMailerHandler.php b/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/Handler/SwiftMailerHandler.php index 29134115f3..37e641c578 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/Handler/SwiftMailerHandler.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/Handler/SwiftMailerHandler.php @@ -12,6 +12,7 @@ namespace Symfony\Bridge\Monolog\Handler; use Monolog\Handler\SwiftMailerHandler as BaseSwiftMailerHandler; +use Symfony\Component\Console\Event\ConsoleTerminateEvent; use Symfony\Component\HttpKernel\Event\PostResponseEvent; /** @@ -43,6 +44,16 @@ class SwiftMailerHandler extends BaseSwiftMailerHandler $this->instantFlush = true; } + /** + * After the CLI application has been terminated we will always flush messages + * + * @param ConsoleTerminateEvent $event + */ + public function onCliTerminate(ConsoleTerminateEvent $event) + { + $this->instantFlush = true; + } + /** * {@inheritdoc} */ diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/composer.json index c4004abf37..067f1c70d7 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Monolog/composer.json @@ -36,7 +36,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php index 584e03968a..7e6f10fe05 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php @@ -71,17 +71,21 @@ class ModelChoiceList extends ObjectChoiceList * * @see \Symfony\Bridge\Propel1\Form\Type\ModelType How to use the preferred choices. * - * @param string $class The FQCN of the model class to be loaded. - * @param string $labelPath A property path pointing to the property used for the choice labels. - * @param array $choices An optional array to use, rather than fetching the models. - * @param ModelCriteria $queryObject The query to use retrieving model data from database. - * @param string $groupPath A property path pointing to the property used to group the choices. - * @param array|ModelCriteria $preferred The preferred items of this choice. + * @param string $class The FQCN of the model class to be loaded. + * @param string $labelPath A property path pointing to the property used for the choice labels. + * @param array $choices An optional array to use, rather than fetching the models. + * @param ModelCriteria $queryObject The query to use retrieving model data from database. + * @param string $groupPath A property path pointing to the property used to group the choices. + * @param array|ModelCriteria $preferred The preferred items of this choice. * Either an array if $choices is given, * or a ModelCriteria to be merged with the $queryObject. * @param PropertyAccessorInterface $propertyAccessor The reflection graph for reading property paths. + * @param string $useAsIdentifier a custom unique column (eg slug) to use instead of primary key. + * + * @throws MissingOptionsException In case the class parameter is empty. + * @throws InvalidOptionsException In case the query class is not found. */ - public function __construct($class, $labelPath = null, $choices = null, $queryObject = null, $groupPath = null, $preferred = array(), PropertyAccessorInterface $propertyAccessor = null) + public function __construct($class, $labelPath = null, $choices = null, $queryObject = null, $groupPath = null, $preferred = array(), PropertyAccessorInterface $propertyAccessor = null, $useAsIdentifier = null) { $this->class = $class; @@ -96,7 +100,12 @@ class ModelChoiceList extends ObjectChoiceList $query = new $queryClass(); $this->query = $queryObject ?: $query; - $this->identifier = $this->query->getTableMap()->getPrimaryKeys(); + if ($useAsIdentifier) { + $this->identifier = array( $this->query->getTableMap()->getColumn($useAsIdentifier) ); + } else { + $this->identifier = $this->query->getTableMap()->getPrimaryKeys(); + } + $this->loaded = is_array($choices) || $choices instanceof \Traversable; if ($preferred instanceof ModelCriteria) { @@ -437,6 +446,14 @@ class ModelChoiceList extends ObjectChoiceList return array(); } + if (1 === count($this->identifier) && current($this->identifier) instanceof \ColumnMap) { + $phpName = current($this->identifier)->getPhpName(); + + if (method_exists($model, 'get'.$phpName)) { + return array($model->{'get'.$phpName}()); + } + } + if ($model instanceof Persistent) { return array($model->getPrimaryKey()); } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/Type/ModelType.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/Type/ModelType.php index 02090d3638..7e4b2ec3a9 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/Type/ModelType.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Form/Type/ModelType.php @@ -79,7 +79,8 @@ class ModelType extends AbstractType $options['query'], $options['group_by'], $options['preferred_choices'], - $propertyAccessor + $propertyAccessor, + $options['index_property'] ); }; @@ -94,6 +95,7 @@ class ModelType extends AbstractType 'choice_list' => $choiceList, 'group_by' => null, 'by_reference' => false, + 'index_property' => null, )); } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Column.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Column.php index 6b03977e20..24a0ae0e15 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Column.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Column.php @@ -11,16 +11,17 @@ namespace Symfony\Bridge\Propel1\Tests\Fixtures; -class Column +class Column extends \ColumnMap { private $name; - private $type; + protected $type; public function __construct($name, $type) { $this->name = $name; $this->type = $type; + $this->phpName = ucfirst($name); } public function getType() diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Item.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Item.php index 70705b6c86..fdc4024ad9 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Item.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/Item.php @@ -23,12 +23,15 @@ class Item implements \Persistent private $price; - public function __construct($id = null, $value = null, $groupName = null, $price = null) + private $slug; + + public function __construct($id = null, $value = null, $groupName = null, $price = null, $slug = null) { $this->id = $id; $this->value = $value; $this->groupName = $groupName; $this->price = $price; + $this->slug = $slug; } public function getId() @@ -56,6 +59,11 @@ class Item implements \Persistent return $this->price; } + public function getSlug() + { + return $this->slug; + } + public function getPrimaryKey() { return $this->getId(); diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php index 02aa670cd8..5135a6a885 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php @@ -18,6 +18,7 @@ class ItemQuery 'value' => \PropelColumnTypes::VARCHAR, 'price' => \PropelColumnTypes::FLOAT, 'is_active' => \PropelColumnTypes::BOOLEAN, + 'slug' => \PropelColumnTypes::VARCHAR, 'enabled' => \PropelColumnTypes::BOOLEAN_EMU, 'updated_at' => \PropelColumnTypes::TIMESTAMP, ); diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Form/ChoiceList/ModelChoiceListTest.php b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Form/ChoiceList/ModelChoiceListTest.php index ef77b5edbb..fa67bb5e7b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Form/ChoiceList/ModelChoiceListTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/Tests/Form/ChoiceList/ModelChoiceListTest.php @@ -259,4 +259,26 @@ class ModelChoiceListTest extends Propel1TestCase { $choiceList = new ModelChoiceList('Foo\Bar\DoesNotExistClass'); } + + public function testCustomIdentifier() + { + $item1 = new Item(1, 'Foo', null, null, 'slug'); + $item2 = new Item(2, 'Bar', null, null, 'slug2'); + + $choiceList = new ModelChoiceList( + self::ITEM_CLASS, + 'value', + array( + $item1, + $item2, + ), + null, + null, + array(), + null, + 'slug' + ); + + $this->assertSame(array('slug' => $item1, 'slug2' => $item2), $choiceList->getChoices()); + } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/composer.json index 6631e7c438..6aa820d6b3 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Propel1/composer.json @@ -32,7 +32,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/ProxyManager/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/ProxyManager/composer.json index ad6b9b2471..04cc581ac3 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/ProxyManager/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/ProxyManager/composer.json @@ -29,7 +29,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Swiftmailer/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/Swiftmailer/composer.json index 8890da191a..8e5277692e 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Swiftmailer/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Swiftmailer/composer.json @@ -29,7 +29,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/CHANGELOG.md b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/CHANGELOG.md index 346d52a5ad..4be010ba20 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/CHANGELOG.md +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +2.5.0 +----- + + * moved command `twig:lint` from `TwigBundle` + 2.4.0 ----- diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Node/TransNode.php b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Node/TransNode.php index 924f2b9298..71823a1b78 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Node/TransNode.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Node/TransNode.php @@ -36,7 +36,7 @@ class TransNode extends \Twig_Node $defaults = $this->getNode('vars'); $vars = null; } - list($msg, $defaults) = $this->compileString($this->getNode('body'), $defaults); + list($msg, $defaults) = $this->compileString($this->getNode('body'), $defaults, (bool) $vars); $method = null === $this->getNode('count') ? 'trans' : 'transChoice'; @@ -83,7 +83,7 @@ class TransNode extends \Twig_Node $compiler->raw(");\n"); } - protected function compileString(\Twig_NodeInterface $body, \Twig_Node_Expression_Array $vars) + protected function compileString(\Twig_NodeInterface $body, \Twig_Node_Expression_Array $vars, $ignoreStrictCheck = false) { if ($body instanceof \Twig_Node_Expression_Constant) { $msg = $body->getAttribute('value'); @@ -98,7 +98,13 @@ class TransNode extends \Twig_Node foreach ($matches[1] as $var) { $key = new \Twig_Node_Expression_Constant('%'.$var.'%', $body->getLine()); if (!$vars->hasElement($key)) { - $vars->addElement(new \Twig_Node_Expression_Name($var, $body->getLine()), $key); + if ('count' === $var && null !== $this->getNode('count')) { + $vars->addElement($this->getNode('count'), $key); + } else { + $varExpr = new \Twig_Node_Expression_Name($var, $body->getLine()); + $varExpr->setAttribute('ignore_strict_check', $ignoreStrictCheck); + $vars->addElement($varExpr, $key); + } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig index c1a4aa00f1..211eee5dd7 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig @@ -377,8 +377,6 @@ {%- if read_only %} readonly="readonly"{% endif -%} {%- if disabled %} disabled="disabled"{% endif -%} {%- if required %} required="required"{% endif -%} - {%- if max_length %} maxlength="{{ max_length }}"{% endif -%} - {%- if pattern %} pattern="{{ pattern }}"{% endif -%} {%- for attrname, attrvalue in attr -%} {{- " " -}} {%- if attrname in ['placeholder', 'title'] -%} diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php index c2e6089dbd..adaa00938a 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Tests/Extension/TranslationExtensionTest.php @@ -96,6 +96,8 @@ class TranslationExtensionTest extends \PHPUnit_Framework_TestCase 'There is 5 apples (Symfony2)', array('count' => 5)), array('{% transchoice count into "fr"%}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples{% endtranschoice %}', 'There is no apples', array('count' => 0)), + array('{% transchoice 5 into "fr"%}{0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples{% endtranschoice %}', + 'There is 5 apples'), // trans filter array('{{ "Hello"|trans }}', 'Hello'), diff --git a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/composer.json b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/composer.json index 7788f545a9..4454113660 100644 --- a/vendor/symfony/symfony/src/Symfony/Bridge/Twig/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bridge/Twig/composer.json @@ -29,6 +29,7 @@ "symfony/yaml": "~2.0", "symfony/security": "~2.4", "symfony/stopwatch": "~2.2", + "symfony/console": "~2.2", "symfony/expression-language": "~2.4" }, "suggest": { @@ -49,7 +50,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index c81b786dcc..25247608e5 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -1,6 +1,15 @@ CHANGELOG ========= +2.5.0 +----- + + * Added `translation:debug` command + * Added `--no-backup` option to `translation:update` command + * Added `config:debug` command + * Added `yaml:lint` command + * Deprecated the `RouterApacheDumperCommand` which will be removed in Symfony 3.0. + 2.4.0 ----- diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php index 7c441a8748..07f81f5878 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/CacheWarmer/TemplateFinder.php @@ -55,7 +55,7 @@ class TemplateFinder implements TemplateFinderInterface $templates = array(); - foreach ($this->kernel->getBundles() as $name => $bundle) { + foreach ($this->kernel->getBundles() as $bundle) { $templates = array_merge($templates, $this->findTemplatesInBundle($bundle)); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php index 48a8543689..9aa5453053 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php @@ -83,7 +83,7 @@ EOT $bundlesDir = $targetArg.'/bundles/'; $filesystem->mkdir($bundlesDir, 0777); - $output->writeln(sprintf("Installing assets using the %s option", $input->getOption('symlink') ? 'symlink' : 'hard copy')); + $output->writeln(sprintf('Installing assets as %s', $input->getOption('symlink') ? 'symlinks' : 'hard copies')); foreach ($this->getContainer()->get('kernel')->getBundles() as $bundle) { if (is_dir($originDir = $bundle->getPath().'/Resources/public')) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php index b7e4bfd0c6..1ff6fa308c 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php @@ -43,6 +43,7 @@ and debug mode: php %command.full_name% --env=dev php %command.full_name% --env=prod --no-debug + EOF ) ; @@ -77,9 +78,15 @@ EOF $warmupDir = substr($realCacheDir, 0, -1).'_'; if ($filesystem->exists($warmupDir)) { + if ($output->isVerbose()) { + $output->writeln(' Clearing outdated warmup directory'); + } $filesystem->remove($warmupDir); } + if ($output->isVerbose()) { + $output->writeln(' Warming up cache'); + } $this->warmup($warmupDir, $realCacheDir, !$input->getOption('no-optional-warmers')); $filesystem->rename($realCacheDir, $oldCacheDir); @@ -89,13 +96,21 @@ EOF $filesystem->rename($warmupDir, $realCacheDir); } + if ($output->isVerbose()) { + $output->writeln(' Removing old cache directory'); + } + $filesystem->remove($oldCacheDir); + + if ($output->isVerbose()) { + $output->writeln(' Done'); + } } /** - * @param string $warmupDir - * @param string $realCacheDir - * @param bool $enableOptionalWarmers + * @param string $warmupDir + * @param string $realCacheDir + * @param bool $enableOptionalWarmers */ protected function warmup($warmupDir, $realCacheDir, $enableOptionalWarmers = true) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php index 71f071105b..8e08153d4a 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php @@ -42,6 +42,7 @@ This command does not generate the classes cache (as when executing this command, too many classes that should be part of the cache are already loaded in memory). Use curl or any other similar tool to warm up the classes cache if you want. + EOF ) ; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php index c94d167bc0..4a92fd63a8 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php @@ -17,15 +17,15 @@ use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Config\Definition\ConfigurationInterface; /** - * A console command for dumping available configuration reference + * A console command for dumping available configuration reference. * * @author Kevin Bond * @author Wouter J + * @author Grégoire Pineau */ -class ConfigDumpReferenceCommand extends ContainerDebugCommand +class ConfigDumpReferenceCommand extends AbstractConfigCommand { /** * {@inheritdoc} @@ -43,13 +43,17 @@ class ConfigDumpReferenceCommand extends ContainerDebugCommand The %command.name% command dumps the default configuration for an extension/bundle. -The extension alias or bundle name can be used: +Either the extension alias or bundle name can be used: php %command.full_name% framework php %command.full_name% FrameworkBundle With the format option specifies the format of the configuration, -this is either yaml or xml. When the option is not provided, yaml is used. +this is either yaml or xml. +When the option is not provided, yaml is used. + + php %command.full_name% FrameworkBundle --format=xml + EOF ) ; @@ -62,65 +66,24 @@ EOF */ protected function execute(InputInterface $input, OutputInterface $output) { - $bundles = $this->getContainer()->get('kernel')->getBundles(); - $containerBuilder = $this->getContainerBuilder(); - $name = $input->getArgument('name'); if (empty($name)) { - $output->writeln('Available registered bundles with their extension alias if available:'); - - $table = $this->getHelperSet()->get('table'); - $table->setHeaders(array('Bundle name', 'Extension alias')); - foreach ($bundles as $bundle) { - $extension = $bundle->getContainerExtension(); - $table->addRow(array($bundle->getName(), $extension ? $extension->getAlias() : '')); - } - $table->render($output); + $this->listBundles($output); return; } - $extension = null; + $extension = $this->findExtension($name); - if (preg_match('/Bundle$/', $name)) { - // input is bundle name + $configuration = $extension->getConfiguration(array(), $this->getContainerBuilder()); - if (isset($bundles[$name])) { - $extension = $bundles[$name]->getContainerExtension(); - } + $this->validateConfiguration($extension, $configuration); - if (!$extension) { - throw new \LogicException(sprintf('No extensions with configuration available for "%s"', $name)); - } - - $message = 'Default configuration for "'.$name.'"'; + if ($name === $extension->getAlias()) { + $message = sprintf('Default configuration for extension with alias: "%s"', $name); } else { - foreach ($bundles as $bundle) { - $extension = $bundle->getContainerExtension(); - - if ($extension && $extension->getAlias() === $name) { - break; - } - - $extension = null; - } - - if (!$extension) { - throw new \LogicException(sprintf('No extension with alias "%s" is enabled', $name)); - } - - $message = 'Default configuration for extension with alias: "'.$name.'"'; - } - - $configuration = $extension->getConfiguration(array(), $containerBuilder); - - if (!$configuration) { - throw new \LogicException(sprintf('The extension with alias "%s" does not have it\'s getConfiguration() method setup', $extension->getAlias())); - } - - if (!$configuration instanceof ConfigurationInterface) { - throw new \LogicException(sprintf('Configuration class "%s" should implement ConfigurationInterface in order to be dumpable', get_class($configuration))); + $message = sprintf('Default configuration for "%s"', $name); } switch ($input->getOption('format')) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php index fee2c6543e..84be032173 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php @@ -21,7 +21,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; /** - * A console command for retrieving information about services + * A console command for retrieving information about services. * * @author Ryan Weaver */ @@ -41,8 +41,8 @@ class ContainerDebugCommand extends ContainerAwareCommand ->setName('container:debug') ->setDefinition(array( new InputArgument('name', InputArgument::OPTIONAL, 'A service name (foo)'), - new InputOption('show-private', null, InputOption::VALUE_NONE, 'Use to show public *and* private services'), - new InputOption('tag', null, InputOption::VALUE_REQUIRED, 'Show all services with a specific tag'), + new InputOption('show-private', null, InputOption::VALUE_NONE, 'Used to show public *and* private services'), + new InputOption('tag', null, InputOption::VALUE_REQUIRED, 'Shows all services with a specific tag'), new InputOption('tags', null, InputOption::VALUE_NONE, 'Displays tagged services for an application'), new InputOption('parameter', null, InputOption::VALUE_REQUIRED, 'Displays a specific parameter for an application'), new InputOption('parameters', null, InputOption::VALUE_NONE, 'Displays parameters for an application'), @@ -79,6 +79,7 @@ Use the --parameters option to display all parameters: Display a specific parameter by specifying his name with the --parameter option: php %command.full_name% --parameter=kernel.debug + EOF ) ; @@ -86,8 +87,6 @@ EOF /** * {@inheritdoc} - * - * @throws \LogicException */ protected function execute(InputInterface $input, OutputInterface $output) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterApacheDumperCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterApacheDumperCommand.php index c8a17e8904..63487b750a 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterApacheDumperCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterApacheDumperCommand.php @@ -21,6 +21,10 @@ use Symfony\Component\Routing\RouterInterface; /** * RouterApacheDumperCommand. * + * @deprecated Deprecated since version 2.5, to be removed in 3.0. + * The performance gains are minimal and it's very hard to replicate + * the behavior of PHP implementation. + * * @author Fabien Potencier */ class RouterApacheDumperCommand extends ContainerAwareCommand @@ -59,6 +63,7 @@ These can then be used with the ApacheUrlMatcher to use Apache for route matching. php %command.full_name% + EOF ) ; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php index e4b49a2679..5607ae357b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php @@ -20,7 +20,7 @@ use Symfony\Component\Routing\RouterInterface; use Symfony\Component\Routing\Route; /** - * A console command for retrieving information about routes + * A console command for retrieving information about routes. * * @author Fabien Potencier * @author Tobias Schultze @@ -61,6 +61,7 @@ class RouterDebugCommand extends ContainerAwareCommand The %command.name% displays the configured routes: php %command.full_name% + EOF ) ; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php index 79bb035474..371fe927b8 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php @@ -13,6 +13,7 @@ namespace Symfony\Bundle\FrameworkBundle\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Routing\RouterInterface; @@ -50,12 +51,18 @@ class RouterMatchCommand extends ContainerAwareCommand ->setName('router:match') ->setDefinition(array( new InputArgument('path_info', InputArgument::REQUIRED, 'A path info'), + new InputOption('method', null, InputOption::VALUE_REQUIRED, 'Sets the HTTP method'), + new InputOption('scheme', null, InputOption::VALUE_REQUIRED, 'Sets the URI scheme (usually http or https)'), + new InputOption('host', null, InputOption::VALUE_REQUIRED, 'Sets the URI host'), )) ->setDescription('Helps debug routes by simulating a path info match') ->setHelp(<<%command.name% simulates a path info match: +The %command.name% shows which routes match a given request and which don't and for what reason: php %command.full_name% /foo + or + php %command.full_name% /foo --method POST --scheme https --host symfony.com --verbose + EOF ) ; @@ -67,12 +74,23 @@ EOF protected function execute(InputInterface $input, OutputInterface $output) { $router = $this->getContainer()->get('router'); - $matcher = new TraceableUrlMatcher($router->getRouteCollection(), $router->getContext()); + $context = $router->getContext(); + if (null !== $method = $input->getOption('method')) { + $context->setMethod($method); + } + if (null !== $scheme = $input->getOption('scheme')) { + $context->setScheme($scheme); + } + if (null !== $host = $input->getOption('host')) { + $context->setHost($host); + } + + $matcher = new TraceableUrlMatcher($router->getRouteCollection(), $context); $traces = $matcher->getTraces($input->getArgument('path_info')); $matches = false; - foreach ($traces as $i => $trace) { + foreach ($traces as $trace) { if (TraceableUrlMatcher::ROUTE_ALMOST_MATCHES == $trace['level']) { $output->writeln(sprintf('Route "%s" almost matches but %s', $trace['name'], lcfirst($trace['log']))); } elseif (TraceableUrlMatcher::ROUTE_MATCHES == $trace['level']) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerRunCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerRunCommand.php index 63588d5264..cbda402fcc 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerRunCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerRunCommand.php @@ -18,7 +18,7 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\ProcessBuilder; /** - * Runs Symfony2 application using PHP built-in web server + * Runs Symfony2 application using PHP built-in web server. * * @author Michał Pipa */ @@ -29,7 +29,7 @@ class ServerRunCommand extends ContainerAwareCommand */ public function isEnabled() { - if (version_compare(phpversion(), '5.4.0', '<')) { + if (version_compare(phpversion(), '5.4.0', '<') || defined('HHVM_VERSION')) { return false; } @@ -43,7 +43,7 @@ class ServerRunCommand extends ContainerAwareCommand { $this ->setDefinition(array( - new InputArgument('address', InputArgument::OPTIONAL, 'Address:port', 'localhost:8000'), + new InputArgument('address', InputArgument::OPTIONAL, 'Address:port', '127.0.0.1:8000'), new InputOption('docroot', 'd', InputOption::VALUE_REQUIRED, 'Document root', 'web/'), new InputOption('router', 'r', InputOption::VALUE_REQUIRED, 'Path to custom router script'), )) @@ -71,6 +71,7 @@ Specifing a router script is required when the used environment is not "dev" or "prod". See also: http://www.php.net/manual/en/features.commandline.webserver.php + EOF ) ; @@ -87,15 +88,15 @@ EOF $output->writeln('Running PHP built-in server in production environment is NOT recommended!'); } + $output->writeln(sprintf("Server running on http://%s\n", $input->getArgument('address'))); + $router = $input->getOption('router') ?: $this ->getContainer() ->get('kernel') ->locateResource(sprintf('@FrameworkBundle/Resources/config/router_%s.php', $env)) ; - $output->writeln(sprintf("Server running on http://%s\n", $input->getArgument('address'))); - - $builder = new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router)); + $builder = $this->createPhpProcessBuilder($input, $output, $env); $builder->setWorkingDirectory($input->getOption('docroot')); $builder->setTimeout(null); $builder->getProcess()->run(function ($type, $buffer) use ($output) { @@ -104,4 +105,15 @@ EOF } }); } + + private function createPhpProcessBuilder(InputInterface $input, OutputInterface $output, $env) + { + $router = $input->getOption('router') ?: $this + ->getContainer() + ->get('kernel') + ->locateResource(sprintf('@FrameworkBundle/Resources/config/router_%s.php', $env)) + ; + + return new ProcessBuilder(array(PHP_BINARY, '-S', $input->getArgument('address'), $router)); + } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php index 2ef9d04465..8457656f08 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php @@ -52,6 +52,10 @@ class TranslationUpdateCommand extends ContainerAwareCommand 'force', null, InputOption::VALUE_NONE, 'Should the update be done' ), + new InputOption( + 'no-backup', null, InputOption::VALUE_NONE, + 'Should backup be disabled' + ), new InputOption( 'clean', null, InputOption::VALUE_NONE, 'Should clean not found messages' @@ -66,6 +70,7 @@ message. php %command.full_name% --dump-messages en AcmeBundle php %command.full_name% --force --prefix="new_" fr AcmeBundle + EOF ) ; @@ -138,6 +143,10 @@ EOF } } + if ($input->getOption('no-backup') === true) { + $writer->disableBackup(); + } + // save the files if ($input->getOption('force') === true) { $output->writeln('Writing files'); diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php index 55cbd4fc08..85df573f4c 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php @@ -100,16 +100,16 @@ class Application extends BaseApplication { $container = $this->kernel->getContainer(); - if ($container->hasParameter('console.command.ids')) { - foreach ($container->getParameter('console.command.ids') as $id) { - $this->add($container->get($id)); - } - } - foreach ($this->kernel->getBundles() as $bundle) { if ($bundle instanceof Bundle) { $bundle->registerCommands($this); } } + + if ($container->hasParameter('console.command.ids')) { + foreach ($container->getParameter('console.command.ids') as $id) { + $this->add($container->get($id)); + } + } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php index 3b3b28f570..1b33d832c0 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/Descriptor.php @@ -114,17 +114,6 @@ abstract class Descriptor implements DescriptorInterface */ abstract protected function describeRoute(Route $route, array $options = array()); - /** - * Describes a specific container parameter. - * - * @param mixed $parameterValue - * @param array $options - */ - protected function describeContainerParameter($parameterValue, array $options = array()) - { - $this->write($this->formatParameter($parameterValue)); - } - /** * Describes container parameters. * @@ -179,6 +168,14 @@ abstract class Descriptor implements DescriptorInterface */ abstract protected function describeContainerAlias(Alias $alias, array $options = array()); + /** + * Describes a container parameter. + * + * @param string $parameter + * @param array $options + */ + abstract protected function describeContainerParameter($parameter, array $options = array()); + /** * Formats a value as string. * @@ -211,12 +208,8 @@ abstract class Descriptor implements DescriptorInterface if (is_bool($value) || is_array($value) || (null === $value)) { $jsonString = json_encode($value); - if (!function_exists('mb_strlen')) { - return substr($jsonString, 0, 60).(strlen($jsonString) > 60 ? ' ...' : ''); - } - - if (mb_strlen($jsonString) > 60) { - return mb_substr($jsonString, 0, 60).' ...'; + if (preg_match('/^(.{60})./us', $jsonString, $matches)) { + return $matches[1].'...'; } return $jsonString; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php index 7318a7b60a..7a19cdc8f5 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/JsonDescriptor.php @@ -134,6 +134,16 @@ class JsonDescriptor extends Descriptor $this->writeData($this->getContainerAliasData($alias), $options); } + /** + * {@inheritdoc} + */ + protected function describeContainerParameter($parameter, array $options = array()) + { + $key = isset($options['parameter']) ? $options['parameter'] : ''; + + $this->writeData(array($key => $this->formatParameter($parameter)), $options); + } + /** * Writes data as json. * diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php index 23a9a85719..6f4fb76831 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/MarkdownDescriptor.php @@ -207,6 +207,14 @@ class MarkdownDescriptor extends Descriptor $this->write(isset($options['id']) ? sprintf("%s\n%s\n\n%s\n", $options['id'], str_repeat('~', strlen($options['id'])), $output) : $output); } + /** + * {@inheritdoc} + */ + protected function describeContainerParameter($parameter, array $options = array()) + { + $this->write(isset($options['parameter']) ? sprintf("%s\n%s\n\n%s", $options['parameter'], str_repeat('=', strlen($options['parameter'])), $this->formatParameter($parameter)): $parameter); + } + private function formatRouterConfig(array $array) { if (!count($array)) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php index d34d42ef8a..67cb356bc3 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php @@ -276,6 +276,14 @@ class TextDescriptor extends Descriptor $this->writeText(sprintf('This service is an alias for the service %s', (string) $alias), $options); } + /** + * {@inheritdoc} + */ + protected function describeContainerParameter($parameter, array $options = array()) + { + $this->writeText($this->formatParameter($parameter), $options); + } + /** * @param array $array * diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php index 300abf7c9e..73f693c3f7 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php @@ -91,6 +91,14 @@ class XmlDescriptor extends Descriptor $this->writeDocument($this->getContainerAliasDocument($alias, isset($options['id']) ? $options['id'] : null)); } + /** + * {@inheritdoc} + */ + protected function describeContainerParameter($parameter, array $options = array()) + { + $this->writeDocument($this->getContainerParameterDocument($parameter, $options)); + } + /** * Writes DOM document. * @@ -365,4 +373,24 @@ class XmlDescriptor extends Descriptor return $dom; } + + /** + * @param string $parameter + * @param array $options + * + * @return \DOMDocument + */ + private function getContainerParameterDocument($parameter, $options = array()) + { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->appendChild($parameterXML = $dom->createElement('parameter')); + + if (isset($options['parameter'])) { + $parameterXML->setAttribute('key', $options['parameter']); + } + + $parameterXML->appendChild(new \DOMText($this->formatParameter($parameter))); + + return $dom; + } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php index ecef9bc082..73f603486b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php @@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\StreamedResponse; use Symfony\Component\DependencyInjection\ContainerAware; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\HttpKernelInterface; +use Symfony\Component\Security\Core\Exception\AccessDeniedException; use Symfony\Component\Form\FormTypeInterface; use Symfony\Component\Form\Form; use Symfony\Component\Form\FormBuilder; @@ -61,7 +62,7 @@ class Controller extends ContainerAware public function forward($controller, array $path = array(), array $query = array()) { $path['_controller'] = $controller; - $subRequest = $this->container->get('request')->duplicate($query, null, $path); + $subRequest = $this->container->get('request_stack')->getCurrentRequest()->duplicate($query, null, $path); return $this->container->get('http_kernel')->handle($subRequest, HttpKernelInterface::SUB_REQUEST); } @@ -139,8 +140,8 @@ class Controller extends ContainerAware * * throw $this->createNotFoundException('Page not found!'); * - * @param string $message A message - * @param \Exception $previous The previous exception + * @param string $message A message + * @param \Exception|null $previous The previous exception * * @return NotFoundHttpException */ @@ -149,6 +150,23 @@ class Controller extends ContainerAware return new NotFoundHttpException($message, $previous); } + /** + * Returns an AccessDeniedException. + * + * This will result in a 403 response code. Usage example: + * + * throw $this->createAccessDeniedException('Unable to access this page!'); + * + * @param string $message A message + * @param \Exception|null $previous The previous exception + * + * @return AccessDeniedException + */ + public function createAccessDeniedException($message = 'Access Denied', \Exception $previous = null) + { + return new AccessDeniedException($message, $previous); + } + /** * Creates and returns a Form instance from the type of the form. * diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddValidatorInitializersPass.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddValidatorInitializersPass.php index bf9f338111..6f58fc21be 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddValidatorInitializersPass.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddValidatorInitializersPass.php @@ -19,15 +19,17 @@ class AddValidatorInitializersPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { - if (!$container->hasDefinition('validator')) { + if (!$container->hasDefinition('validator.builder')) { return; } + $validatorBuilder = $container->getDefinition('validator.builder'); + $initializers = array(); foreach ($container->findTaggedServiceIds('validator.initializer') as $id => $attributes) { $initializers[] = new Reference($id); } - $container->getDefinition('validator')->replaceArgument(4, $initializers); + $validatorBuilder->addMethodCall('addObjectInitializers', array($initializers)); } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CompilerDebugDumpPass.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CompilerDebugDumpPass.php index 28ad7082fa..f152ce8c50 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CompilerDebugDumpPass.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CompilerDebugDumpPass.php @@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\Filesystem\Exception\IOException; use Symfony\Component\Filesystem\Filesystem; class CompilerDebugDumpPass implements CompilerPassInterface @@ -24,8 +25,11 @@ class CompilerDebugDumpPass implements CompilerPassInterface $filesystem = new Filesystem(); $filesystem->dumpFile($filename, implode("\n", $container->getCompiler()->getLog()), null); - // discard chmod failure (some filesystem may not support it) - @chmod($filename, 0666 & ~umask()); + try { + $filesystem->chmod($filename, 0666, umask()); + } catch (IOException $e) { + // discard chmod failure (some filesystem may not support it) + } } public static function getCompilerLogFilename(ContainerInterface $container) diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php index 6cf52b6522..467ecff283 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php @@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Dumper\XmlDumper; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\Filesystem\Exception\IOException; use Symfony\Component\Filesystem\Filesystem; /** @@ -31,7 +32,10 @@ class ContainerBuilderDebugDumpPass implements CompilerPassInterface $filename = $container->getParameter('debug.container.dump'); $filesystem = new Filesystem(); $filesystem->dumpFile($filename, $dumper->dump(), null); - // discard chmod failure (some filesystem may not support it) - @chmod($filename, 0666 & ~umask()); + try { + $filesystem->chmod($filename, 0666, umask()); + } catch (IOException $e) { + // discard chmod failure (some filesystem may not support it) + } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index 0c1d1578c6..c263929563 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -85,6 +85,7 @@ class Configuration implements ConfigurationInterface $this->addProfilerSection($rootNode); $this->addRouterSection($rootNode); $this->addSessionSection($rootNode); + $this->addRequestSection($rootNode); $this->addTemplatingSection($rootNode); $this->addTranslatorSection($rootNode); $this->addValidationSection($rootNode); @@ -243,7 +244,7 @@ class Configuration implements ConfigurationInterface ->booleanNode('cookie_secure')->end() ->booleanNode('cookie_httponly')->end() ->scalarNode('gc_divisor')->end() - ->scalarNode('gc_probability')->end() + ->scalarNode('gc_probability')->defaultValue(1)->end() ->scalarNode('gc_maxlifetime')->end() ->scalarNode('save_path')->defaultValue('%kernel.cache_dir%/sessions')->end() ->integerNode('metadata_update_threshold') @@ -256,6 +257,35 @@ class Configuration implements ConfigurationInterface ; } + private function addRequestSection(ArrayNodeDefinition $rootNode) + { + $rootNode + ->children() + ->arrayNode('request') + ->info('request configuration') + ->canBeUnset() + ->fixXmlConfig('format') + ->children() + ->arrayNode('formats') + ->useAttributeAsKey('name') + ->prototype('array') + ->beforeNormalization() + ->ifTrue(function ($v) { return is_array($v) && isset($v['mime_type']); }) + ->then(function ($v) { return $v['mime_type']; }) + ->end() + ->beforeNormalization() + ->ifTrue(function ($v) { return !is_array($v); }) + ->then(function ($v) { return array($v); }) + ->end() + ->prototype('scalar')->end() + ->end() + ->end() + ->end() + ->end() + ->end() + ; + } + private function addTemplatingSection(ArrayNodeDefinition $rootNode) { $organizeUrls = function ($urls) { @@ -414,7 +444,25 @@ class Configuration implements ConfigurationInterface ->children() ->scalarNode('cache')->end() ->booleanNode('enable_annotations')->defaultFalse()->end() + ->arrayNode('static_method') + ->defaultValue(array('loadClassMetadata')) + ->prototype('scalar')->end() + ->treatFalseLike(array()) + ->validate() + ->ifTrue(function ($v) { return !is_array($v); }) + ->then(function ($v) { return (array) $v; }) + ->end() + ->end() ->scalarNode('translation_domain')->defaultValue('validators')->end() + ->booleanNode('strict_email')->defaultFalse()->end() + ->enumNode('api') + ->values(array('2.4', '2.5', '2.5-bc', 'auto')) + ->defaultValue('auto') + ->beforeNormalization() + ->ifTrue(function ($v) { return is_scalar($v); }) + ->then(function ($v) { return (string) $v; }) + ->end() + ->end() ->end() ->end() ->end() diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 5dc5c05513..15e0801fb9 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -21,6 +21,7 @@ use Symfony\Component\Config\Resource\DirectoryResource; use Symfony\Component\Finder\Finder; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\Config\FileLocator; +use Symfony\Component\Validator\Validation; /** * FrameworkExtension. @@ -91,6 +92,10 @@ class FrameworkExtension extends Extension $this->registerSessionConfiguration($config['session'], $container, $loader); } + if (isset($config['request'])) { + $this->registerRequestConfiguration($config['request'], $container, $loader); + } + $loader->load('security.xml'); if ($this->isConfigEnabled($container, $config['form'])) { @@ -382,6 +387,24 @@ class FrameworkExtension extends Extension $container->setParameter('session.metadata.update_threshold', $config['metadata_update_threshold']); } + /** + * Loads the request configuration. + * + * @param array $config A session configuration array + * @param ContainerBuilder $container A ContainerBuilder instance + * @param XmlFileLoader $loader An XmlFileLoader instance + */ + private function registerRequestConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader) + { + if ($config['formats']) { + $loader->load('request.xml'); + $container + ->getDefinition('request.add_request_formats_listener') + ->replaceArgument(0, $config['formats']) + ; + } + } + /** * Loads the templating configuration. * @@ -398,6 +421,8 @@ class FrameworkExtension extends Extension $links = array( 'textmate' => 'txmt://open?url=file://%%f&line=%%l', 'macvim' => 'mvim://open?url=file://%%f&line=%%l', + 'emacs' => 'emacs://open?url=file://%file&line=%line', + 'sublime' => 'subl://open?url=file://%file&line=%line', ); $container->setParameter('templating.helper.code.file_link_format', isset($links[$ide]) ? $links[$ide] : $ide); @@ -652,24 +677,57 @@ class FrameworkExtension extends Extension $loader->load('validator.xml'); + $validatorBuilder = $container->getDefinition('validator.builder'); + $container->setParameter('validator.translation_domain', $config['translation_domain']); - $container->setParameter('validator.mapping.loader.xml_files_loader.mapping_files', $this->getValidatorXmlMappingFiles($container)); - $container->setParameter('validator.mapping.loader.yaml_files_loader.mapping_files', $this->getValidatorYamlMappingFiles($container)); + + $xmlMappings = $this->getValidatorXmlMappingFiles($container); + $yamlMappings = $this->getValidatorYamlMappingFiles($container); + + if (count($xmlMappings) > 0) { + $validatorBuilder->addMethodCall('addXmlMappings', array($xmlMappings)); + } + + if (count($yamlMappings) > 0) { + $validatorBuilder->addMethodCall('addYamlMappings', array($yamlMappings)); + } + + $definition = $container->findDefinition('validator.email'); + $definition->replaceArgument(0, $config['strict_email']); if (array_key_exists('enable_annotations', $config) && $config['enable_annotations']) { - $loaderChain = $container->getDefinition('validator.mapping.loader.loader_chain'); - $arguments = $loaderChain->getArguments(); - array_unshift($arguments[0], new Reference('validator.mapping.loader.annotation_loader')); - $loaderChain->setArguments($arguments); + $validatorBuilder->addMethodCall('enableAnnotationMapping', array(new Reference('annotation_reader'))); + } + + if (array_key_exists('static_method', $config) && $config['static_method']) { + foreach ($config['static_method'] as $methodName) { + $validatorBuilder->addMethodCall('addMethodMapping', array($methodName)); + } } if (isset($config['cache'])) { - $container->getDefinition('validator.mapping.class_metadata_factory') - ->replaceArgument(1, new Reference('validator.mapping.cache.'.$config['cache'])); $container->setParameter( 'validator.mapping.cache.prefix', 'validator_'.hash('sha256', $container->getParameter('kernel.root_dir')) ); + + $validatorBuilder->addMethodCall('setMetadataCache', array(new Reference('validator.mapping.cache.'.$config['cache']))); + } + + if ('auto' !== $config['api']) { + switch ($config['api']) { + case '2.4': + $api = Validation::API_VERSION_2_4; + break; + case '2.5': + $api = Validation::API_VERSION_2_5; + break; + default: + $api = Validation::API_VERSION_2_5_BC; + break; + } + + $validatorBuilder->addMethodCall('setApiVersion', array($api)); } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 5418121dd6..30d06fd7af 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -30,9 +30,9 @@ use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SerializerPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\PassConfig; use Symfony\Component\DependencyInjection\Scope; +use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Bundle\Bundle; -use Symfony\Component\HttpKernel\DependencyInjection\RegisterListenersPass; /** * Bundle. diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/debug.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/debug.xml index 85cced76d5..c457e4f903 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/debug.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/debug.xml @@ -9,6 +9,7 @@ Symfony\Component\Stopwatch\Stopwatch %kernel.cache_dir%/%kernel.container_class%.xml Symfony\Component\HttpKernel\Controller\TraceableControllerResolver + Symfony\Component\HttpKernel\EventListener\DebugHandlersListener @@ -32,5 +33,20 @@ deprecation + + + + + scream + + + + + + + + terminateWithException + + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml index ca68dcf69b..23d8ec260c 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml @@ -10,6 +10,7 @@ Symfony\Component\Form\FormFactory Symfony\Component\Form\Extension\DependencyInjection\DependencyInjectionExtension Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser + Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler @@ -148,9 +149,13 @@ + + + + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd index 92c8952e48..07569b54c0 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd @@ -7,6 +7,15 @@ + + + + + + + + + @@ -16,6 +25,7 @@ + @@ -101,6 +111,19 @@ + + + + + + + + + + + + + @@ -137,9 +160,15 @@ + + + + + + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml index 608bf42d52..4457dbb276 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/services.xml @@ -43,6 +43,8 @@ YourRequestClass to the Kernel. This service definition only defines the scope of the request. It is used to check references scope. + + This service is deprecated, you should use the request_stack service instead. --> diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml index 8a7a779d00..0ebb44bbd2 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml @@ -67,12 +67,12 @@ - + - + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml index 4c1ac47d1f..336379a11b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.xml @@ -5,35 +5,33 @@ xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> - Symfony\Component\Validator\Validator - Symfony\Component\Validator\Mapping\ClassMetadataFactory + Symfony\Component\Validator\ValidatorInterface + Symfony\Component\Validator\ValidatorBuilderInterface + Symfony\Component\Validator\Validation Symfony\Component\Validator\Mapping\Cache\ApcCache - Symfony\Component\Validator\Mapping\Loader\LoaderChain - Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader - Symfony\Component\Validator\Mapping\Loader\AnnotationLoader - Symfony\Component\Validator\Mapping\Loader\XmlFilesLoader - Symfony\Component\Validator\Mapping\Loader\YamlFilesLoader Symfony\Bundle\FrameworkBundle\Validator\ConstraintValidatorFactory - - Symfony\Component\Validator\Constraints\ExpressionValidator + Symfony\Component\Validator\Constraints\EmailValidator - - - - - %validator.translation_domain% - - + - diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_errors.html.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_errors.html.php index da9bec42ec..77c60d7dfb 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_errors.html.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_errors.html.php @@ -1,4 +1,4 @@ - + 0): ?>
        • getMessage() ?>
        • diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/widget_attributes.html.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/widget_attributes.html.php index 292dbb9aa8..c226047731 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/widget_attributes.html.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/widget_attributes.html.php @@ -1,8 +1,6 @@ id="escape($id) ?>" name="escape($full_name) ?>" readonly="readonly" disabled="disabled" required="required" -maxlength="escape($max_length) ?>" -pattern="escape($pattern) ?>" $v): ?> escape($k), $view->escape($view['translator']->trans($v, array(), $translation_domain))) ?> diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/RequestHelper.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/RequestHelper.php index 4533bf172b..d071a586c0 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/RequestHelper.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/RequestHelper.php @@ -13,6 +13,7 @@ namespace Symfony\Bundle\FrameworkBundle\Templating\Helper; use Symfony\Component\Templating\Helper\Helper; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; /** * RequestHelper provides access to the current request parameters. @@ -22,15 +23,24 @@ use Symfony\Component\HttpFoundation\Request; class RequestHelper extends Helper { protected $request; + protected $requestStack; /** * Constructor. * - * @param Request $request A Request instance + * @param Request|RequestStack $requestStack A RequestStack instance or a Request instance + * + * @deprecated since 2.5, passing a Request instance is deprecated and support for it will be removed in 3.0 */ - public function __construct(Request $request) + public function __construct($requestStack) { - $this->request = $request; + if ($requestStack instanceof Request) { + $this->request = $requestStack; + } elseif ($requestStack instanceof RequestStack) { + $this->requestStack = $requestStack; + } else { + throw new \InvalidArgumentException('RequestHelper only accepts a Request or a RequestStack instance.'); + } } /** @@ -45,7 +55,7 @@ class RequestHelper extends Helper */ public function getParameter($key, $default = null) { - return $this->request->get($key, $default); + return $this->getRequest()->get($key, $default); } /** @@ -55,7 +65,20 @@ class RequestHelper extends Helper */ public function getLocale() { - return $this->request->getLocale(); + return $this->getRequest()->getLocale(); + } + + private function getRequest() + { + if ($this->requestStack) { + if (!$this->requestStack->getCurrentRequest()) { + throw new \LogicException('A Request must be available.'); + } + + return $this->requestStack->getCurrentRequest(); + } + + return $this->request; } /** diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/SessionHelper.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/SessionHelper.php index aac3f6dd7b..691dde3d21 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/SessionHelper.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Helper/SessionHelper.php @@ -13,6 +13,7 @@ namespace Symfony\Bundle\FrameworkBundle\Templating\Helper; use Symfony\Component\Templating\Helper\Helper; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; /** * SessionHelper provides read-only access to the session attributes. @@ -22,15 +23,24 @@ use Symfony\Component\HttpFoundation\Request; class SessionHelper extends Helper { protected $session; + protected $requestStack; /** * Constructor. * - * @param Request $request A Request instance + * @param Request|RequestStack $requestStack A RequestStack instance or a Request instance + * + * @deprecated since 2.5, passing a Request instance is deprecated and support for it will be removed in 3.0 */ - public function __construct(Request $request) + public function __construct($requestStack) { - $this->session = $request->getSession(); + if ($requestStack instanceof Request) { + $this->session = $requestStack->getSession(); + } elseif ($requestStack instanceof RequestStack) { + $this->requestStack = $requestStack; + } else { + throw new \InvalidArgumentException('RequestHelper only accepts a Request or a RequestStack instance.'); + } } /** @@ -43,22 +53,35 @@ class SessionHelper extends Helper */ public function get($name, $default = null) { - return $this->session->get($name, $default); + return $this->getSession()->get($name, $default); } public function getFlash($name, array $default = array()) { - return $this->session->getFlashBag()->get($name, $default); + return $this->getSession()->getFlashBag()->get($name, $default); } public function getFlashes() { - return $this->session->getFlashBag()->all(); + return $this->getSession()->getFlashBag()->all(); } public function hasFlash($name) { - return $this->session->getFlashBag()->has($name); + return $this->getSession()->getFlashBag()->has($name); + } + + private function getSession() + { + if (null === $this->session) { + if (!$this->requestStack->getMasterRequest()) { + throw new \LogicException('A Request must be available.'); + } + + $this->session = $this->requestStack->getMasterRequest()->getSession(); + } + + return $this->session; } /** diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php index fcaf935a54..5708ef716d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php @@ -12,23 +12,14 @@ namespace Symfony\Bundle\FrameworkBundle\Test; use Symfony\Bundle\FrameworkBundle\Client; -use Symfony\Component\Finder\Finder; -use Symfony\Component\HttpKernel\KernelInterface; /** * WebTestCase is the base class for functional tests. * * @author Fabien Potencier */ -abstract class WebTestCase extends \PHPUnit_Framework_TestCase +abstract class WebTestCase extends KernelTestCase { - protected static $class; - - /** - * @var KernelInterface - */ - protected static $kernel; - /** * Creates a Client. * @@ -39,139 +30,11 @@ abstract class WebTestCase extends \PHPUnit_Framework_TestCase */ protected static function createClient(array $options = array(), array $server = array()) { - if (null !== static::$kernel) { - static::$kernel->shutdown(); - } - - static::$kernel = static::createKernel($options); - static::$kernel->boot(); + static::bootKernel($options); $client = static::$kernel->getContainer()->get('test.client'); $client->setServerParameters($server); return $client; } - - /** - * Finds the directory where the phpunit.xml(.dist) is stored. - * - * If you run tests with the PHPUnit CLI tool, everything will work as expected. - * If not, override this method in your test classes. - * - * @return string The directory where phpunit.xml(.dist) is stored - * - * @throws \RuntimeException - */ - protected static function getPhpUnitXmlDir() - { - if (!isset($_SERVER['argv']) || false === strpos($_SERVER['argv'][0], 'phpunit')) { - throw new \RuntimeException('You must override the WebTestCase::createKernel() method.'); - } - - $dir = static::getPhpUnitCliConfigArgument(); - if ($dir === null && - (is_file(getcwd().DIRECTORY_SEPARATOR.'phpunit.xml') || - is_file(getcwd().DIRECTORY_SEPARATOR.'phpunit.xml.dist'))) { - $dir = getcwd(); - } - - // Can't continue - if ($dir === null) { - throw new \RuntimeException('Unable to guess the Kernel directory.'); - } - - if (!is_dir($dir)) { - $dir = dirname($dir); - } - - return $dir; - } - - /** - * Finds the value of the CLI configuration option. - * - * PHPUnit will use the last configuration argument on the command line, so this only returns - * the last configuration argument. - * - * @return string The value of the PHPUnit CLI configuration option - */ - private static function getPhpUnitCliConfigArgument() - { - $dir = null; - $reversedArgs = array_reverse($_SERVER['argv']); - foreach ($reversedArgs as $argIndex => $testArg) { - if (preg_match('/^-[^ \-]*c$/', $testArg) || $testArg === '--configuration') { - $dir = realpath($reversedArgs[$argIndex - 1]); - break; - } elseif (strpos($testArg, '--configuration=') === 0) { - $argPath = substr($testArg, strlen('--configuration=')); - $dir = realpath($argPath); - break; - } - } - - return $dir; - } - - /** - * Attempts to guess the kernel location. - * - * When the Kernel is located, the file is required. - * - * @return string The Kernel class name - * - * @throws \RuntimeException - */ - protected static function getKernelClass() - { - $dir = isset($_SERVER['KERNEL_DIR']) ? $_SERVER['KERNEL_DIR'] : static::getPhpUnitXmlDir(); - - $finder = new Finder(); - $finder->name('*Kernel.php')->depth(0)->in($dir); - $results = iterator_to_array($finder); - if (!count($results)) { - throw new \RuntimeException('Either set KERNEL_DIR in your phpunit.xml according to http://symfony.com/doc/current/book/testing.html#your-first-functional-test or override the WebTestCase::createKernel() method.'); - } - - $file = current($results); - $class = $file->getBasename('.php'); - - require_once $file; - - return $class; - } - - /** - * Creates a Kernel. - * - * Available options: - * - * * environment - * * debug - * - * @param array $options An array of options - * - * @return KernelInterface A KernelInterface instance - */ - protected static function createKernel(array $options = array()) - { - if (null === static::$class) { - static::$class = static::getKernelClass(); - } - - return new static::$class( - isset($options['environment']) ? $options['environment'] : 'test', - isset($options['debug']) ? $options['debug'] : true - ); - } - - /** - * Shuts the kernel down if it was used in the test. - */ - protected function tearDown() - { - if (null !== static::$kernel) { - static::$kernel->shutdown(); - } - } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTest.php index a8e64e3797..1b4c8d084a 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/AbstractDescriptorTest.php @@ -87,6 +87,21 @@ abstract class AbstractDescriptorTest extends \PHPUnit_Framework_TestCase return $this->getDescriptionTestData(ObjectsProvider::getContainerAliases()); } + /** @dataProvider getDescribeContainerParameterTestData */ + public function testDescribeContainerParameter($parameter, $expectedDescription, array $options) + { + $this->assertDescription($expectedDescription, $parameter, $options); + } + + public function getDescribeContainerParameterTestData() + { + $data = $this->getDescriptionTestData(ObjectsProvider::getContainerParameter()); + + array_push($data[0], array('parameter' => 'database_name')); + + return $data; + } + abstract protected function getDescriptor(); abstract protected function getFormat(); diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php index e6a2617a60..1d18431c9e 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Console/Descriptor/ObjectsProvider.php @@ -66,6 +66,16 @@ class ObjectsProvider ); } + public static function getContainerParameter() + { + $builder = new ContainerBuilder(); + $builder->setParameter('database_name', 'symfony'); + + return array( + 'parameter' => $builder + ); + } + public static function getContainerBuilders() { $builder1 = new ContainerBuilder(); diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php index 9e120160e5..6ff09c348c 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php @@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; class ControllerTest extends TestCase @@ -24,13 +25,16 @@ class ControllerTest extends TestCase $request->setLocale('fr'); $request->setRequestFormat('xml'); + $requestStack = new RequestStack(); + $requestStack->push($request); + $kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'); $kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) { return new Response($request->getRequestFormat().'--'.$request->getLocale()); })); $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface'); - $container->expects($this->at(0))->method('get')->will($this->returnValue($request)); + $container->expects($this->at(0))->method('get')->will($this->returnValue($requestStack)); $container->expects($this->at(1))->method('get')->will($this->returnValue($kernel)); $controller = new Controller(); diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php index 34d1eeac28..8cadf13612 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php @@ -19,7 +19,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\RedirectController; use Symfony\Bundle\FrameworkBundle\Tests\TestCase; /** - * @author Marcin Sikon + * @author Marcin Sikon */ class RedirectControllerTest extends TestCase { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php index b62ad8395d..2320871015 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -126,7 +126,10 @@ class ConfigurationTest extends \PHPUnit_Framework_TestCase 'validation' => array( 'enabled' => false, 'enable_annotations' => false, + 'static_method' => array('loadClassMetadata'), 'translation_domain' => 'validators', + 'strict_email' => false, + 'api' => 'auto', ), 'annotations' => array( 'cache' => 'file', diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php index c4eff93492..8bdb59f33d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php @@ -70,5 +70,14 @@ $container->loadFromExtension('framework', array( 'debug' => true, 'file_cache_dir' => '%kernel.cache_dir%/annotations', ), - 'ide' => 'file%%link%%format' + 'ide' => 'file%%link%%format', + 'request' => array( + 'formats' => array( + 'csv' => array( + 'text/csv', + 'text/plain', + ), + 'pdf' => 'application/pdf' + ) + ) )); diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml index 8fd3e9b652..da3a535546 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml @@ -13,6 +13,15 @@ + + + text/csv + text/plain + + + application/pdf + + loader.foo loader.bar diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml index d013063916..2e6f4c5388 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml @@ -55,3 +55,7 @@ framework: debug: true file_cache_dir: %kernel.cache_dir%/annotations ide: file%%link%%format + request: + formats: + csv: ['text/csv', 'text/plain'] + pdf: 'application/pdf' diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 94ba71d448..7bed3b042c 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -15,6 +15,8 @@ use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Bundle\FrameworkBundle\DependencyInjection\FrameworkExtension; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; +use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\Validator\Validation; abstract class FrameworkExtensionTest extends TestCase { @@ -145,6 +147,22 @@ abstract class FrameworkExtensionTest extends TestCase $this->assertNull($container->getDefinition('session.storage.php_bridge')->getArgument(0)); } + public function testRequest() + { + $container = $this->createContainerFromFile('full'); + + $this->assertTrue($container->hasDefinition('request.add_request_formats_listener'), '->registerRequestConfiguration() loads request.xml'); + $listenerDef = $container->getDefinition('request.add_request_formats_listener'); + $this->assertEquals(array('csv' => array('text/csv', 'text/plain'), 'pdf' => array('application/pdf')), $listenerDef->getArgument(0)); + } + + public function testEmptyRequestFormats() + { + $container = $this->createContainerFromFile('request'); + + $this->assertFalse($container->hasDefinition('request.add_request_formats_listener'), '->registerRequestConfiguration() does not load request.xml when no request formats are defined'); + } + public function testTemplating() { $container = $this->createContainerFromFile('full'); @@ -241,17 +259,42 @@ abstract class FrameworkExtensionTest extends TestCase { $container = $this->createContainerFromFile('full'); - $this->assertTrue($container->hasDefinition('validator'), '->registerValidationConfiguration() loads validator.xml'); - $this->assertTrue($container->hasDefinition('validator.mapping.loader.xml_files_loader'), '->registerValidationConfiguration() defines the XML loader'); - $this->assertTrue($container->hasDefinition('validator.mapping.loader.yaml_files_loader'), '->registerValidationConfiguration() defines the YAML loader'); - - $xmlFiles = $container->getParameter('validator.mapping.loader.xml_files_loader.mapping_files'); $ref = new \ReflectionClass('Symfony\Component\Form\Form'); - $this->assertContains( - realpath(dirname($ref->getFileName()).'/Resources/config/validation.xml'), - array_map('realpath', $xmlFiles), - '->registerValidationConfiguration() adds Form validation.xml to XML loader' - ); + $xmlMappings = array(realpath(dirname($ref->getFileName()).'/Resources/config/validation.xml')); + + $calls = $container->getDefinition('validator.builder')->getMethodCalls(); + + $this->assertCount(6, $calls); + $this->assertSame('setConstraintValidatorFactory', $calls[0][0]); + $this->assertEquals(array(new Reference('validator.validator_factory')), $calls[0][1]); + $this->assertSame('setTranslator', $calls[1][0]); + $this->assertEquals(array(new Reference('translator')), $calls[1][1]); + $this->assertSame('setTranslationDomain', $calls[2][0]); + $this->assertSame(array('%validator.translation_domain%'), $calls[2][1]); + $this->assertSame('addXmlMappings', $calls[3][0]); + $this->assertSame(array($xmlMappings), $calls[3][1]); + $this->assertSame('addMethodMapping', $calls[4][0]); + $this->assertSame(array('loadClassMetadata'), $calls[4][1]); + $this->assertSame('setMetadataCache', $calls[5][0]); + $this->assertEquals(array(new Reference('validator.mapping.cache.apc')), $calls[5][1]); + } + + public function testFullyConfiguredValidationService() + { + if (!extension_loaded('apc')) { + $this->markTestSkipped('The apc extension is not available.'); + } + + $container = $this->createContainerFromFile('full'); + + $this->assertInstanceOf('Symfony\Component\Validator\ValidatorInterface', $container->get('validator')); + } + + public function testValidationService() + { + $container = $this->createContainerFromFile('validation_annotations'); + + $this->assertInstanceOf('Symfony\Component\Validator\ValidatorInterface', $container->get('validator')); } public function testAnnotations() @@ -273,15 +316,14 @@ abstract class FrameworkExtensionTest extends TestCase { $container = $this->createContainerFromFile('validation_annotations'); - $this->assertTrue($container->hasDefinition('validator.mapping.loader.annotation_loader'), '->registerValidationConfiguration() defines the annotation loader'); - $loaders = $container->getDefinition('validator.mapping.loader.loader_chain')->getArgument(0); - $found = false; - foreach ($loaders as $loader) { - if ('validator.mapping.loader.annotation_loader' === (string) $loader) { - $found = true; - } - } - $this->assertTrue($found, 'validator.mapping.loader.annotation_loader is added to the loader chain.'); + $calls = $container->getDefinition('validator.builder')->getMethodCalls(); + + $this->assertCount(6, $calls); + $this->assertSame('enableAnnotationMapping', $calls[4][0]); + $this->assertEquals(array(new Reference('annotation_reader')), $calls[4][1]); + $this->assertSame('addMethodMapping', $calls[5][0]); + $this->assertSame(array('loadClassMetadata'), $calls[5][1]); + // no cache this time } public function testValidationPaths() @@ -292,14 +334,49 @@ abstract class FrameworkExtensionTest extends TestCase 'kernel.bundles' => array('TestBundle' => 'Symfony\Bundle\FrameworkBundle\Tests\TestBundle'), )); - $yamlArgs = $container->getParameter('validator.mapping.loader.yaml_files_loader.mapping_files'); - $this->assertCount(1, $yamlArgs); - $this->assertStringEndsWith('TestBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'validation.yml', $yamlArgs[0]); + $calls = $container->getDefinition('validator.builder')->getMethodCalls(); + + $this->assertCount(7, $calls); + $this->assertSame('addXmlMappings', $calls[3][0]); + $this->assertSame('addYamlMappings', $calls[4][0]); + $this->assertSame('enableAnnotationMapping', $calls[5][0]); + $this->assertSame('addMethodMapping', $calls[6][0]); + $this->assertSame(array('loadClassMetadata'), $calls[6][1]); + + $xmlMappings = $calls[3][1][0]; + $this->assertCount(2, $xmlMappings); + $this->assertStringEndsWith('Component'.DIRECTORY_SEPARATOR.'Form/Resources/config/validation.xml', $xmlMappings[0]); + $this->assertStringEndsWith('TestBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'validation.xml', $xmlMappings[1]); + + $yamlMappings = $calls[4][1][0]; + $this->assertCount(1, $yamlMappings); + $this->assertStringEndsWith('TestBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'validation.yml', $yamlMappings[0]); + } + + public function testValidationNoStaticMethod() + { + $container = $this->createContainerFromFile('validation_no_static_method'); + + $calls = $container->getDefinition('validator.builder')->getMethodCalls(); + + $this->assertCount(4, $calls); + $this->assertSame('addXmlMappings', $calls[3][0]); + // no cache, no annotations, no static methods + } + + public function testValidationApiVersion() + { + $container = $this->createContainerFromFile('validation_2_4_api'); + + $calls = $container->getDefinition('validator.builder')->getMethodCalls(); - $xmlArgs = $container->getParameter('validator.mapping.loader.xml_files_loader.mapping_files'); - $this->assertCount(2, $xmlArgs); - $this->assertStringEndsWith('Component'.DIRECTORY_SEPARATOR.'Form/Resources/config/validation.xml', $xmlArgs[0]); - $this->assertStringEndsWith('TestBundle'.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'validation.xml', $xmlArgs[1]); + $this->assertCount(6, $calls); + $this->assertSame('addXmlMappings', $calls[3][0]); + $this->assertSame('addMethodMapping', $calls[4][0]); + $this->assertSame(array('loadClassMetadata'), $calls[4][1]); + $this->assertSame('setApiVersion', $calls[5][0]); + $this->assertSame(array(Validation::API_VERSION_2_4), $calls[5][1]); + // no cache, no annotations } public function testFormsCanBeEnabledWithoutCsrfProtection() diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php index 8d395760e8..7cc8ca22d9 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/Controller/SessionController.php @@ -11,15 +11,15 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\DependencyInjection\ContainerAware; class SessionController extends ContainerAware { - public function welcomeAction($name=null) + public function welcomeAction(Request $request, $name=null) { - $request = $this->container->get('request'); $session = $request->getSession(); // new session case @@ -40,25 +40,23 @@ class SessionController extends ContainerAware return new Response(sprintf('Welcome back %s, nice to meet you.', $name)); } - public function logoutAction() + public function logoutAction(Request $request) { - $request = $this->container->get('request')->getSession('session')->invalidate(); + $request->getSession('session')->invalidate(); return new Response('Session cleared.'); } - public function setFlashAction($message) + public function setFlashAction(Request $request, $message) { - $request = $this->container->get('request'); $session = $request->getSession(); $session->getFlashBag()->set('notice', $message); return new RedirectResponse($this->container->get('router')->generate('session_showflash')); } - public function showFlashAction() + public function showFlashAction(Request $request) { - $request = $this->container->get('request'); $session = $request->getSession(); if ($session->getFlashBag()->has('notice')) { diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableUrlMatcherTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableUrlMatcherTest.php index fe8fc709a6..282f860262 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableUrlMatcherTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Routing/RedirectableUrlMatcherTest.php @@ -38,7 +38,7 @@ class RedirectableUrlMatcherTest extends \PHPUnit_Framework_TestCase ); } - public function testSchemeRedirect() + public function testSchemeRedirectBC() { $coll = new RouteCollection(); $coll->add('foo', new Route('/foo', array(), array('_scheme' => 'https'))); @@ -57,4 +57,24 @@ class RedirectableUrlMatcherTest extends \PHPUnit_Framework_TestCase $matcher->match('/foo') ); } + + public function testSchemeRedirect() + { + $coll = new RouteCollection(); + $coll->add('foo', new Route('/foo', array(), array(), array(), '', array('https'))); + + $matcher = new RedirectableUrlMatcher($coll, $context = new RequestContext()); + + $this->assertEquals(array( + '_controller' => 'Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction', + 'path' => '/foo', + 'permanent' => true, + 'scheme' => 'https', + 'httpPort' => $context->getHttpPort(), + 'httpsPort' => $context->getHttpsPort(), + '_route' => 'foo', + ), + $matcher->match('/foo') + ); + } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/RequestHelperTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/RequestHelperTest.php index d3d4f22385..d626e63e41 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/RequestHelperTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/RequestHelperTest.php @@ -12,26 +12,24 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper; class RequestHelperTest extends \PHPUnit_Framework_TestCase { - protected $request; + protected $requestStack; protected function setUp() { - $this->request = new Request(); - $this->request->initialize(array('foobar' => 'bar')); - } - - protected function tearDown() - { - $this->request = null; + $this->requestStack = new RequestStack(); + $request = new Request(); + $request->initialize(array('foobar' => 'bar')); + $this->requestStack->push($request); } public function testGetParameter() { - $helper = new RequestHelper($this->request); + $helper = new RequestHelper($this->requestStack); $this->assertEquals('bar', $helper->getParameter('foobar')); $this->assertEquals('foo', $helper->getParameter('bar', 'foo')); @@ -41,14 +39,14 @@ class RequestHelperTest extends \PHPUnit_Framework_TestCase public function testGetLocale() { - $helper = new RequestHelper($this->request); + $helper = new RequestHelper($this->requestStack); $this->assertEquals('en', $helper->getLocale()); } public function testGetName() { - $helper = new RequestHelper($this->request); + $helper = new RequestHelper($this->requestStack); $this->assertEquals('request', $helper->getName()); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Translation/TranslatorTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Translation/TranslatorTest.php index 614f6dbc2d..5253fcde12 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Translation/TranslatorTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Translation/TranslatorTest.php @@ -12,6 +12,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Translation; use Symfony\Bundle\FrameworkBundle\Translation\Translator; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\Translation\MessageCatalogue; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Translation\MessageSelector; @@ -86,43 +87,46 @@ class TranslatorTest extends \PHPUnit_Framework_TestCase $this->assertEquals('other choice 1 (PT-BR)', $translator->transChoice('other choice', 1)); } - public function testGetLocale() + /** + * @dataProvider getGetLocaleData + */ + public function testGetLocale($inRequestScope) { - $request = $this->getMock('Symfony\Component\HttpFoundation\Request'); - - $request - ->expects($this->once()) - ->method('getLocale') - ->will($this->returnValue('en')) - ; + $requestStack = new RequestStack(); + if ($inRequestScope) { + $request = $this->getMock('Symfony\Component\HttpFoundation\Request'); + $request + ->expects($this->once()) + ->method('getLocale') + ->will($this->returnValue('en')) + ; + + $requestStack->push($request); + } $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface'); - - $container - ->expects($this->exactly(2)) - ->method('isScopeActive') - ->with('request') - ->will($this->onConsecutiveCalls(false, true)) - ; - - $container - ->expects($this->once()) - ->method('has') - ->with('request') - ->will($this->returnValue(true)) - ; - $container ->expects($this->once()) ->method('get') - ->with('request') - ->will($this->returnValue($request)) + ->with('request_stack') + ->will($this->returnValue($requestStack)) ; $translator = new Translator($container, new MessageSelector()); - $this->assertNull($translator->getLocale()); - $this->assertSame('en', $translator->getLocale()); + if ($inRequestScope) { + $this->assertSame('en', $translator->getLocale()); + } else { + $this->assertNull($translator->getLocale()); + } + } + + public function getGetLocaleData() + { + return array( + array(false), + array(true), + ); } protected function getCatalogue($locale, $messages) diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php index b4b3acdfb4..ebb4d9d6d7 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php @@ -65,8 +65,8 @@ class Translator extends BaseTranslator */ public function getLocale() { - if (null === $this->locale && $this->container->isScopeActive('request') && $this->container->has('request')) { - $this->locale = $this->container->get('request')->getLocale(); + if (null === $this->locale && $request = $this->container->get('request_stack')->getCurrentRequest()) { + $this->locale = $request->getLocale(); } return $this->locale; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/composer.json b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/composer.json index bde2fcaaf7..894f1f7869 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -19,9 +19,9 @@ "php": ">=5.3.3", "symfony/dependency-injection" : "~2.2", "symfony/config" : "~2.4", - "symfony/event-dispatcher": "~2.1", + "symfony/event-dispatcher": "~2.5", "symfony/http-foundation": "~2.4", - "symfony/http-kernel": "~2.4", + "symfony/http-kernel": "~2.5", "symfony/filesystem": "~2.3", "symfony/routing": "~2.2", "symfony/security-core": "~2.4", @@ -52,7 +52,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php index 66f50f119c..c45837d6ce 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php @@ -12,7 +12,7 @@ namespace Symfony\Bundle\SecurityBundle\DependencyInjection; use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AbstractFactory; - +use Symfony\Component\Security\Core\Authorization\AccessDecisionManager; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\Config\Definition\ConfigurationInterface; @@ -65,7 +65,7 @@ class MainConfiguration implements ConfigurationInterface ->arrayNode('access_decision_manager') ->addDefaultsIfNotSet() ->children() - ->scalarNode('strategy')->defaultValue('affirmative')->end() + ->scalarNode('strategy')->defaultValue(AccessDecisionManager::STRATEGY_AFFIRMATIVE)->end() ->booleanNode('allow_if_all_abstain')->defaultFalse()->end() ->booleanNode('allow_if_equal_granted_denied')->defaultTrue()->end() ->end() @@ -201,6 +201,10 @@ class MainConfiguration implements ConfigurationInterface $firewallNodeBuilder ->scalarNode('pattern')->end() ->scalarNode('host')->end() + ->arrayNode('methods') + ->beforeNormalization()->ifString()->then(function ($v) { return preg_split('/\s*,\s*/', $v); })->end() + ->prototype('scalar')->end() + ->end() ->booleanNode('security')->defaultTrue()->end() ->scalarNode('request_matcher')->end() ->scalarNode('access_denied_url')->end() diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index a9b9b0e92a..d9ad0c2f73 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -254,7 +254,8 @@ class SecurityExtension extends Extension } elseif (isset($firewall['pattern']) || isset($firewall['host'])) { $pattern = isset($firewall['pattern']) ? $firewall['pattern'] : null; $host = isset($firewall['host']) ? $firewall['host'] : null; - $matcher = $this->createRequestMatcher($container, $pattern, $host); + $methods = isset($firewall['methods']) ? $firewall['methods'] : array(); + $matcher = $this->createRequestMatcher($container, $pattern, $host, $methods); } // Security disabled? diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Templating/Helper/LogoutUrlHelper.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Templating/Helper/LogoutUrlHelper.php index 6a2212ee7d..6704816a02 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Templating/Helper/LogoutUrlHelper.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Templating/Helper/LogoutUrlHelper.php @@ -106,7 +106,7 @@ class LogoutUrlHelper extends Helper $parameters = null !== $csrfTokenManager ? array($csrfParameter => (string) $csrfTokenManager->getToken($csrfTokenId)) : array(); if ('/' === $logoutPath[0]) { - $request = $this->container->get('request'); + $request = $this->container->get('request_stack')->getCurrentRequest(); $url = UrlGeneratorInterface::ABSOLUTE_URL === $referenceType ? $request->getUriForPath($logoutPath) : $request->getBasePath().$logoutPath; diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php index b89214fa31..3165b2f34b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php @@ -117,6 +117,7 @@ abstract class CompleteConfigurationTest extends \PHPUnit_Framework_TestCase array( '/test', 'foo\\.example\\.org', + array('GET', 'POST'), ), ), $matchers); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/container1.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/container1.php index e2e523552c..9a15ea5fd7 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/container1.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/php/container1.php @@ -74,6 +74,7 @@ $container->loadFromExtension('security', array( 'host' => array( 'pattern' => '/test', 'host' => 'foo\\.example\\.org', + 'methods' => array('GET', 'POST'), 'anonymous' => true, 'http_basic' => true, ), diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/xml/container1.xml b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/xml/container1.xml index 04b19a3b88..2368aa312d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/xml/container1.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/xml/container1.xml @@ -57,7 +57,7 @@ - + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/yml/container1.yml b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/yml/container1.yml index 76c2792fe7..9bfe29230b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/yml/container1.yml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Fixtures/yml/container1.yml @@ -56,6 +56,7 @@ security: host: pattern: /test host: foo\.example\.org + methods: [GET,POST] anonymous: true http_basic: true diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LocalizedController.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LocalizedController.php index 381b13d7dd..8db3200d10 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LocalizedController.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LocalizedController.php @@ -12,23 +12,24 @@ namespace Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller; use Symfony\Component\Security\Core\SecurityContext; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DependencyInjection\ContainerAware; class LocalizedController extends ContainerAware { - public function loginAction() + public function loginAction(Request $request) { // get the login error if there is one - if ($this->container->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { - $error = $this->container->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR); + if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { + $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR); } else { - $error = $this->container->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); + $error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); } return $this->container->get('templating')->renderResponse('FormLoginBundle:Localized:login.html.twig', array( // last username entered by the user - 'last_username' => $this->container->get('request')->getSession()->get(SecurityContext::LAST_USERNAME), + 'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME), 'error' => $error, )); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php index cec298c891..0f71b3a70d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php @@ -12,24 +12,25 @@ namespace Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\FormLoginBundle\Controller; use Symfony\Component\Security\Core\Exception\AccessDeniedException; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\SecurityContext; use Symfony\Component\DependencyInjection\ContainerAware; class LoginController extends ContainerAware { - public function loginAction() + public function loginAction(Request $request) { // get the login error if there is one - if ($this->container->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { - $error = $this->container->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR); + if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { + $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR); } else { - $error = $this->container->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); + $error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); } return $this->container->get('templating')->renderResponse('FormLoginBundle:Login:login.html.twig', array( // last username entered by the user - 'last_username' => $this->container->get('request')->getSession()->get(SecurityContext::LAST_USERNAME), + 'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME), 'error' => $error, )); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/composer.json b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/composer.json index 0d8aab43c0..c54213c9bf 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/composer.json @@ -34,7 +34,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php index aa01ce6e7b..95c892cb04 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Command/LintCommand.php @@ -11,141 +11,68 @@ namespace Symfony\Bundle\TwigBundle\Command; -use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Bridge\Twig\Command\LintCommand as BaseLintCommand; +use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\Finder\Finder; /** * Command that will validate your template syntax and output encountered errors. * * @author Marc Weistroff + * @author Jérôme Tamarelle */ -class LintCommand extends ContainerAwareCommand +class LintCommand extends BaseLintCommand implements ContainerAwareInterface { - protected function configure() + /** + * @var ContainerInterface|null + */ + private $container; + + /** + * {@inheritdoc} + */ + public function setContainer(ContainerInterface $container = null) { - $this - ->setName('twig:lint') - ->setDescription('Lints a template and outputs encountered errors') - ->addArgument('filename') - ->setHelp(<<%command.name% command lints a template and outputs to stdout -the first encountered syntax error. - -php %command.full_name% filename - -The command gets the contents of filename and validates its syntax. - -php %command.full_name% dirname - -The command finds all twig templates in dirname and validates the syntax -of each Twig template. - -php %command.full_name% @AcmeMyBundle - -The command finds all twig templates in the AcmeMyBundle bundle and validates -the syntax of each Twig template. - -cat filename | php %command.full_name% - -The command gets the template contents from stdin and validates its syntax. -EOF - ) - ; + $this->container = $container; } - protected function execute(InputInterface $input, OutputInterface $output) + /** + * {@inheritdoc} + */ + protected function getTwigEnvironment() { - $twig = $this->getContainer()->get('twig'); - $template = null; - $filename = $input->getArgument('filename'); - - if (!$filename) { - if (0 !== ftell(STDIN)) { - throw new \RuntimeException("Please provide a filename or pipe template content to stdin."); - } - - while (!feof(STDIN)) { - $template .= fread(STDIN, 1024); - } - - return $this->validateTemplate($twig, $output, $template); - } - - if (0 !== strpos($filename, '@') && !is_readable($filename)) { - throw new \RuntimeException(sprintf('File or directory "%s" is not readable', $filename)); - } - - $files = array(); - if (is_file($filename)) { - $files = array($filename); - } elseif (is_dir($filename)) { - $files = Finder::create()->files()->in($filename)->name('*.twig'); - } else { - $dir = $this->getApplication()->getKernel()->locateResource($filename); - $files = Finder::create()->files()->in($dir)->name('*.twig'); - } - - $errors = 0; - foreach ($files as $file) { - $errors += $this->validateTemplate($twig, $output, file_get_contents($file), $file); - } - - return $errors > 0 ? 1 : 0; + return $this->container->get('twig'); } - protected function validateTemplate(\Twig_Environment $twig, OutputInterface $output, $template, $file = null) + /** + * {@inheritdoc} + */ + protected function configure() { - try { - $twig->parse($twig->tokenize($template, $file ? (string) $file : null)); - $output->writeln('OK'.($file ? sprintf(' in %s', $file) : '')); - } catch (\Twig_Error $e) { - $this->renderException($output, $template, $e, $file); + parent::configure(); - return 1; - } - - return 0; - } + $this + ->setHelp( + $this->getHelp().<<getTemplateLine(); - $lines = $this->getContext($template, $line); - if ($file) { - $output->writeln(sprintf("KO in %s (line %s)", $file, $line)); - } else { - $output->writeln(sprintf("KO (line %s)", $line)); - } +Or all template files in a bundle: - foreach ($lines as $no => $code) { - $output->writeln(sprintf( - "%s %-6s %s", - $no == $line ? '>>' : ' ', - $no, - $code - )); - if ($no == $line) { - $output->writeln(sprintf('>> %s ', $exception->getRawMessage())); - } - } +php %command.full_name% @AcmeDemoBundle +EOF + ) + ; } - protected function getContext($template, $line, $context = 3) + protected function findFiles($filename) { - $lines = explode("\n", $template); - - $position = max(0, $line - $context); - $max = min(count($lines), $line - 1 + $context); + if (0 === strpos($filename, '@')) { + $dir = $this->getApplication()->getKernel()->locateResource($filename); - $result = array(); - while ($position < $max) { - $result[$position + 1] = $lines[$position]; - $position++; + return Finder::create()->files()->in($dir)->name('*.twig'); } - return $result; + return parent::findFiles($filename); } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php index 9557fb4aba..e0acb56564 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php @@ -70,17 +70,13 @@ class ExceptionController */ protected function getAndCleanOutputBuffering($startObLevel) { - // ob_get_level() never returns 0 on some Windows configurations, so if - // the level is the same two times in a row, the loop should be stopped. - $previousObLevel = null; - $currentContent = ''; - - while (($obLevel = ob_get_level()) > $startObLevel && $obLevel !== $previousObLevel) { - $previousObLevel = $obLevel; - $currentContent .= ob_get_clean(); + if (ob_get_level() <= $startObLevel) { + return ''; } - return $currentContent; + Response::closeOutputBuffers($startObLevel + 1, true); + + return ob_get_clean(); } /** diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php index 20834d7fa2..05f8b0665e 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Extension/AssetsExtension.php @@ -12,6 +12,7 @@ namespace Symfony\Bundle\TwigBundle\Extension; use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\Routing\RequestContext; /** * Twig extension for Symfony assets helper @@ -21,10 +22,12 @@ use Symfony\Component\DependencyInjection\ContainerInterface; class AssetsExtension extends \Twig_Extension { private $container; + private $context; - public function __construct(ContainerInterface $container) + public function __construct(ContainerInterface $container, RequestContext $requestContext) { $this->container = $container; + $this->context = $requestContext; } /** @@ -45,14 +48,22 @@ class AssetsExtension extends \Twig_Extension * * Absolute paths (i.e. http://...) are returned unmodified. * - * @param string $path A public path - * @param string $packageName The name of the asset package to use + * @param string $path A public path + * @param string $packageName The name of the asset package to use + * @param bool $absolute Whether to return an absolute URL or a relative one + * @param string|bool|null $version A specific version * * @return string A public path which takes into account the base path and URL path */ - public function getAssetUrl($path, $packageName = null) + public function getAssetUrl($path, $packageName = null, $absolute = false, $version = null) { - return $this->container->get('templating.helper.assets')->getUrl($path, $packageName); + $url = $this->container->get('templating.helper.assets')->getUrl($path, $packageName, $version); + + if (!$absolute) { + return $url; + } + + return $this->ensureUrlIsAbsolute($url); } /** @@ -76,4 +87,33 @@ class AssetsExtension extends \Twig_Extension { return 'assets'; } + + /** + * Ensures an URL is absolute, if possible. + * + * @param string $url The URL that has to be absolute + * + * @return string The absolute URL + */ + private function ensureUrlIsAbsolute($url) + { + if (false !== strpos($url, '://') || 0 === strpos($url, '//')) { + return $url; + } + + if ('' === $host = $this->context->getHost()) { + return $url; + } + + $scheme = $this->context->getScheme(); + $port = ''; + + if ('http' === $scheme && 80 != $this->context->getHttpPort()) { + $port = ':'.$this->context->getHttpPort(); + } elseif ('https' === $scheme && 443 != $this->context->getHttpsPort()) { + $port = ':'.$this->context->getHttpsPort(); + } + + return $scheme.'://'.$host.$port.$url; + } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index 5efbe9d6d4..945bd876a0 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -66,6 +66,7 @@ + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/layout.html.twig b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/layout.html.twig index 49f997b504..6940982705 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/layout.html.twig +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/layout.html.twig @@ -4,8 +4,8 @@ {% block title %}{% endblock %} - - + + {% block head %}{% endblock %} diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/composer.json b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/composer.json index 45a0c9961f..49e32a193e 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/composer.json +++ b/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/composer.json @@ -17,13 +17,15 @@ ], "require": { "php": ">=5.3.3", - "symfony/twig-bridge": "~2.2", + "symfony/twig-bridge": "~2.5", "symfony/http-kernel": "~2.1" }, "require-dev": { "symfony/stopwatch": "~2.2", "symfony/dependency-injection": "~2.0", - "symfony/config": "~2.2" + "symfony/config": "~2.2", + "symfony/routing": "~2.1", + "symfony/templating": "~2.1" }, "autoload": { "psr-0": { "Symfony\\Bundle\\TwigBundle\\": "" } @@ -32,7 +34,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } } } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php index cd3e17c7f5..a106feae99 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php +++ b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php @@ -232,7 +232,7 @@ class ProfilerController $session->getFlashBag()->setAll($session->getFlashBag()->peekAll()); } - if (null === $token) { + if ('empty' === $token || null === $token) { return new Response('', 200, array('Content-Type' => 'text/html')); } diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/config/profiler.xml b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/config/profiler.xml index 874ba8b216..ed7e923f0d 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/config/profiler.xml +++ b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/config/profiler.xml @@ -8,6 +8,7 @@ Symfony\Bundle\WebProfilerBundle\Controller\ProfilerController Symfony\Bundle\WebProfilerBundle\Controller\RouterController Symfony\Bundle\WebProfilerBundle\Controller\ExceptionController + Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension @@ -30,5 +31,9 @@ %kernel.debug% + + + + diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/events.html.twig b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/events.html.twig index 6072ff69f2..0607aa8a3b 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/events.html.twig +++ b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/events.html.twig @@ -36,9 +36,9 @@ {% endfor %} - {% if collector.notcalledlisteners %} -

          Not Called Listeners

          +

          Not Called Listeners

          + {% if collector.notcalledlisteners %} @@ -52,6 +52,17 @@ {% endfor %}
          Event name
          + {% else %} +

          + No uncalled listeners. +

          +

          + + All listeners were called for this request or an error occurred + when trying to collect uncalled listeners (in which case check the + logs to get more information). + +

          {% endif %} {% endblock %} diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig index 1bc7cfbbef..6d6d07d240 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig +++ b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/form.html.twig @@ -5,7 +5,7 @@ {% block toolbar %} {% if collector.data|length %} {% set icon %} - Forms + Forms {% if collector.data.nb_errors %}{{ collector.data.nb_errors }}{% else %}{{ collector.data.forms|length }}{% endif %} {% endset %} @@ -29,6 +29,16 @@ /*background: #F6F6F6;*/ margin: -30px -40px -40px; } + .toggle-icon { + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgBAMAAADpp+X/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QweDgwx4LcKwAAAABVQTFRFAAAA////////////////ZmZm////bvjBwAAAAAV0Uk5TABZwsuCVEUjgAAAAAWJLR0QF+G/pxwAAAE1JREFUGNNjSHMSYGBgUEljSGYAAzMGBwiDhUEBwmBiEIAwGBmwgTQgQGWgA7h2uIFwK+CWwp1BpHvYEqDuATEYkBlY3IOmBq6dCPcAAIT5Eg2IksjQAAAAAElFTkSuQmCC") no-repeat top left #5eb5e0; + } + .closed .toggle-icon, .closed.toggle-icon { + background-position: bottom left; + } + .toggle-icon.empty { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAZgBmAGYHukptAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QweDhIf6CA40AAAAFRJREFUOMvtk7ENACEMA61vfx767MROWfO+AdGBHlNyTZrYUZRYDBII4NWE1pNdpFarfgLUbpDaBEgBYRiEVjsvDLa1l6O4Z3wkFWN+OfLKdpisOH/TlICzukmUJwAAAABJRU5ErkJggg=="); + } .tree { width: 230px; padding: 10px; @@ -45,45 +55,127 @@ padding: 0; width: 100%; } - .tree a { - text-decoration: none; - display: block; - padding: 5px 7px; + .tree .tree-inner { + width: 100%; + padding: 5px 7px 5px 22px; border-radius: 6px; color: #313131; + cursor: pointer; + position: relative; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .tree a { + text-decoration: none; } - .tree ul ul a { - padding-left: 22px; + .tree .toggle-button { + /* provide a bigger clickable area than just 10x10px */ + width: 16px; + height: 16px; + /* vertically center the button */ + position: absolute; + top: 50%; + margin-top: -8px; + margin-left: -18px; } - .tree ul ul ul a { + .tree .toggle-icon { + width: 10px; + height: 10px; + /* position the icon in the center of the clickable area */ + margin-left: 3px; + margin-top: 3px; + background-size: 10px 20px; + background-color: #ccc; + } + .tree .toggle-icon.empty { + width: 10px; + height: 10px; + position: absolute; + top: 50%; + margin-top: -5px; + margin-left: -15px; + background-size: 10px 10px; + } + .tree ul ul .tree-inner { padding-left: 37px; } - .tree ul ul ul ul a { + .tree ul ul ul .tree-inner { padding-left: 52px; } - .tree ul ul ul ul ul a { + .tree ul ul ul ul .tree-inner { padding-left: 67px; } - .tree a:hover { + .tree ul ul ul ul ul .tree-inner { + padding-left: 82px; + } + .tree .tree-inner:hover { background: #dfdfdf; } - .tree a.active, a.active:hover { + .tree .tree-inner.active, .tree .tree-inner.active:hover { background: #dfdfdf; font-weight: bold; color: #313131; } + .tree .tree-inner.active .toggle-icon, .tree .tree-inner:hover .toggle-icon, .tree .tree-inner.active:hover .toggle-icon { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgBAMAAADpp+X/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QweDhEYXWn+sAAAABhQTFRFAAAA39/f39/f39/f39/fZmZm39/f////gc3YPwAAAAV0Uk5TAAtAc6ZeVyCYAAAAAWJLR0QF+G/pxwAAAE1JREFUGNNjSHMSYGBgUEljSGYAAzMGBwiDhUEBwmBiEIAwGBmwgXIgQGWgA7h2uIFwK+CWwp1BpHvYC6DuATEYkBlY3IOmBq6dCPcAADqLE4MnBi/fAAAAAElFTkSuQmCC"); + background-color: #aaa; + } + .tree .tree-inner.active .toggle-icon.empty, .tree .tree-inner:hover .toggle-icon.empty, .tree .tree-inner.active:hover .toggle-icon.empty { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QweDhoucSey4gAAABVQTFRFAAAA39/f39/f39/f39/fZmZm39/fD5Dx2AAAAAV0Uk5TAAtAc6ZeVyCYAAAAAWJLR0QF+G/pxwAAADJJREFUCNdjSHMSYGBgUEljSGYAAzMGBwiDhUEBwmBiEIAwGBnIA3DtcAPhVsAthTkDAFOfBKW9C1iqAAAAAElFTkSuQmCC"); + } .tree-details { border-left: 1px solid #dfdfdf; background: white; margin-left: 250px; padding: 30px 40px 40px; } + .tree-details h3 { + position: relative; + } + .tree-details .toggle-icon { + width: 16px; + height: 16px; + /* vertically center the button */ + position: absolute; + top: 50%; + margin-top: -9px; + margin-left: 6px; + } .form-type { color: #999999; } .hidden { display: none; } + .badge-error { + float: right; + background: #a33; + color: #fff; + padding: 1px 4px; + font-size: 10px; + font-weight: bold; + vertical-align: middle; + border-radius: 6px; + } + .errors h3 { + color: #800; + } + .errors th, .errors td { + border-color: #800; + } + .errors th { + background: #a33; + color: #fff; + } + .errors .toggle-icon { + background-color: #a33; + } + h3 a, h3 a:hover, h3 a:focus { + color: inherit; + text-decoration: inherit; + } {% if collector.data.forms|length %} @@ -93,13 +185,13 @@
            {% for formName, formData in collector.data.forms %} - {{ form_tree_entry(formName, formData) }} + {{ form_tree_entry(formName, formData, true) }} {% endfor %}
          {% for formName, formData in collector.data.forms %} - {{ form_tree_details(formName, formData) }} + {{ form_tree_details(formName, formData, collector.data.forms_by_hash) }} {% endfor %} {% else %} @@ -107,86 +199,245 @@ {% endif %} {% endblock %} -{% macro form_tree_entry(name, data) %} +{% macro form_tree_entry(name, data, expanded) %}
        • - {{ name }} +
          + {% if data.children is not empty %} + + {% else %} +
          + {% endif %} + {{ name }} + {% if data.errors is defined and data.errors|length > 0 %} +
          {{ data.errors|length }}
          + {% endif %} +
          {% if data.children is not empty %} -
            + {% endif %} {% endmacro %} -{% macro form_tree_details(name, data) %} -
            +{% macro form_tree_details(name, data, forms_by_hash) %} +

            {{ name }} {% if data.type_class is defined %} @@ -195,56 +446,95 @@

            {% if data.errors is defined and data.errors|length > 0 %} -

            Errors

            - - - - - - - {% for error in data.errors %} - - - - - {% endfor %} -
            MessageCause
            {{ error.message }}Unknown.
            +
            +

            + + Errors + + +

            + + + + + + + + {% for error in data.errors %} + + + + + + {% endfor %} +
            MessageOriginCause
            {{ error.message }} + {% if error.origin is empty %} + This form. + {% elseif forms_by_hash[error.origin] is not defined %} + Unknown. + {% else %} + {{ forms_by_hash[error.origin].name }} + {% endif %} + + {% if error.cause is empty %} + Unknown. + {% elseif error.cause.root is defined %} + Constraint Violation
            +
            {{ error.cause.root }}{% if error.cause.path is not empty %}{% if error.cause.path|first != '[' %}.{% endif %}{{ error.cause.path }}{% endif %} = {{ error.cause.value }}
            + {% else %} +
            {{ error.cause }}
            + {% endif %} +
            +
            {% endif %} {% if data.default_data is defined %} -

            Default Data

            - - - - - - - - - - - - - - -
            Model Format - {% if data.default_data.model is defined %} -
            {{ data.default_data.model }}
            - {% else %} - same as normalized format - {% endif %} -
            Normalized Format
            {{ data.default_data.norm }}
            View Format - {% if data.default_data.view is defined %} -
            {{ data.default_data.view }}
            - {% else %} - same as normalized format - {% endif %} -
            +

            + + Default Data + + +

            + +
            + + + + + + + + + + + + + +
            Model Format + {% if data.default_data.model is defined %} +
            {{ data.default_data.model }}
            + {% else %} + same as normalized format + {% endif %} +
            Normalized Format
            {{ data.default_data.norm }}
            View Format + {% if data.default_data.view is defined %} +
            {{ data.default_data.view }}
            + {% else %} + same as normalized format + {% endif %} +
            +
            {% endif %} {% if data.submitted_data is defined %} -

            Submitted Data

            - +

            + + Submitted Data + + +

            + +
            {% if data.submitted_data.norm is defined %} @@ -275,73 +565,95 @@ {% else %}

            This form was not submitted.

            {% endif %} + {% endif %} {% if data.passed_options is defined %} -

            Passed Options

            - - {% if data.passed_options|length %} -
            - - - - - - {% for option, value in data.passed_options %} - - - - - - {% endfor %} -
            OptionPassed ValueResolved Value
            {{ option }}
            {{ value }}
            - {% if data.resolved_options[option] is sameas(value) %} - same as passed value - {% else %} -
            {{ data.resolved_options[option] }}
            - {% endif %} -
            - {% else %} -

            No options where passed when constructing this form.

            - {% endif %} +

            + + Passed Options + + +

            + +
            + {% if data.passed_options|length %} + + + + + + + {% for option, value in data.passed_options %} + + + + + + {% endfor %} +
            OptionPassed ValueResolved Value
            {{ option }}
            {{ value }}
            + {% if data.resolved_options[option] is sameas(value) %} + same as passed value + {% else %} +
            {{ data.resolved_options[option] }}
            + {% endif %} +
            + {% else %} +

            No options where passed when constructing this form.

            + {% endif %} +
            {% endif %} {% if data.resolved_options is defined %} -

            Resolved Options

            - - - - - - - {% for option, value in data.resolved_options %} - - - - - {% endfor %} -
            OptionValue
            {{ option }}
            {{ value }}
            +

            + + Resolved Options + + +

            + + {% endif %} {% if data.view_vars is defined %} -

            View Variables

            - - - - - - - {% for variable, value in data.view_vars %} - - - - - {% endfor %} -
            VariableValue
            {{ variable }}
            {{ value }}
            +

            + + View Variables + + +

            + + {% endif %}
            {% for childName, childData in data.children %} - {{ _self.form_tree_details(childName, childData) }} + {{ _self.form_tree_details(childName, childData, forms_by_hash) }} {% endfor %} {% endmacro %} diff --git a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig index 8f88c4dfcb..67cec028b1 100644 --- a/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig +++ b/vendor/symfony/symfony/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/logger.html.twig @@ -3,21 +3,21 @@ {% import _self as logger %} {% block toolbar %} - {% if collector.counterrors or collector.countdeprecations %} + {% if collector.counterrors or collector.countdeprecations or collector.countscreams %} {% set icon %} Logs {% if collector.counterrors %} {% set status_color = "red" %} - {% else %} + {% elseif collector.countdeprecations %} {% set status_color = "yellow" %} {% endif %} - {% set error_count = collector.counterrors + collector.countdeprecations %} - {{ error_count }} + {% set error_count = collector.counterrors + collector.countdeprecations + collector.countscreams %} + {{ error_count }} {% endset %} {% set text %} {% if collector.counterrors %}
            - Exception + Errors {{ collector.counterrors }}
            {% endif %} @@ -27,6 +27,12 @@ {{ collector.countdeprecations }}
            {% endif %} + {% if collector.countscreams %} +
            + Silenced Errors + {{ collector.countscreams }} +
            + {% endif %} {% endset %} {% include '@WebProfiler/Profiler/toolbar_item.html.twig' with { 'link': profiler_url } %} {% endif %} @@ -36,8 +42,8 @@ Logger Logs - {% if collector.counterrors or collector.countdeprecations %} - {% set error_count = collector.counterrors + collector.countdeprecations %} + {% if collector.counterrors or collector.countdeprecations or collector.countscreams %} + {% set error_count = collector.counterrors + collector.countdeprecations + collector.countscreams %} {{ error_count }} @@ -56,12 +62,21 @@
            - +
            +

            What's new

            -

            We've added new elements and changed some existing ones. Here are the new or updated styles.

            +

            We've added a few new elements and changed some existing ones. Here's their new or updated classes.

            @@ -532,25 +456,21 @@ bootstrap/ - + - + - + - + - - - - @@ -621,7 +541,7 @@ bootstrap/

            What's removed

            -

            The following elements have been dropped or changed in v3.0.

            +

            The following elements have been dropped or changed in v3.

            .jumbotron
            Extra small grid (<768px)Tiny grid (<768 px) .col-xs-*
            Small grid (≥768px)Small grid (>768 px) .col-sm-*
            Medium grid (≥992px)Medium grid (>992 px) .col-md-*
            Large grid (≥1200px)Large grid (>1200 px) .col-lg-*
            Responsive utility classes (≥1200px).visible-lg .hidden-lg
            Offsets .col-sm-offset-* .col-md-offset-* .col-lg-offset-*
            @@ -642,11 +562,6 @@ bootstrap/ - - - - - @@ -657,26 +572,11 @@ bootstrap/ - - - - - - - - - - - - - - - @@ -687,123 +587,61 @@ bootstrap/ - - - - -
            .form-search N/A
            Form group with info.control-group.infoN/A
            Fluid container .container-fluid.row-fluid .row (no more fixed grid)
            Controls wrapper.controlsN/A
            Controls row.controls-row.row or .form-group
            Navbar inner .navbar-inner N/A
            Navbar vertical dividers.navbar .divider-verticalN/A
            Dropdown submenu .dropdown-submenu.tabs-left .tabs-right .tabs-below N/A
            Nav lists.nav-list .nav-headerNo direct equivalent, but list groups and .panel-groups are similar.

            Additional notes

            -

            Other changes in v3.0 are not immediately apparent. Base classes, key styles, and behaviors have been adjusted for flexibility and our mobile first approach. Here's a partial list:

            +

            We've made many underlying changes in v3 that are not immediately apparent. Base classes, key styles, and behaviors have been adjusted for flexibility and our mobile first approach.

              -
            • By default, text-based form controls now receive only minimal styling. For focus colors and rounded corners, apply the .form-control class on the element to style.
            • -
            • Text-based form controls with the .form-control class applied are now 100% wide by default. Wrap inputs inside <div class="col-*"></div> to control input widths.
            • +
            • Text-based form controls are now 100% wide. Wrap inputs inside <div class="col-*"></div> to control input widths.
            • .badge no longer has contextual (-success,-primary,etc..) classes.
            • .btn must also use .btn-default to get the "default" button.
            • .container and .row are now fluid (percentage-based).
            • Images are no longer responsive by default. Use .img-responsive for fluid <img> size.
            • -
            • The icons, now .glyphicon, are now font based. Icons also require a base and icon class (e.g. .glyphicon .glyphicon-asterisk).
            • +
            • The icons, now .glyphicon, are now font based. They also require a base and icon class (e.g. .glyphicon .glyphicon-asterisk).
            • Typeahead has been dropped, in favor of using Twitter Typeahead.
            • -
            • Modal markup has changed significantly. The .modal-header, .modal-body, and .modal-footer sections are now wrapped in .modal-content and .modal-dialog for better mobile styling and behavior.
            • -
            • The HTML loaded by the remote modal option is now injected into the .modal instead of into the .modal-body. This allows you to also easily vary the header and footer of the modal, not just the modal body.
            • -
            • JavaScript events are namespaced. For example, to handle the modal "show" event, use 'show.bs.modal'. For tabs "shown" use 'shown.bs.tab', etc.
            • +
            • Modal markup has changed significantly. The .modal-header, .modal-body, and .modal-footer sections now get wrapped in .modal-content and .modal-dialog for improved mobile styling and behavior.
            • +
            • JavaScript events are namespaced. For example, to handle the modal "show" event, use 'show.bs.modal'. For tabs "shown" use 'shown.bs.tab', etc..
            -

            For more information on upgrading to v3.0, and code snippets from the community, see Bootply.

            +

            For more information on upgrades and code snippets from the community check out Bootply.

            +
            -

            Bootstrap is built to work best in the latest desktop and mobile browsers, meaning older browsers might display differently styled, though fully functional, renderings of certain components.

            +

            Bootstrap is built to work best in the latest desktop and mobile browsers, meaning older and less advanced browsers might receive a less stylized, though fully functional, version of certain components.

            Supported browsers

            Specifically, we support the latest versions of the following:

            • Chrome (Mac, Windows, iOS, and Android)
            • -
            • Safari (Mac and iOS only, as the Windows version is being abandoned)
            • +
            • Safari (Mac and iOS only, as Windows has more or less been discontinued)
            • Firefox (Mac, Windows)
            • Internet Explorer
            • Opera (Mac, Windows)
            -

            Unofficially, Bootstrap should look and behave well enough in Chromium and Chrome for Linux, Firefox for Linux, and Internet Explorer 7, though they are not officially supported.

            +

            Unofficially, Bootstrap should look and behave well enough in Chromium for Linux and Internet Explorer 7, though they are not officially supported.

            Internet Explorer 8 and 9

            -

            Internet Explorer 8 and 9 are also supported, however, please be aware that some CSS3 properties and HTML5 elements are not fully supported by these browsers. In addition, Internet Explorer 8 requires the use of Respond.js to enable media query support.

            -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            FeatureInternet Explorer 8Internet Explorer 9
            border-radius Not supported Supported
            box-shadow Not supported Supported
            transform Not supported Supported, with -ms prefix
            transition Not supported
            placeholder Not supported
            -
            - -

            Visit Can I use... for details on browser support of CSS3 and HTML5 features.

            - -

            Internet Explorer 8 and Respond.js

            -

            Beware of the following caveats when using Respond.js in your development and production environments for Internet Explorer 8.

            -

            Respond.js and cross-domain CSS

            -

            Using Respond.js with CSS hosted on a different (sub)domain (for example, on a CDN) requires some additional setup. See the Respond.js docs for details.

            -

            Respond.js and file://

            -

            Due to browser security rules, Respond.js doesn't work with pages viewed via the file:// protocol (like when opening a local HTML file). To test responsive features in IE8, view your pages over HTTP(S). See the Respond.js docs for details.

            -

            Respond.js and @import

            -

            Respond.js doesn't work with CSS that's referenced via @import. In particular, some Drupal configurations are known to use @import. See the Respond.js docs for details.

            +

            Internet Explorer 8 and 9 are also supported, however, please be aware that many CSS3 properties—e.g., rounded corners and shadows—are not supported by IE8. The placeholder attribute is also not supported in either of these versions.

            +

            In addition, Internet Explorer 8 requires the use of respond.js to enable media query support.

            -

            Internet Explorer 8 and box-sizing

            -

            IE8 does not fully support box-sizing: border-box; when combined with min-width, max-width, min-height, or max-height. For that reason, as of v3.0.1, we no longer use max-width on .containers.

            - -

            IE Compatibility modes

            +

            IE Compatibility modes

            Bootstrap is not supported in the old Internet Explorer compatibility modes. To be sure you're using the latest rendering mode for IE, consider including the appropriate <meta> tag in your pages:

            {% highlight html %} {% endhighlight %} -

            This tag is included in all docs pages and examples to ensure the best rendering possible in each supported version of Internet Explorer.

            See this StackOverflow question for more information.

            -

            Internet Explorer 10 in Windows 8 and Windows Phone 8

            -

            Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't properly apply the media queries in Bootstrap's CSS. Normally you'd just add a quick snippet of CSS to fix this:

            -{% highlight css %} -@-ms-viewport { width: device-width; } -{% endhighlight %} -

            However, this doesn't work as it causes Windows Phone 8 devices to show a mostly desktop view instead of narrow "phone" view. To address this, you'll need to include the following CSS and JavaScript to work around the bug until Microsoft issues a fix.

            +

            Windows Phone 8 and Internet Explorer 10

            +

            Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.

            {% highlight css %} @-webkit-viewport { width: device-width; } @-moz-viewport { width: device-width; } @@ -824,27 +662,27 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) { } {% endhighlight %}

            For more information and usage guidelines, read Windows Phone 8 and Device-Width.

            -

            As a heads up, we include this in the Bootstrap docs as an example.

            -

            Safari percent rounding

            -

            As of Safari v6.1 for OS X and Safari for iOS v7.0.1, Safari's rendering engine has some trouble with the number of decimal places used in our .col-*-1 grid classes. So if you have 12 individual grid columns, you'll notice that they come up short compared to other rows of columns. We can't do much here (see #9282) but you do have some options:

            +

            Safari percent rounding

            +

            In the latest Safari for Mac, its rendering engine has a little trouble with the long decimal places of our .col-*-1 grid classes, meaning if you have 12 individual columns you'll notice they come up short compared to other rows of columns. There's not much we can do here (see #9282) but you do have some options:

            • Add .pull-right to your last grid column to get the hard-right alignment
            • Tweak your percentages manually to get the perfect rounding for Safari (more difficult than the first option)

            We'll keep an eye on this though and update our code if we have an easy solution.

            -

            Modals and mobile devices

            +

            Modals and mobile devices

            Overflow and scrolling

            Support for overflow: hidden on the <body> element is quite limited in iOS and Android. To that end, when you scroll past the top or bottom of a modal in either of those devices' browsers, the <body> content will begin to scroll.

            Virtual keyboards

            -

            Also, note that if you're using inputs in your modal – iOS has a rendering bug that doesn't update the position of fixed elements when the virtual keyboard is triggered. A few workarounds for this include transforming your elements to position: absolute or invoking a timer on focus to try to correct the positioning manually. This is not handled by Bootstrap, so it is up to you to decide which solution is best for your application.

            +

            Also, note that if you're using inputs in your modal – iOS has a rendering bug which doesn't update the position of fixed elements when the virtual keyboard is triggered. There are a few work arounds for this, including transforming your elements to position: absolute or invoking a timer on focus to try to correct the positioning manually. This is not handled by Bootstrap, so it is up to you to decide which solution is best for your application.

            -

            Browser zooming

            +

            Browser zooming

            Page zooming inevitably presents rendering artifacts in some components, both in Bootstrap and the rest of the web. Depending on the issue, we may be able to fix it (search first and then open an issue if need be). However, we tend to ignore these as they often have no direct solution other than hacky workarounds.

            +
            @@ -853,77 +691,49 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {

            While we don't officially support any third party plugins or add-ons, we do offer some useful advice to help avoid potential issues in your projects.

            -

            Box-sizing

            -

            Some third party software, including Google Maps and Google Custom Search Engine, conflict with Bootstrap due to * { box-sizing: border-box; }, a rule which makes it so padding does not affect the final computed width of an element. Learn more about box model and sizing at CSS Tricks.

            -

            Depending on the context, you may override as-needed (Option 1) or reset the box-sizing for entire regions (Option 2).

            +

            Google Maps

            +

            If you're using Google Maps on a Bootstrapped project, you might run into some display problems due to our use of * { box-sizing: border-box; }. Previously, you may have also ran into issues with the use of max-width on images. The following snippet should avoid all those problems.

            {% highlight css %} -/* Box-sizing resets +/* Fix Google Maps canvas * - * Reset individual elements or override regions to avoid conflicts due to - * global box model settings of Bootstrap. Two options, individual overrides and - * region resets, are available as plain CSS and uncompiled LESS formats. + * Wrap your Google Maps embed in a `.google-map-canvas` to reset Bootstrap's + * global `box-sizing` changes. You may optionally need to reset the `max-width` + * on images in case you've applied that anywhere else. (That shouldn't be as + * necessary with Bootstrap 3 though as that behavior is relegated to the + * `.img-responsive` class.) */ -/* Option 1A: Override a single element's box model via CSS */ -.element { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -/* Option 1B: Override a single element's box model by using a Bootstrap LESS mixin */ -.element { - .box-sizing(content-box); -} - -/* Option 2A: Reset an entire region via CSS */ -.reset-box-sizing, -.reset-box-sizing *, -.reset-box-sizing *:before, -.reset-box-sizing *:after { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} +.google-map-canvas, +.google-map-canvas * { .box-sizing(content-box); } -/* Option 2B: Reset an entire region with a custom LESS mixin */ -.reset-box-sizing { - &, - *, - *:before, - *:after { - .box-sizing(content-box); - } -} -.element { - .reset-box-sizing(); -} +/* Optional responsive image override */ +img { max-width: none; } {% endhighlight %} +
            -

            Bootstrap follows common web standards, and with minimal extra effort, can be used to create sites that are accessible to those using AT.

            +

            Bootstrap follows common web standards, and with minimal extra effort, can be used to create sites that are accessibile to those using AT.

            Skip navigation

            -

            If your navigation contains many links and comes before the main content in the DOM, add a Skip to main content link immediately after your opening <body> tag. (read why)

            +

            If your navigation contains many links and comes before the main content in the DOM, add a Skip to content link immediately after your opening <body> tag. (read why)

            {% highlight html %} - Skip to main content + Skip to content
            The main page content.
            {% endhighlight %} -

            Nested headings

            -

            When nesting headings (<h1> - <h6>), your primary document header should be an <h1>. Subsequent headings should make logical use of <h2> - <h6> such that screen readers can construct a table of contents for your pages.

            -

            Learn more at HTML CodeSniffer and Penn State's AccessAbility.

            +

            Nested headers

            +

            Another "gotcha" has to do with how you nest your <header> elements. Section 508 states that your largest header must be an h1, and the next header must be an <h2>, etc. This is hard to achieve in practice, but if the largest header on your site is smaller than Bootstrap's default 38px, you should consider modifying your stylesheets before using a smaller header element.

            Additional resources

              @@ -934,6 +744,7 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
            +
            @@ -979,32 +790,32 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
            + +
            -

            Bootstrap is best maintained when you treat it as a separate and independently-versioned dependency in your development environment. Doing this makes upgrading Bootstrap easier in the future.

            +

            Customizing Bootstrap is best accomplished when you treat it as another dependency in your development stack. Doing so ensures future upgrades are as easy as possible while also familiarizing yourself to the intricacies of the framework.

            -

            Once you've downloaded and included Bootstrap's styles and scripts, you can customize its components. Just create a new stylesheet (LESS, if you like, or just plain CSS) to house your customizations.

            +

            Once you've downloaded and included Bootstrap's CSS into your templates, you can move on to customizing the included components. To do so, create a new stylesheet (LESS, if you like, or just plain CSS) to house your customizations.

            Compiled or minified?

            -

            Unless you plan on reading the CSS, go with minified stylesheets. It's the same code, just compacted. Minified styles use less bandwidth, which is good, especially in production environments.

            +

            Unless you plan on reading a good chunk of the compiled CSS, go with the minified. It's the same code, just compacted. Less bandwidth is good, especially in production environments.

            -

            From there, include whatever Bootstrap components and HTML content you need to create templates for your site's pages.

            +

            From there, include whatever Bootstrap components and HTML content you need to get your template setup. It's best to have a rough idea in mind of modifications to make and content to include, so be sure to spend a brief amount of time on that before moving on.

            Customizing components

            -

            You can customize components to varying degrees, but most fall into two camps: light customizations and overhauls. Plenty examples of both are available from third parties.

            -

            We define light customizations as superficial changes, for example, color and font changes to existing Bootstrap components. A light customization example is the Twitter Translation Center (coded by @mdo). Let's look at how to implement the custom button we wrote for this site, .btn-ttc.

            -

            The stock Bootstrap buttons require just one class, .btn, to start. Here we extend the .btn style with a new modifier class, .btn-ttc, that we will create. This gives us a distinct custom look with minimal effort.

            -

            Our customized button will be coded like this:

            +

            There are varying degrees to customizing components, but most fall into two camps: light customizations and complete visual overhauls. Luckily, there are plenty of examples of both.

            +

            We define light customizations as mostly surface layer changes, things like a color and font changes to existing Bootstrap components. A great example of this is the the Twitter Translation Center (coded by @mdo). Let's look at how to implement the custom button we wrote for this site, .btn-ttc.

            +

            Instead of using the provided Bootstrap buttons, which only require just one class to start, .btn, we'll add our own modifier class, .btn-ttc. This will give us a slightly custom look with minimal effort.

            {% highlight html %} {% endhighlight %} -

            Note how .btn-ttc is added to the standard .btn class.

            -

            To implement this, in the custom stylesheet, add the following CSS:

            +

            In the custom stylesheet, add the following CSS:

            {% highlight css %} /* Custom button @@ -1035,23 +846,21 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) { } {% endhighlight %} -

            In short: Look to the style source and duplicate the selectors you need for your modifications.

            -

            In summary, here's the basic workflow:

            +

            Customizing Bootstrap components takes time, but should be straightforward. Look to the source code often and duplicate the selectors you need for your modifications. Placing them after the Bootstrap source makes for easy overriding without complication. To recap, here's the basic workflow:

              -
            • For each element you want to customize, find its code in the compiled Bootstrap CSS.
            • -
            • Copy the component's selector and styles and paste them in your custom stylesheet. For instance, to customize the navbar background, just copy the .navbar style specification.
            • -
            • In your custom stylesheet, edit the CSS you just copied from the Bootstrap source. No need for prepending additional classes, or appending !important here. Keep it simple.
            • +
            • For each element you want to customize, find its code in the compiled Bootstrap CSS. Copy and paste the selector for a component as-is. For instance, to customize the navbar background, just snag .navbar.
            • +
            • Add all your custom CSS in a separate stylesheet using the selectors you just copied from the Bootstrap source. No need for prefacing with additional classes or using !important here.
            • Rinse and repeat until you're happy with your customizations.
            -

            Once you are comfortable performing light customizations, visual overhauls are just as straightforward. For a site like Karma, which uses Bootstrap as a CSS reset with heavy modifications, more extensive work is involved. But the same principle applies: include Bootstrap's default stylesheet first, then apply your custom stylesheet.

            +

            Going beyond light customizations and into visual overhauls is just as straightforward as the above custom button. For a site like Karma, which uses Bootstrap as a CSS reset with heavy modifications, more extensive work is involved, but well worth it in the end.

            Alternate customization methods

            -

            While not recommended for folks new to Bootstrap, you may use one of two alternate methods for customization. The first is modifying the source .less files (making upgrades super difficult), and the second is mapping source LESS code to your own classes via mixins. For the time being, neither of those options are documented here.

            +

            While not recommended for folks new to Bootstrap, you may use one of two alternate methods for customization. The first is modifying the source .less files (making upgrades super difficult), and the second is mapping source LESS code to your own classes via mixins. For the time being, neither of those options are documented here.

            Removing potential bloat

            -

            Not all sites and applications need to make use of everything Bootstrap has to offer, especially in production environments where optimizing bandwidth is an issue. We encourage you to remove whatever is unused with our Customizer.

            +

            Not all sites and applications need to make use of everything Bootstrap has to offer, especially in production environments where bandwidth literally becomes a financial issue. We encourage folks to remove whatever is unused with our Customizer.

            Using the Customizer, simply uncheck any component, feature, or asset you don't need. Hit download and swap out the default Bootstrap files with these newly customized ones. You'll get vanilla Bootstrap, but without the features *you* deem unnecessary. All custom builds include compiled and minified versions, so use whichever works for you.

            diff --git a/vendor/twbs/bootstrap/index.html b/vendor/twbs/bootstrap/index.html index 9e8485e872..187f3b6439 100644 --- a/vendor/twbs/bootstrap/index.html +++ b/vendor/twbs/bootstrap/index.html @@ -9,8 +9,7 @@ base_url: "./"

            Bootstrap

            Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.

            - Download Bootstrap - Download source + Download Bootstrap

            diff --git a/vendor/twbs/bootstrap/javascript.html b/vendor/twbs/bootstrap/javascript.html index dcc2a1e84c..62dbc07e6d 100644 --- a/vendor/twbs/bootstrap/javascript.html +++ b/vendor/twbs/bootstrap/javascript.html @@ -24,7 +24,7 @@ base_url: "../"

            Plugin dependencies

            -

            Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs. Also note that all plugins depend on jQuery (this means jQuery must be included before the plugin files). Consult our bower.json to see which versions of jQuery are supported.

            +

            Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs. Also note that all plugins depend on jQuery (this means jQuery must be included before the plugin files).

            Data attributes

            @@ -43,14 +43,14 @@ $(document).off('.alert.data-api')

            Programmatic API

            We also believe you should be able to use all Bootstrap plugins purely through the JavaScript API. All public APIs are single, chainable methods, and return the collection acted upon.

            {% highlight js %} -$('.btn.danger').button('toggle').addClass('fat') +$(".btn.danger").button("toggle").addClass("fat") {% endhighlight %}

            All methods should accept an optional options object, a string which targets a particular method, or nothing (which initiates a plugin with default behavior):

            {% highlight js %} -$('#myModal').modal() // initialized with defaults -$('#myModal').modal({ keyboard: false }) // initialized with no keyboard -$('#myModal').modal('show') // initializes and invokes show immediately

            +$("#myModal").modal() // initialized with defaults +$("#myModal").modal({ keyboard: false }) // initialized with no keyboard +$("#myModal").modal('show') // initializes and invokes show immediately

            {% endhighlight %}

            Each plugin also exposes its raw constructor on a Constructor property: $.fn.popover.Constructor. If you'd like to get a particular plugin instance, retrieve it directly from an element: $('[rel=popover]').data('popover').

            @@ -104,15 +104,6 @@ $('#myModal').on('show.bs.modal', function (e) {

            Examples

            Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.

            -
            -

            Overlapping modals not supported

            -

            Be sure not to open a modal while another is still visible. Showing more than one modal at a time requires custom code.

            -
            -
            -

            Mobile device caveats

            -

            There are some caveats regarding using modals on mobile devices. See our browser support docs for details.

            -
            -

            Static example

            A rendered modal with header, body, and set of actions in the footer.

            @@ -198,45 +189,44 @@ $('#myModal').on('show.bs.modal', function (e) {
            - + Launch demo modal
            {% highlight html %} - - - - - + + Launch demo modal + + + {% endhighlight %}

            Make modals accessible

            -

            Be sure to add role="dialog" to .modal, aria-labelledby="myModalLabel" attribute to reference the modal title, and aria-hidden="true" to tell assistive technologies to skip the modal's DOM elements.

            -

            Additionally, you may give a description of your modal dialog with aria-describedby on .modal.

            +

            + Be sure to add role="dialog" to your primary modal div. In the example above, div#myModal.
            + Also, the aria-labelledby attribute references your modal title. In this example, h4#myModalLabel.
            + Finally, aria-hidden="true" tells assistive technologies to skip DOM elements.
            + Additionally, you may give a description of your modal dialog. Use the aria-describedby attribute in the modal's primary <div> to point to this description (this is not shown in the above example). +

            Usage

            -

            The modal plugin toggles your hidden content on demand, via data attributes or JavaScript. It also adds .model-open to the <body> to override default scrolling behavior and generates a .modal-backdrop to provide a click area for dismissing shown modals when clicking outside the modal.

            Via data attributes

            Activate a modal without writing JavaScript. Set data-toggle="modal" on a controller element, like a button, along with a data-target="#foo" or href="#foo" to target a specific modal to toggle.

            @@ -263,7 +253,7 @@ $('#myModal').on('show.bs.modal', function (e) { backdrop - boolean or the string 'static' + boolean true Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click. @@ -283,11 +273,10 @@ $('#myModal').on('show.bs.modal', function (e) { remote path false -

            If a remote URL is provided, content will be loaded via jQuery's load method and injected into the root of the modal element. If you're using the data-api, you may alternatively use the href attribute to specify the remote source. An example of this is shown below:

            +

            If a remote URL is provided, content will be loaded via jQuery's load method and injected into the root of the modal element. If you're using the data api, you may alternatively use the href attribute to specify the remote source. An example of this is shown below:

            {% highlight html %} Click me {% endhighlight %} - @@ -304,15 +293,15 @@ $('#myModal').modal({ {% endhighlight %}

            .modal('toggle')

            -

            Manually toggles a modal. Returns to the caller before the modal has actually been shown or hidden (i.e. before the shown.bs.modal or hidden.bs.modal event occurs).

            +

            Manually toggles a modal.

            {% highlight js %}$('#myModal').modal('toggle'){% endhighlight %}

            .modal('show')

            -

            Manually opens a modal. Returns to the caller before the modal has actually been shown (i.e. before the shown.bs.modal event occurs).

            +

            Manually opens a modal.

            {% highlight js %}$('#myModal').modal('show'){% endhighlight %}

            .modal('hide')

            -

            Manually hides a modal. Returns to the caller before the modal has actually been hidden (i.e. before the hidden.bs.modal event occurs).

            +

            Manually hides a modal.

            {% highlight js %}$('#myModal').modal('hide'){% endhighlight %}

            Events

            @@ -328,11 +317,11 @@ $('#myModal').modal({ show.bs.modal - This event fires immediately when the show instance method is called. If caused by a click, the clicked element is available as the relatedTarget property of the event. + This event fires immediately when the show instance method is called. shown.bs.modal - This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the relatedTarget property of the event. + This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). hide.bs.modal @@ -346,8 +335,8 @@ $('#myModal').modal({ {% highlight js %} -$('#myModal').on('hidden.bs.modal', function (e) { - // do something... +$('#myModal').on('hidden.bs.modal', function () { + // do something… }) {% endhighlight %} @@ -454,7 +443,6 @@ $('#myModal').on('hidden.bs.modal', function (e) { -

            Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the .open class on the parent list item. When opened, the plugin also adds .dropdown-backdrop as a click area for closing dropdown menus when clicking outside the menu.

            Via data attributes

            Add data-toggle="dropdown" to a link or button to toggle a dropdown.

            @@ -472,8 +460,6 @@ $('#myModal').on('hidden.bs.modal', function (e) { Dropdown - - @@ -529,7 +515,6 @@ $('#myDropdown').on('show.bs.dropdown', function () { {% endhighlight %} -
            @@ -587,15 +572,9 @@ $('#myDropdown').on('show.bs.dropdown', function () {

            Usage

            Via data attributes

            -

            To easily add scrollspy behavior to your topbar navigation, add data-spy="scroll" to the element you want to spy on (most typically this would be the <body>). Then add the data-target attribute with the ID or class of the parent element of any Bootstrap .nav component.

            +

            To easily add scrollspy behavior to your topbar navigation, add data-spy="scroll" to the element you want to spy on (most typically this would be the <body>. Then add the data-target attribute with the ID or class of the parent element of any Bootstrap .nav component.

            {% highlight html %} - - ... - + ... {% endhighlight %} @@ -603,7 +582,7 @@ $('#myDropdown').on('show.bs.dropdown', function () {

            Via JavaScript

            Call the scrollspy via JavaScript:

            {% highlight js %} -$('body').scrollspy({ target: '.navbar-example' }) +$('body').scrollspy({ target: '#navbar-example' }) {% endhighlight %}
            @@ -707,11 +686,6 @@ $('#myScrollspy').on('activate.bs.scrollspy', function () {
            -
            -

            Extends tabbed navigation

            -

            This plugin extends the tabbed navigation component to add tabbable areas.

            -
            -

            Usage

            Enable tabbable tabs via JavaScript (each tab needs to be activated individually):

            @@ -731,35 +705,17 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed) {% endhighlight %}

            Markup

            -

            You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-toggle="tab" or data-toggle="pill" on an element. Adding the nav and nav-tabs classes to the tab ul will apply the Bootstrap tab styling, while adding the nav and nav-pills classes will apply pill styling.

            +

            You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-toggle="tab" or data-toggle="pill" on an element. Adding the nav and nav-tabs classes to the tab ul will apply the Bootstrap tab styling.

            {% highlight html %} - - - -
            -
            ...
            -
            ...
            -
            ...
            -
            ...
            -
            {% endhighlight %} -

            Fade effect

            -

            To make tabs fade in, add .fade to each .tab-pane. The first tab pane must also have .in to properly fade in initial content.

            -{% highlight html %} -
            -
            ...
            -
            ...
            -
            ...
            -
            ...
            -
            -{% endhighlight %} +

            To make tabs fade in, add .fade to each .tab-pane.

            Methods

            $().tab

            @@ -768,10 +724,10 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)

            {% highlight html %}
            @@ -844,35 +800,16 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
            -
            -

            Opt-in functionality

            -

            For performance reasons, the Tooltip and Popover data-apis are opt-in, meaning you must initialize them yourself.

            -

            Tooltips in button groups and input groups require special setting

            When using tooltips on elements within a .btn-group or an .input-group, you'll have to specify the option container: 'body' (documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the tooltip is triggered).

            -
            -

            Tooltips on disabled elements require wrapper elements

            -

            To add a tooltip to a disabled or .disabled element, put the element inside of a <div> and apply the tooltip to that <div> instead.

            -
            +

            Usage

            -

            The tooltip plugin generates content and markup on demand, and by default places tooltips after their trigger element.

            Trigger the tooltip via JavaScript:

            {% highlight js %} $('#example').tooltip(options) -{% endhighlight %} - -

            Markup

            -

            The generated markup of a tooltip is rather simple, though it does require a position (by default, set to top by the plugin).

            -{% highlight html linenos %} -
            -
            - Tooltip! -
            -
            -
            {% endhighlight %}

            Options

            @@ -1026,18 +963,10 @@ $('#myTooltip').on('hidden.bs.tooltip', function () {

            Plugin dependency

            Popovers require the tooltip plugin to be included in your version of Bootstrap.

            -
            -

            Opt-in functionality

            -

            For performance reasons, the Tooltip and Popover data-apis are opt-in, meaning you must initialize them yourself.

            -

            Popovers in button groups and input groups require special setting

            When using popovers on elements within a .btn-group or an .input-group, you'll have to specify the option container: 'body' (documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the popover is triggered).

            -
            -

            Popovers on disabled elements require wrapper elements

            -

            To add a popover to a disabled or .disabled element, put the element inside of a <div> and apply the popover to that <div> instead.

            -

            Static popover

            Four options are available: top, right, bottom, and left aligned.

            @@ -1061,7 +990,6 @@ $('#myTooltip').on('hidden.bs.tooltip', function () {

            Popover bottom

            -

            Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

            @@ -1080,7 +1008,7 @@ $('#myTooltip').on('hidden.bs.tooltip', function () {

            Live demo

            Four directions

            @@ -1141,7 +1069,7 @@ $('#myTooltip').on('hidden.bs.tooltip', function () { selector string false - if a selector is provided, tooltip objects will be delegated to the specified targets. in practice, this is used to enable dynamic HTML content to have popovers added. See this and an informative example. + if a selector is provided, tooltip objects will be delegated to the specified targets if a selector is provided, tooltip objects will be delegated to the specified targets. in practice, this is used to enable dynamic HTML content to have popovers added. See this and an informative example. trigger @@ -1187,6 +1115,9 @@ $('#myTooltip').on('hidden.bs.tooltip', function () {

            Options for individual popovers can alternatively be specified through the use of data attributes, as explained above.

            +

            Markup

            +

            For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.

            +

            Methods

            $().popover(options)

            Initializes popovers for an element collection.

            @@ -1260,13 +1191,12 @@ $('#myPopover').on('hidden.bs.popover', function () {
            -
            +

            Oh snap! You got an error!

            Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

            - - + Take this action Or do this

            @@ -1415,7 +1345,7 @@ $('#my-alert').bind('closed.bs.alert', function () {

            Usage

            Enable buttons via JavaScript:

            {% highlight js %} -$('.btn').button() +$('.nav-tabs').button() {% endhighlight %}

            Markup

            @@ -1486,7 +1416,7 @@ $('.btn').button()

            - + Collapsible Group Item #1

            @@ -1500,7 +1430,7 @@ $('.btn').button()

            - + Collapsible Group Item #2

            @@ -1514,7 +1444,7 @@ $('.btn').button()

            - + Collapsible Group Item #3

            @@ -1532,7 +1462,7 @@ $('.btn').button()

            - + Collapsible Group Item #1

            @@ -1546,7 +1476,7 @@ $('.btn').button()

            - + Collapsible Group Item #2

            @@ -1560,7 +1490,7 @@ $('.btn').button()

            - + Collapsible Group Item #3

            @@ -1585,13 +1515,6 @@ $('.btn').button()

            Usage

            -

            The collapse plugin utilizes a few classes to handle the heavy lifting:

            -
              -
            • .collapse hides the content
            • -
            • .collapse.in shows the content
            • -
            • .collapsing is added when the transition starts, and removed when it finishes
            • -
            -

            These classes can be found in component-animations.less.

            Via data attributes

            Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a CSS selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

            @@ -1600,7 +1523,7 @@ $('.btn').button()

            Via JavaScript

            Enable manually with:

            {% highlight js %} -$('.collapse').collapse() +$(".collapse").collapse() {% endhighlight %}

            Options

            @@ -1702,7 +1625,7 @@ $('#myCollapsible').on('hidden.bs.collapse', function () {

            The slideshow below shows a generic plugin and component for cycling through elements like a carousel.

            - {% highlight html %} -