Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Nostromo Version 6 branchen und Version 7 auf master weiterentwickeln.

  •  Min-Req: PHP 8 -> da AAGM 7.2-Skripte für ioncube benötigt. Framework-Skripte könnten 7.4 sein (Wenn AAGM die Nostromo-Sourcen nicht verschlüsselt), aber PHP 8 kann wegen Ioncube nicht für AAGM genutzt werden
  •  Update auf Symfony 5
  •  abtrakte Methoden in View: Return types -> Auch in Edit.template festlegen. Das gleiche für den Controller, Installer + ganzer Prototype-Ordner
  •  Packages neu schneiden, so dass wir die zyklischen Abhängigkeiten (und damit das manuelle Setzen der Version in der composer.json) loswerden
    •  framework, controls, provider, ui zusammenfassen
    •  NewFrontiers-Namespace → Nostromo
    •  Beispiel zum Auflösen von Abhängigkeiten: UploaderControl in module-media + Namespace von UploaderControl ändern
    •  Unsichtbarte Abhängigkeiten (Durch vererbte Abhängigkeiten) werden durch PhpStorm-Check aufgefunden werden
    •  ConfigurationProvider wäre cool im Framework-Paket → Wenn alle Abhängigkeiten beseitigt sind, kann nachgecheckt werden, ob das in das umgezogen werden kann
  •  UI stärker vom Framework trennen
  •  jQuery-Update (2 -> 3) -> datetimepicker-bootstrap-Update (3 -> 4) -> Änderungen an ModelFieldDate(time) -> Alle Projekte updaten
  •  bower.json → Abhängigkeiten durch Framework (Beispiel an Telenot inspina)
    •  Scripte aus Inspina raus ziehen
    •  bower.json-Dependency zu Framework-JS-Requirements
  •  CSS-Regeln im Framework definieren
    •  LESS von Inspina direkt kompilieren, sodass eigene Farben definiert werden können
  •  Templates versionieren
    •  Projekt-Spezifische Änderungen an CSS / default.php herausziehen
  •  callable-Templates
  •  Es muss überprüft werden, ob Cache:: sich so verhält wie Session::, da dies nun in Debug benutzt wird
  •  Inspina Bootstrap 4
  •  Code Coverage >20%

Breaking changes in Projekten korrigieren

  • PHP 7.4 min requirement

  • In composer.json

    • auf PhpUnit ~9 updaten

    • alle nostromo/…-Module auf Version ~7 updaten

    • nostromo/controls, -ui, und -provider entfernen

    • newfrontiers/test-helper nun in nostromo/testing ~7 integriert

  • NewFrontiers-Module in Nostromo umbennen (src- und tests-Ordner des Projekts)

    • Namespaces ändern

      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:

      • Code Block
        /** @var SitemapRoutingProvider $routing */
        $routing = Services::get('routing');
        $page = $routing->getCurrentPage();

        or:

      • Code Block
        /** @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

...