MyOOS 5.0.23

MyOOS [Dumper]ist ein Sicherungsprogramm für MySQL-Datenbanken. Damit können Sicherungskopien der Daten (Forum, Shop, Blog, usw.) erstellt und bei Bedarf auch wieder hergestellt werden. Besonders bei Web-Space ohne Shell-Zugang bietet sich MyOOS [Dumper] als sinnvolle Alternative an.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

MyOOS 5.0.23

Beitrag von r23 »

Hallo,

ich habe die MyOOS Dumper Version 5.0.23 gestartet.

Im November wird der Schwerpunkt auf PHP Änderungen liegen.

Die PHP Entwickler stellen den Support für PHP 8.0 ein und die neue Version PHP 8.3 wird veröffentlicht.
Ich habe darüber gebloggt.
https://blog.myoos.de/php-8-3-und-das-myoos-projekt/

MyOOS Dumper 5.0.22 müsste bereits unter PHP 8.3 funktionieren.
Wenn nicht, gibt es kurzfristig eine oder zwei Veröffentlichungen.

Wir gründen zurzeit eine Lerngemeinschaft.
Vor diesem Hintergrund gibt es gelegentlich Hinweise auf Kurse

zum Beispiel
Learn MySQL – Beginner's Course
https://www.freecodecamp.org/news/learn ... rs-course/

und
Learn SQL for Efficient Data Storage and Retrieval
https://www.freecodecamp.org/news/learn ... ll-course/

Wenn du mehr über unsere Lerngemeinschaft erfahren möchtest
viewtopic.php?t=4706

Happy Halloween

Ralf
MK70
Beiträge: 76
Registriert: 05.02.2021, 16:11

Re: MyOOS 5.0.23

Beitrag von MK70 »

Geht gerade schlag auf schlag... :wink:
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Hallo,

jeep

PHP Migration kommt wie Weihnachten immer total überraschend.

;)

Viele Grüße

Ralf
MK70
Beiträge: 76
Registriert: 05.02.2021, 16:11

Re: MyOOS 5.0.23

Beitrag von MK70 »

Genau... :mrgreen:
Weihnacht ist immer so plötzlich da... :lol:

Gut das mich nur die Gewürzspekulatius um dieses Fest interessieren. :P
Allen anderen Stress tu ich mir nur so an, wie ich das möchte. :wink:
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

In der MyOOS 5.0.23 gibt es ein Update der Perl Scripte.

- Die Perl Scripte werden nicht mit dem automatischen Update installiert.
- Die Versions Nummer der Perl Scripte ändert sich nur, wenn es Änderungen an dem Script gab. In den letzten Versionen hat sich die Versions-Nummer nicht geändert.
- Das Projekt sucht Perl Entwickler, die die Betreuung der Scripte übernehmen.

Neue MyOOS Entwickler sollten vor einer Änderung oder Mitarbeit die 100 Tage Code Herausforderung bestehen
viewforum.php?f=47

Die Herausforderung besteht darin, 100 Tage jeden Tag 1 Stunde zu Programmieren
https://blog.myoos.de/die-ultimative-pr ... mmen-habe/

Das Test-Perl Script prüft, ob das Perl Modul NET:SFTP auf dem Server installiert ist
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

PHP 8.3 ist veröffentlicht
https://www.php.net/

in unserem Blog gibt es einen Blogbeitrag
https://blog.myoos.de/php-8-3-und-das-myoos-projekt/

Rector liegt in einer php 8.3 Version jetzt bei.
Wie man dies verwendet
viewtopic.php?p=7800p7800

und in unserem Blog ein Blogbeitrag
https://blog.myoos.de/es-ist-freitag-ab ... on-2-5-62/
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Hallo,

in einer frühen Betaphase habe ich auf Git-Hub die SFTP Konfiguration für Perl eingerichtet.

Ich freue mich über Feedback, die es testen konnten und wollten.

Schönes Wochenende

Ralf
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Fehlermeldung:

crondump.pl: Variable "$pcd_version" will not stay shared at ~/mod_cron/crondump.pl line 548

8<-

Es scheint, dass Sie eine geschachtelte benannte Unterfunktion in Ihrem Perl-Skript haben, die auf eine lexikalische Variable verweist, die in einer äußeren benannten Unterfunktion definiert ist. Dies kann zu der Warnung "Variable ... will not stay shared" führen, die bedeutet, dass die Variable nicht mehr gemeinsam genutzt wird¹. Um dieses Problem zu beheben, können Sie eine der folgenden Möglichkeiten versuchen:

- Machen Sie die innere Unterfunktion anonym, indem Sie die Syntax `sub {}` verwenden. Wenn innere anonyme Unterfunktionen, die auf Variablen in äußeren Unterfunktionen verweisen, erstellt werden, werden sie automatisch an die aktuellen Werte dieser Variablen gebunden¹.
- Vermeiden Sie lexikalische Variablen, indem Sie `local our` verwenden. Dies erlaubt Ihnen, die Variable global zu deklarieren, aber ihren Wert lokal zu ändern².
- Erzwingen Sie, dass das reguläre Ausdrucksmuster kompiliert wird, wenn das `qr//` ausgeführt wird, indem Sie das Muster variabel machen. Sie können dies tun, indem Sie eine leere Variable an das Muster anhängen, z.B. `$np = qr/... (?? { $np })...$var/;`².
- Verschieben Sie das Muster aus der Unterfunktion heraus. Sie können das Muster in einer lexikalischen Variable außerhalb der Unterfunktion definieren, z.B. `my $np; $np = qr/... (?? { $np }).../;`².

Ich hoffe, diese Informationen helfen Ihnen, Ihre Perl-Warnung zu beheben.

Ich hoffe, diese Informationen helfen Ihnen, Ihre Perl-Warnung zu beheben. Wenn Sie weitere Hilfe benötigen, können Sie die Bing-Suche verwenden, um mehr Antworten zu finden. Ich wünsche Ihnen viel Erfolg mit Ihrem Perl-Skript! 😊

(1) perl - What is the correct way to fix "variable ... will not stay .... https://stackoverflow.com/questions/194 ... -shared-at.
(2) . https://bing.com/search?q=perl+variable ... tay+shared.
(3) Perl: "Variable will not stay shared" - Stack Overflow. https://stackoverflow.com/questions/253 ... tay-shared.
(4) Variable "..." will not stay shared ... - Perl Maven. https://perlmaven.com/variable-will-not-stay-shared.
(5) undefined. https://stackoverflow.com/questions/528 ... ub-in-perl.
(6) undefined. http://www.unix.org.ua/orelly/perl/prog3/ch05_10.htm.

8<-

my $pcd_version='5.0.23';

Um local our für Ihre Variable zu verwenden, müssen Sie zuerst die Variable als eine globale Variable in Ihrem Paket deklarieren, z.B. `our $pcd_version;`. Dann können Sie die Variable mit `local` in einem bestimmten Block oder einer bestimmten Datei lokalisieren, z.B. `local $pcd_version = '5.0.23';`. Dies wird den Wert der Variablen nur innerhalb des Blocks oder der Datei ändern, aber nicht außerhalb. Zum Beispiel:

Code: Alles auswählen

    #!/usr/bin/perl
    use strict;
    use warnings;

    package Foo;
    our $pcd_version; # declare global variable in package Foo

    sub print_version {
        print "The version is $pcd_version\n";
    }

    package main;
    $Foo::pcd_version = '4.0.12'; # assign value to global variable
    Foo::print_version(); # prints 4.0.12

    {
        local $Foo::pcd_version = '5.0.23'; # localize value in block
        Foo::print_version(); # prints 5.0.23
    }

    Foo::print_version(); # prints 4.0.12 again
Ich hoffe, das hilft Ihnen zu verstehen, wie Sie local our in Perl verwenden können. Wenn Sie mehr darüber erfahren möchten, können Sie die folgenden Quellen konsultieren:

- [our - Perldoc Browser](^3^)
- [Perl our Function - Online Tutorials Library](^4^)
- [What is the difference between 'my' and 'our' in Perl?](^1^).

Quelle: Unterhaltung mit Bing, 26.11.2023
(1) our - Perldoc Browser. https://perldoc.perl.org/functions/our.
(2) Perl our Function - Online Tutorials Library. https://www.tutorialspoint.com/perl/perl_our.htm.
(3) What is the difference between 'my' and 'our' in Perl?. https://stackoverflow.com/questions/845 ... ur-in-perl.
(4) . https://bing.com/search?q=perl+local+our.
(5) undefined. https://stackoverflow.com/questions/129 ... al-in-perl.
(6) undefined. https://perldoc.perl.org/functions/local.
(7) undefined. https://stackoverflow.com/questions/191 ... es-in-perl.
(8) en.wikipedia.org. https://en.wikipedia.org/wiki/Perl.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Fehlermeldung

crondump.pl: Subroutine GetPerlVersion redefined at ~/mod_cron/crondump.pl line 101.

Code: Alles auswählen

#return perl version
sub GetPerlVersion (){
    my $pversion ;
    if ($^V){
        $pversion = sprintf "v%vd", $^V ; # v5.10.1
    }else{
        $pversion = local $];
    }
    return $pversion;
}

Es tut mir leid, dass Sie eine weitere Warnung erhalten haben. Die Meldung "Subroutine GetPerlVersion redefined" bedeutet, dass Sie die gleiche Unterfunktion zweimal in Ihrem Skript oder in verschiedenen Modulen definiert haben¹. Dies kann zu unerwarteten Ergebnissen oder Konflikten führen. Um diese Warnung zu vermeiden, können Sie folgende Schritte ausprobieren:

- Überprüfen Sie, ob Sie die Unterfunktion GetPerlVersion in einem anderen Teil Ihres Skripts oder in einem anderen Modul, das Sie verwenden, definiert haben. Wenn ja, benennen Sie eine der Unterfunktionen um oder entfernen Sie die doppelte Definition.
- Verwenden Sie die Anweisung `no warnings 'redefine';` vor der Definition der Unterfunktion, um die Warnung zu unterdrücken. Dies ist jedoch nicht empfehlenswert, da es die Warnung nur versteckt, aber nicht das zugrunde liegende Problem löst².
- Verwenden Sie die Anweisung `use subs 'GetPerlVersion';` vor der Definition der Unterfunktion, um sie als Vorwärtsdeklaration zu markieren. Dies kann verhindern, dass Perl die Unterfunktion als neu definiert ansieht³.

Ich hoffe, diese Informationen helfen Ihnen, Ihre Perl-Warnung zu beheben. Wenn Sie weitere Hilfe benötigen, können Sie die Bing-Suche verwenden, um mehr Antworten zu finden. Ich wünsche Ihnen viel Erfolg mit Ihrem Perl-Skript! 😊

Quelle: Unterhaltung mit Bing, 26.11.2023
(1) Perl - Subroutine redefined - Stack Overflow. https://stackoverflow.com/questions/342 ... -redefined.
(2) Subroutines redefined error in Perl - Stack Overflow. https://stackoverflow.com/questions/510 ... or-in-perl.
(3) How to handle subroutine redefined errors in Perl. https://stackoverflow.com/questions/359 ... rs-in-perl.
(4) warningsモジュール - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説. https://perlzemi.com/blog/20130916137930.html.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Update phpMailer

Upgrading phpmailer/phpmailer (v6.8.1 => v6.9.1)
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Hallo,

wir sollten die use vars-Anweisung vermeiden und stattdessen our verwenden, um globale Variablen zu deklarieren. Die use vars-Anweisung ist veraltet und kann zu unerwarteten Problemen führen.

https://github.com/r23/MyOOS-Dumper/com ... d197785ea0
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Für die Prüfung von php 8.3

- Upgrading phpstan/phpstan (1.10.44 => 1.10.45)
- Upgrading rector/rector (0.18.10 => 0.18.11)

https://github.com/r23/MyOOS-Dumper/com ... ed40077b9c
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

BugFix

mhoelli hat uns über GitHub auf ein Fehler mit There is no Comment after Backup hingewiesen

https://github.com/r23/MyOOS-Dumper/issues/8

Lösung
https://github.com/r23/MyOOS-Dumper/com ... 9ad28c8069
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Ich habe eine Fehlerbehandlungsfunktion eingebaut

Um eine benutzerdefinierte Fehlerbehandlungsfunktion zu definieren, musst du die Funktion set_error_handler() verwenden, die einen Callback als Parameter akzeptiert.

Der Callback ist eine Funktion, die du selbst schreibst, um zu bestimmen, wie du mit den Fehlern umgehen willst. Die Funktion muss mindestens zwei Parameter haben: $errno und $errstr, die den Fehlercode und die Fehlermeldung enthalten.

Du kannst auch weitere Parameter hinzufügen, um mehr Informationen über den Fehler zu erhalten, wie z.B. $errfile, $errline und $errcontext. Die Funktion muss einen booleschen Wert zurückgeben, der angibt, ob der Fehler behandelt wurde oder nicht.

Wenn du false zurückgibst, wird die Standardfehlerbehandlung von PHP ausgeführt.

die Error-Log Datei wird nach work/log/error_log geschrieben.
r23
Beiträge: 2696
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Re: MyOOS 5.0.23

Beitrag von r23 »

Das MyOOS Projekt verwendet jetzt

perl -cw

Perl -cw ist ein Befehl, der die Syntax eines Perl-Skripts überprüft, ohne es auszuführen. Er gibt entweder keine Ausgabe oder eine Fehlermeldung zurück, je nachdem, ob das Skript syntaktisch korrekt ist oder nicht. Zum Beispiel:


~/mod_cron # perl -cw crondump.pl

Code: Alles auswählen

[Wed Nov 29 20:42:34 2023] crondump.pl: "our" variable $dt redeclared at crondump.pl line 71.
[Wed Nov 29 20:42:34 2023] crondump.pl: "our" variable $datei redeclared at crondump.pl line 77.
crondump.pl syntax OK

Ziel ist es, dass wir auf Perl::Critic umsteigen.

Perl::Critic ist ein Modul, das die Qualität eines Perl-Skripts überprüft, indem es verschiedene Regeln oder Richtlinien anwendet, die auf den Perl-Best-Practices von Damian Conway basieren.

Es gibt verschiedene Schweregrade für die Regeln, von 1 (sanft) bis 5 (brutal). Perl::Critic gibt eine Liste von Verstößen gegen die Regeln zurück, die das Skript verbessern könnten.

perlcritic -1 crondump.pl


Wie kann ich Perl::Critic installieren?

Um Perl::Critic zu installieren, gibt es verschiedene Möglichkeiten, je nachdem, welches Betriebssystem und welche Perl-Version du verwendest. Hier sind einige allgemeine Schritte, die du befolgen kannst:

- Stelle sicher, dass du Perl auf deinem Computer installiert hast. Du kannst Perl von [3](https://www.perl.org/get.html) herunterladen oder überprüfen, ob du es bereits hast, indem du perl -v in einem Terminal ausführst.

- Stelle sicher, dass du einen CPAN-Client hast, um Perl-Module zu installieren. Du kannst cpanm oder CPAN shell verwenden, die beide in der Regel mit Perl geliefert werden. Du kannst mehr über CPAN-Client in (https://metacpan.org/pod/Perl::Critic#INSTALLATION) lesen.

- Verwende den CPAN-Client, um Perl::Critic zu installieren. Du kannst den folgenden Befehl in einem Terminal ausführen, je nachdem, welchen Client du verwendest:

Code: Alles auswählen

```perl
# Mit cpanm
cpanm Perl::Critic

# Mit CPAN shell
perl -MCPAN -e shell
install Perl::Critic
- Überprüfe, ob Perl::Critic erfolgreich installiert wurde, indem du perlcritic -v in einem Terminal ausführst. Du solltest eine Ausgabe wie diese sehen:

Code: Alles auswählen

```perl
perlcritic -v
Perl::Critic 1.152
Überprüfe, ob Perl::Critic erfolgreich installiert wurde, indem du perlcritic --version in einem Terminal ausführst.

perlcritic --help sieht so aus:
2023-11-29 21_12_16-Greenshot.png
2023-11-29 21_12_16-Greenshot.png (33.82 KiB) 336 mal betrachtet
Antworten