Migration from v6 to v7
Breaking Changes / Migration Guide
PHP >= 7.4
In composer.json
Update PhpUnit to ~9
Update nostromo packages
Remove nostromo/controls, -ui, and -provider
Replace newfrontiers/test-helper with nostromo/testing ~7
Rename NewFrontiers modules to Nostromo (src- and tests- folders)
Update Namespaes
Nostromo\UI→ Nostromo\Framework\UI
NewFrontiers\Controls → Nostromo\Framework\Controls
NewFrontiers\Provider→ Nostromo\Framework\Provider
NewFrontiers\ → Nostromo\
Datenbank
Nostromo\UI\LayoutBlocks\Columns12 → Nostromo\Modules\Site\UI\LayoutBlocks\Columns12
UPDATE regions SET re_block = REPLACE(re_block, 'Nostromo\\UI\\LayoutBlocks', 'Nostromo\\Modules\\Site\\UI\\LayoutBlocks') WHERE re_block LIKE 'Nostromo\\\\UI\\\\LayoutBlocks%';
bower.json und Templates:
bower.json: alle Dependencies entfernen und durch
"nostromo-bower-dependencies": "./vendor/nostromo/nostromo-bower-dependencies"
ersetzenjQuery wird damit auf Version ~3 aktualisiert! JS-Funktionalität überprüfen!
Projekt-Template mit dem Stub-Template abgleichen
.bowerrec, .gitignore, inspinna, print und bower.json mit Stub abgleichen
Verschoben
www/js/components → www/lib/components
Das Inspina / Print template wird includiert über composer: nostromo/template-inspina or nostromo/template-print
Database::getInstance()->setEngine in der Bootstrap.php ist nun überflüssig und kann entfernt werden.
Return types von Views, Entites, Controllern, Installern und Models anhand von Parent-Klassen abändern
Falls spezielle Symfony-Funktionalitäten im Projekt benutzt wurden, muss dies überprüft werden
Swiftmailer gibt die Anzahl der erfolgreich verendet Mails zurück oder false.
In allen Views / Controllers / Models return types zur parent-Klasse aktualisieren
BaseEntity->delete() → BaseEntity->beforedelete(), canDelete kann mit $force=true übersprungen werden
Session ist nun eine Facade
Session::persist() → Session::flush()
In der Bootstrap.php: Services::register('session', SessionProvider::class);
Nostromo\Framework\Core\Session → Nostromo\Contracts\Facades\Session
JS-Namespaces:
nfs.StdControls → nostromo.StdControls
nfs.ExtControls → nostromo/framework/Controls/ExtControls/SubmitDataControl
nfs.DataControls → nostromo/framework/Controls/DataControls/GridControl
nfs.TabControls → nostromo/framework/Controls/ExtControls/TabControl
CSS-Klassen
nfs-modal → nostromo-modal
nfs-ajax (und legacy “ajax”) → nostromo-ajax
nfs-confirm (und legacy “confirm”) → nostromo-confirm
nfs-loading → nostromo-loading
reloadImage → nostromo-reloadImage
sendAndRemove → nostromo-sendAndRemove
nfs-wrapper → nostromo-wrapper
nfs-submitted → nostromo-submitted
nfs-small-thumbnail → nostromo-small-thumbnail
nfs-dropzone → nostromo-dropzone
nfs-wide → nostromo-wide
Nostromo-Aktionen:
DebugConsoleControl::showNfsRequest → DebugConsoleControl::showAppRequests
Gelöschte deprecates:
Application::$accessor → Application::getAccessor()
Html::createElement() → Html::create()
HtmlScript::createElement() → HtmlScript::create()
Script::createElement() → Script::create()
Html::addInnerHtml() → Html::text()
Javascript::boolean() → Javascript::bool()
Response::serverError() gelöscht
BaseEntity::entityDefinition() → BaseEntity::definition()
QueueItem::create() → QueueItemFactory::create()
BaseEntity::$primaryKey → BaseEntity::definition()->primaryKey
BaseEntity::loadByFilter() → BaseEntity::filter()
BaseEntity::loadAll() → BaseEntity::all()
BaseEntity::getSecurityElement() → BaseEntity::getElementId()
BaseEntity::toJson() gelöscht (Wurde benutzt im JsonFormatter. Alternative?)
BaseEntity::prepareJson() gelöscht
BaseEntity::hibernate() glöscht
Nostromo\Mailer\Mailer → Nostromo\Contracts\Facades\Mailer (und Nostromo\Mailer\MailerProvider als Service “mailer” registrieren
HtmlControl::setInnerHtml() → HtmlControl::text()
HtmlScript → Script
EditControl::setHeader() gelöscht
GridControl::$rowLink → GridControl::setRowLink()
AlertControl::setAltertClass() → AlertControl::setAlertClass()
UploaderControl::setShowThumbnail() → UploaderControl::setImageSize(Medien::SIZE_THUMBNAIL / RESIZED)
DatabaseProviderInterface concatenate() → Use NonGenericSQL::concatenate($strings) or Database::getInstance() → getProvider()->specialFunctions()->concatenate($strings);
Application::register() → Services::register()
Application::resolve() → Services::resolve()
Application::getCurrentPage() → removed. Only available with SitemapRoutingProvider, for example:
/** @var SitemapRoutingProvider $routing */ $routing = Services::get('routing'); $page = $routing->getCurrentPage();
or:
/** @noinspection PhpUndefinedMethodInspection */ $page = Routing::getCurrentPage();
ModViewController::updateDatabaseStructure() → Installer::migrateDatabaseStructure()
Controller::$redirectOnPost sowohl im Controller gelöscht, als auch in den Configurations, da es nicht benutzt wird
Controller:$ajaxResponse gelöscht, da nicht benutzt
Translator::translateChoice() und _TC() gelöscht → https://symfony.com/doc/current/translation/message_format.html#pluralization
JS-Bibliothek circle-progress: User animate-spin css class instead
Geänderte Namen
Control::search(id) → Control::find(id): Control
Rolle::ALLE → UserInterface::ALL
Rolle::ROLLE_ADMIN → UserInterface::ADMIN
Rolle::BESUCHER → UserInterface::VISITOR
Einzelne Namespace-Änderungen
Nostromo\Framework\Controls\StdControls\ProfilerControl → Nostromo\Modules\Debug\Controls\ProfilerControl
Nostromo\Debug\Profiler\ProfilerService → Nostromo\Debug\Profiler\ProfiderProvider
Nostromo\Contracts\Configuration\Configuration → Nostromo\Framework\Provider\Configuration\ConfigurationProvider\XmlConfigurationProvider