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

      1. Nostromo\UI→ Nostromo\Framework\UI

      2. NewFrontiers\Controls → Nostromo\Framework\Controls

      3. NewFrontiers\Provider→ Nostromo\Framework\Provider

      4. 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" ersetzen

      • jQuery 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

 

Related pages