-
Notifications
You must be signed in to change notification settings - Fork 0
Docs Upgrade
This upgrade guide contains hints on what to do and consider when upgrading from one version to another. It was introduced with release of the versions 1.4.0/1.3.0 and will be maintained for all future releases. There will be no upgrade guides for upgrading an older version then 1.3.0 to 1.3.0.
For all upgrades independent of the version it is always required to copy the contents of the release's lib folder into the lib folder of your application.
With 1.7.x the web applications succeed the previous websites stuff. While 1.6.x websites should run with 1.7.x without problems it is advised to switch to the new web application configuration. See Webapp documentation.
Because of this some classes changed their package and name. The old full qualified class names can still be used for loading, this will result in loading the new classes. Here is a list of all class name changes. Please be aware that the old class names are deprecated and will be removed with the next minor or major version.
Old name | New name |
---|---|
net::stubbles::websites::cache::stubAbstractWebsiteCache | net::stubbles::webapp::cache::stubAbstractWebsiteCache |
net::stubbles::websites::cache::stubCachingProcessor | net::stubbles::webapp::cache::stubCachingProcessor |
net::stubbles::websites::cache::stubCompositeWebsiteCache | net::stubbles::webapp::cache::stubCompositeWebsiteCache |
net::stubbles::websites::cache::stubDefaultWebsiteCache | net::stubbles::webapp::cache::stubDefaultWebsiteCache |
net::stubbles::websites::cache::stubDummyWebsiteCache | net::stubbles::webapp::cache::stubDummyWebsiteCache |
net::stubbles::websites::cache::stubGzipWebsiteCache | net::stubbles::webapp::cache::stubGzipWebsiteCache |
net::stubbles::websites::cache::stubLoggingWebsiteCache | net::stubbles::webapp::cache::stubLoggingWebsiteCache |
net::stubbles::websites::cache::stubWebsiteCache | net::stubbles::webapp::cache::stubWebsiteCache |
net::stubbles::websites::cache::stubWebsiteCacheProvider | net::stubbles::webapp::cache::stubWebsiteCacheProvider |
net::stubbles::websites::processors::auth::stubAuthHandler | net::stubbles::webapp::auth::stubAuthHandler |
net::stubbles::websites::processors::auth::stubAuthProcessor | net::stubbles::webapp::auth::stubAuthProcessor |
net::stubbles::websites::processors::routing::stubAbstractProcessable | net::stubbles::webapp::xml::route::stubAbstractProcessable |
net::stubbles::websites::processors::routing::stubProcessable | net::stubbles::webapp::xml::route::stubProcessable |
net::stubbles::websites::processors::routing::stubRoute | net::stubbles::webapp::xml::route::stubRoute |
net::stubbles::websites::processors::stubAbstractProcessor | net::stubbles::webapp::processor::stubAbstractProcessor |
net::stubbles::websites::processors::stubAbstractProcessorDecorator | net::stubbles::webapp::processor::stubAbstractProcessorDecorator |
net::stubbles::websites::processors::stubProcessor | net::stubbles::webapp::processor::stubProcessor |
net::stubbles::websites::processors::stubProcessorException | net::stubbles::webapp::processor::stubProcessorException |
net::stubbles::websites::xml::generator::stubModeXMLGenerator | net::stubbles::webapp::xml::generator::stubModeXmlGenerator |
net::stubbles::websites::xml::generator::stubRequestXMLGenerator | net::stubbles::webapp::xml::generator::stubRequestXmlGenerator |
net::stubbles::websites::xml::generator::stubRouteXMLGenerator | net::stubbles::webapp::xml::generator::stubRouteXmlGenerator |
net::stubbles::websites::xml::generator::stubSessionXMLGenerator | net::stubbles::webapp::xml::generator::stubSessionXmlGenerator |
net::stubbles::websites::xml::generator::stubVariantListGenerator | net::stubbles::webapp::xml::generator::stubVariantListGenerator |
net::stubbles::websites::xml::generator::stubXMLGenerator | net::stubbles::webapp::xml::generator::stubXmlGenerator |
net::stubbles::websites::xml::generator::stubXMLGeneratorFacade | net::stubbles::webapp::xml::generator::stubXmlGeneratorFacade |
net::stubbles::websites::xml::routing::stubAbstractXmlFormProcessable | net::stubbles::webapp::xml::route::stubAbstractXmlFormProcessable |
net::stubbles::websites::xml::routing::stubXmlFormProcessable | net::stubbles::webapp::xml::route::stubXmlFormProcessable |
net::stubbles::websites::xml::skin::stubCachingSkinGenerator | net::stubbles::webapp::xml::skin::stubCachingSkinGenerator |
net::stubbles::websites::xml::skin::stubDefaultSkinGenerator | net::stubbles::webapp::xml::skin::stubDefaultSkinGenerator |
net::stubbles::websites::xml::skin::stubSkinGenerator | net::stubbles::webapp::xml::skin::stubSkinGenerator |
net::stubbles::websites::xml::skin::stubSkinGeneratorProvider | net::stubbles::webapp::xml::skin::stubSkinGeneratorProvider |
net::stubbles::websites::xml::stubShowLastXMLInterceptor | net::stubbles::webapp::xml::stubShowLastXmlInterceptor |
net::stubbles::websites::xml::stubXMLProcessor | net::stubbles::webapp::xml::stubXmlProcessor |
net::stubbles::websites::xml::stubXmlProcessorTramsformer | net::stubbles::webapp::xml::stubXmlProcessorTramsformer |
net::stubbles::websites::variantmanager::types::stubAbstractVariant | net::stubbles::webapp::variantmanager::types::stubAbstractVariant |
net::stubbles::websites::variantmanager::types::stubConfigurableVariant | net::stubbles::webapp::variantmanager::types::stubConfigurableVariant |
net::stubbles::websites::variantmanager::types::stubDummyVariant | net::stubbles::webapp::variantmanager::types::stubDummyVariant |
net::stubbles::websites::variantmanager::types::stubLeadVariant | net::stubbles::webapp::variantmanager::types::stubLeadVariant |
net::stubbles::websites::variantmanager::types::stubRandomVariant | net::stubbles::webapp::variantmanager::types::stubRandomVariant |
net::stubbles::websites::variantmanager::types::stubRequestParamVariant | net::stubbles::webapp::variantmanager::types::stubRequestParamVariant |
net::stubbles::websites::variantmanager::types::stubRootVariant | net::stubbles::webapp::variantmanager::types::stubRootVariant |
net::stubbles::websites::variantmanager::types::stubVariant | net::stubbles::webapp::variantmanager::types::stubVariant |
net::stubbles::websites::variantmanager::stubAbstractVariantFactory | net::stubbles::webapp::variantmanager::stubAbstractVariantFactory |
net::stubbles::websites::variantmanager::stubVariantConfigurationException | net::stubbles::webapp::variantmanager::stubVariantConfigurationException |
net::stubbles::websites::variantmanager::stubVariantFactory | net::stubbles::webapp::variantmanager::stubVariantFactory |
net::stubbles::websites::variantmanager::stubVariantSettingPreInterceptor | net::stubbles::webapp::variantmanager::stubVariantSettingPreInterceptor |
net::stubbles::websites::variantmanager::stubVariantSwitchPreInterceptor | net::stubbles::webapp::variantmanager::stubVariantSwitchPreInterceptor |
net::stubbles::websites::variantmanager::stubVariantCookieCreator | net::stubbles::webapp::variantmanager::stubVariantCookieCreator |
net::stubbles::websites::variantmanager::stubVariantsMap | net::stubbles::webapp::variantmanager::stubVariantsMap |
net::stubbles::websites::variantmanager::stubVariantsPreInterceptor | net::stubbles::webapp::variantmanager::stubVariantsPreInterceptor |
net::stubbles::websites::variantmanager::stubXmlVariantFactory | net::stubbles::webapp::variantmanager::stubXmlVariantFactory |
Instantiation of net::stubbles::rdbms::persistence::creator::stubDatabaseCreator, net::stubbles::rdbms::persistence::eraser::stubDatabaseEraser, net::stubbles::rdbms::persistence::finder::stubDatabaseFinder and net::stubbles::rdbms::persistence::serializer::stubDatabaseSerializer has been changed. Up to 1.6.x those classes could not be created using the IoC mechanism, you had to create those classes as follows:
$creator = new stubDatabaseCreator(new stubDatabaseQueryBuilderFactory());
With 1.7.0 this changed, all four classes can now be created via the IoC mechanism which means you can get them injected into your own classes. No special bindings need to be configured for this. The way mentioned above does not work any more, the net::stubbles::rdbms::querybuilder::stubDatabaseQueryBuilderFactory class was removed.
If you load specific annotation classes in your tests (or in your production code) you should remove those imports. Specific annotation classes are deprecated and will be removed with next minor version. For most annotations your code should work like before after removing loading of the annotation. However, there are some exceptions:
@ProvidedBy
Code which uses the provided by annotation like this
$class->getAnnotation('ProvidedBy')->getProviderClassName()should be changed to
$class->getAnnotation('ProvidedBy')->getProviderClass()->getFullQualifiedClassName()
Case sensitivity
Annotation property names are now case sensitive. This means, if you have written e.g. @XMLTag(tagname='foo') this will not work any more. This needs to be corrected to @XMLTag(tagName='foo').
Due to the change filter annotations can not create the filter itself any more. If you have created your own filter annotations you need to create filter annotation readers instead, see Define your own filter annotation.
Stubbles 1.6.x is the last Stubbles series which bundles XJConf for PHP. Inside Stubbles there are no dependencies to XJConf any more, so the bundling will be discontinued, being 1.7.0 the first release without XJConf. This also means the the net::stubbles::util::xjconf package will no longer be part of the framework release. We will provide a separate star release with the package only starting from 1.7.0. You can decide to either use this separate package in the future or to switch you XJConf based configurations to not use XJConf any more.
Change how scoped bindings are configured: instead of
$binder->bind('MyInterface')->to('MyImplementation')->in(stubBindingScopes::$SINGLETON); $binder->bind('OtherInterface')->to('OtherImplementation')->in(stubBindingScopes::$SESSION);use
$binder->bind('MyInterface')->to('MyImplementation')->asSingleton(); $binder->bind('OtherInterface')->to('OtherImplementation')->inSession();
Upgrade all calls to the request API to the new methods described in Working with request data.