+ Antworten
Seite 1 von 9 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 82
  1. #1
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Standard [Draft] Best Practice zur PHP-Modul Erstellung

    Anbei einige Ansätze die wir über die letzten Monate gesammelt haben. Wenn Fragen zu den einzelnen Punkten bestehen, beantworten wir diese gerne. Gerne bauen wir auch noch Ausnahmen ein, wenn diese erforderlich sind.

    Wir freuen uns auf eure Meinungen und Anregungen!

    Best Practice zur PHP-Modul Erstellung

    paresy
    Geändert von paresy (26.05.17 um 14:33 Uhr)

  2. #2
    Registriert seit
    Aug 2016
    Beiträge
    2,937

    Hallo Paresy,

    find ich gut. So hat man selbst auch einen kleinen Leitfaden.
    Dann muss ich ja jetzt erstmal meine Module ins englische übersetzen.

    Wie sieht es aus, wird es dann eine Liste mit allen Modulen geben, die auch geprüft werden?

    Grüße,
    Kai
    IPS 5.2, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV
    Einfach mal rein schauen: IP-Symcon Discord Channel

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Ja, das Tracken wir zur Zeit hier: IP-Symcon Community Forum
    Und ja, wir werden alle Module auf diese Best Practises (irgendwann Richtlinien) überprüfen.

    paresy

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Ich habe die Liste mal besser sortiert und formatiert

    paresy

  5. #5
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Zitat Zitat von paresy Beitrag anzeigen
    Wir freuen uns auf eure Meinungen und Anregungen!
    iv Ein Modul darf niemals Abhängigkeiten aus einer anderen Bibliothek erfordern.

    Kann ich zwar grundsätzlich nachvollziehen aber wie soll dies z.B. im Fall von IPSI möglich sein? Ich baue ja nicht die gesamten Funktion existierender Module noch mal nach und packe diese in ein Modul. Das IPSI Modul wird in der Grundfunktion auch ohne andere Module funktionieren. Wenn ich aber später den gesamten Funktionsumfang nutzten will, z.B. Sonos, dann sind andere Module von Notwendigkeit. Diese werden geprüft ob diese vorhanden sind wenn ja steht die erweiterte Funktionalität zur Verfügung wenn nein lässt sich der Teil dann auch nicht bedienen.

    Ich wüste jetzt auch nicht wie man das anders lösen sollte oder was war da genau mit Abhängigkeiten aus einer anderen Bibliotheken gemeint?

  6. #6
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Zitat Zitat von Fonzo Beitrag anzeigen
    iv Ein Modul darf niemals Abhängigkeiten aus einer anderen Bibliothek erfordern.

    Kann ich zwar grundsätzlich nachvollziehen aber wie soll dies z.B. im Fall von IPSI möglich sein? Ich baue ja nicht die gesamten Funktion existierender Module noch mal nach und packe diese in ein Modul. Das IPSI Modul wird in der Grundfunktion auch ohne andere Module funktionieren. Wenn ich aber später den gesamten Funktionsumfang nutzten will, z.B. Sonos, dann sind andere Module von Notwendigkeit. Diese werden geprüft ob diese vorhanden sind wenn ja steht die erweiterte Funktionalität zur Verfügung wenn nein lässt sich der Teil dann auch nicht bedienen.

    Ich wüste jetzt auch nicht wie man das anders lösen sollte oder was war da genau mit Abhängigkeiten aus einer anderen Bibliotheken gemeint?
    Das war damit auch nicht gemeint. Es geht darum, dass du kein include von PHP Dateien aus einer anderen Bibliothek machst und dadurch das Modul kaputt ist, solange die andere Bibliothek fehlt. Deine Bibliothek mit Modulen muss in Sich geschlossen sein. Es darf aber, wenn andere Bibliotheken vorhanden sind, gerne erweiterte Möglichkeiten bieten.

    Ich habe den Absatz mal erweitert

    Ein Modul darf niemals Abhängigkeiten aus einer anderen Bibliothek erfordern, sodass das Modul (ohne diese Bibliothek) "kaputt" ist (z.B. ein include auf eine benötigte PHP Datei). Eine Bibliothek muss immer in sich geschlossen und funktionsfähig sein. Optionale Funktionen können durch zusätzlich installierte Bibliotheken freigeschaltet werden. (Randfall: Ein Modul kann ohne sinvolle Funktion sein, solange keine anderen installierten Bibliotheken vorhanden sind. Sie muss aber darauf Hinweisen und trotzdem fehlerfrei installierbar sein. Sobald weitere unterstützte Bibliothken installiert werden, erweitert sich der Funktionsumfang)
    paresy
    Geändert von paresy (26.05.17 um 14:31 Uhr)

  7. #7
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Zitat Zitat von paresy Beitrag anzeigen
    Deine Bibliothek mit Modulen muss in Sich geschlossen sein. Es darf aber, wenn andere Bibliotheken vorhanden sind, gerne erweiterte Möglichkeiten bieten.
    Ah ok, dann ist das klar. Funktionieren tut das ja auch ohne andere Module nur bestimmte Funktionen lassen sich halt nur nutzten wenn weitere Module installiert sind. Aber hier bekommt der Nutzer dann auch eine Ansage das das Modul nicht installiert ist bzw. gefunden wurde.

  8. #8
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Genau. Das ist vollkommen korrekt und genauso gedacht.

    paresy

  9. #9
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    9,335

    Das Homekit Modul von Kai funktioniert alleine gar nicht, aber es ist auch nicht 'defekt'.
    Weil hier dann mein Modul des Websocket als Splitter fehlt.
    Sollte somit also auch OK sein?
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  10. #10
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,643

    Ja. Er sollte aber die vor einem RequireParent überprüfen ob dein Modul vorhanden ist und falls nicht den Status auf einen Fehlercode setzen. Es muss sichergestellt sein, dass die Instanz niemals durch fehlende Abhängigkeiten nicht erstellt werden kann. (=Der toll InstanceInterface Fehler)

    paresy

Ähnliche Themen

  1. PHP Entwicklungsumgebung / Best Practice
    Von AndyKrause im Forum Skripte, PHP, SQL
    Antworten: 19
    Letzter Beitrag: 16.06.19, 08:51
  2. Alexa & IPS/PHP: best practice?
    Von aag im Forum Amazon Alexa
    Antworten: 11
    Letzter Beitrag: 15.05.17, 13:16
  3. Unterstützung zur Erstellung von Demoskripten
    Von andrge im Forum Schaufenster
    Antworten: 0
    Letzter Beitrag: 11.08.14, 16:49
  4. Anfänger braucht Hilfe zur Skript erstellung
    Von Michael19781 im Forum Skripte, PHP, SQL
    Antworten: 30
    Letzter Beitrag: 27.02.13, 17:57
  5. Frage zur Graph Erstellung
    Von rallofax im Forum IP-Symcon WIIPS
    Antworten: 2
    Letzter Beitrag: 07.01.09, 00:37