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
Templates versionierenProjekt-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
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
Add Comment