Ergebnis 1 bis 17 von 17

Thema: Was haltet ihr von einem CLI-Tool

  1. #1
    Contao-Urgestein
    Registriert seit
    07.04.2010.
    Ort
    Stuttgart
    Beiträge
    2.733
    User beschenken
    Wunschliste

    Standard Was haltet ihr von einem CLI-Tool

    Hallo,

    manchmal wünsche ich mir ein kleines CLI-Tool um Aufgaben gemütlich mit dem Terminal ausführen zu können.
    Beispielsweise für automatisierte Backups, für syncen von Content mittels syncto etc...
    Zum Entwickeln wäre das auch praktisch, wenn man z.B. Extension-Vorlagen direkt per Terminal bauen lassen könnte und direkt auch gleich noch das Datenbank-Update darüber ausführen ohne den Umweg übers Installtool.

    wäre meiner Meinung nach gemütlich. Was haltet ihr von CLI-Tools für CMS/Frameworks?

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Mit einer allg. gueltigen RPC / SOAP Annbindung sollte sowas machbar sein.

    Dies existiert jedoch aktuell noch nicht.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Sowas wie das alte tldm-api ist damit nicht gemeint, oder?
    http://www.contao-pool.de/ceris/search/tldm-api.html
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Contao-Urgestein
    Registriert seit
    07.04.2010.
    Ort
    Stuttgart
    Beiträge
    2.733
    User beschenken
    Wunschliste

    Standard

    Nein, so etwas meine ich nicht. (Aber trotzdem Danke)

    Ich meine ein tool für das command-line interface. (d.h. einfach ein kommandozeilen-tool)
    Normalerweise kann man ja mit dem Extension-Builder sich Vorlagen für Erweiterungen bauen. Dann eine database.sql anlegen, übers Installtool Datenbank updaten.

    Das alles könnte man über die Kommandozeile viel schneller bewerkstelligen
    Bsp.:
    Code:
    php contao-cli database:update
    führt ein Datebank-Update aus.
    Code:
    php conao-cli database:backup
    führt ein Datanbank-backup aus, etc.

  5. #5
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Sowas ist "prinzipell" machbar, jedoch bedarf es entsprechender Sicherheitsmechanismen. Damit sowas z.B. nicht durch einen Browser aufgerufen werden kann, Wo liegen die Zugangsdaten usw.

    Koennte man mal wirklich andenken.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  6. #6
    Contao-Fan
    Registriert seit
    09.09.2009.
    Beiträge
    366

    Standard

    Hi,

    durch aus eine gute Idee, die einem bestimmt einige an Arbeit abnehmen kann. Zur veranschaulichung, das Symfony Framework hat sowas schon länger: http://symfony.com/blog/symfony2-get...ive-generators

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Ist wohl nun Mode :-) FuelPHP Framework hat auch sein cli tool "oil" :-)
    Geändert von BugBuster (27.02.2012 um 12:35 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Contao-Urgestein
    Registriert seit
    07.04.2010.
    Ort
    Stuttgart
    Beiträge
    2.733
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Ist wohl nun Mode :-) FuelPHP Framework hat auch sein cli tool "oil" :-)
    Stimmt. Das ist eigentlich auch ziemlich cool (laut Doku).
    Mich nervt einfach immer der "Abstecher" über's Datenbankupdate und weitere Kleinigkeiten die einen irgendwie immer aus der echten Arbeit herausreisen.

    Auch eine Datei mit dca-Feldern automatisch zu generieren wäre durchaus praktisch.

  9. #9
    Contao-Fan
    Registriert seit
    09.09.2009.
    Beiträge
    366

    Standard

    Der Generator von Fuel erinnert stark an den Rails generator ... DCA automatisch generieren wäre denke ich schwierig lösbar, weil zu individuell, aber man könnte aus den DCA-Feldern eine database.sql erzeugen, dann würde man sich diesen Schritt schonmal sparen.

  10. #10
    Contao-Urgestein
    Registriert seit
    07.04.2010.
    Ort
    Stuttgart
    Beiträge
    2.733
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von typo Beitrag anzeigen
    Der Generator von Fuel erinnert stark an den Rails generator ... DCA automatisch generieren wäre denke ich schwierig lösbar, weil zu individuell
    Stimmt :-D
    Zitat Zitat von typo Beitrag anzeigen
    aber man könnte aus den DCA-Feldern eine database.sql erzeugen, dann würde man sich diesen Schritt schonmal sparen.
    Stimmt auch.

  11. #11
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Im Grunde lässt sich sowas recht einfach mit unserer Extension ctoCommunication lösen. Die basiert vollkommen auf RPC, ist auf Sicherheit getrimmt und wird von uns ständig weiterentwickelt. Wir arbeiten derzeit dran die Extension komplett auf XML oder json (wir haben uns noch nicht entschieden) umzubauen. Gerne erweitern wir sie dann zusätzlich.

    Einige Tätigkeitsfelder fallen mir da schon ein

  12. #12
    Contao-Nutzer Avatar von FazzyX
    Registriert seit
    11.10.2012.
    Beiträge
    3

    Standard

    Hallo,

    primär entwickle ich Extensions für das CMS TYPO3, wir haben jetzt aber ein Contao Projekt mit einer individuellen Extension geerbt.
    Diese Extension soll ausgebaut werden. Wie ich schon ermitteln konnte gibt es ja umfangreiche Contao Dokumentationen, die mir
    für einen Teil des Ausbaus der Extension weiter helfen.

    Es gibt aber auch eine Anforderung, die ich mit meiner Erfahrung im Bereich TYPO3, mit einem, wie hier angesprochenen, CL Interface umsetzen würde.

    Eine kurze Erklärung was die Extension leistet :
    Es handelt sich um eine Kursverwaltung für Betriebe.
    Im Backend können Kurse angelegt werden, im Frontend können von Mitarbeitern Kurse gebucht werden.
    Die Kurse werden von einem Dienstleister angeboten. Der Mitarbeiter löst durch seine Buchung nur eine Mail an seinen
    Vorgesetzen aus. Dieser entscheidet dann über Ablehnung oder Genehmigung. Im Falle einer Genehmigung wird eine
    Mail an den Dienstleister ausgelöst.

    Gewünscht ist nun u.a. eine Erinnerungsmail nach einem definierten Zeitraum an den Vorgesetzen auszulösen.
    Dies würde ich in einem TYPO3 System per Cron Job in Kombination mit der CL Schnittstelle umsetzen.

    Ich nutze bei der Entwicklung konsequent immer die API des Systems.
    Contao verfügt ebenfalls über einen gut dokumentierte API die ich bei dem Ausbau der Erweiterung nutzen möchte.

    Wie ich hier lese existiert (noch) kein CL Interface.
    Ich würde gerne die Klasse, die für das Versenden der Mail an den Vorgesetzen verwendet wird, abstrahieren, da sich
    eine Erinnerungsmail nur geringfügig von einer Initialmail unterscheidet.
    Nun ist es aber so, dass ich diese Klassen zwar von außen ansprechen kann, aber mir die API (wie z.B. die DB Abstrahierung)
    nicht zur Verfügung steht. Somit bringt mir das nicht viel.

    Meine Frage(n)
    Wie würde ein erfahrener Contao Entwickler bei einer solchen Anforderung vorgehen ?
    Oder hat sich im Bereich CLI zwischenzeitlich etwas getan ?

    Contao Version : 2.10.4

    Viele Grüße,

    Claus
    perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

  13. #13
    Contao-Nutzer
    Registriert seit
    23.08.2012.
    Beiträge
    30

    Standard

    Du kannst die API jederzeit importieren
    Code:
    $this->import('Database');
    In Contao3 geht das auch schon über den Autoloader (bei den 2.x weiss ich nicht, ab wann das geht).

    Grundsätzlich würde ich Dir empfehlen, Du solltest mal in vorhandene Erweiterungen rein schauen, dort siehst Du sehr genau deren Umsetzung.

    Ich würde Deinen Fall wirklich per Cron (egal ob echt oder der ContaoCron) erledigen. Damit kannst Du ja Dein Modul "anpingen", das checkt die entsprechenden Daten und versendet dann eine Mail.
    Geändert von Paddy0174 (11.10.2012 um 12:48 Uhr)

  14. #14
    Contao-Nutzer Avatar von FazzyX
    Registriert seit
    11.10.2012.
    Beiträge
    3

    Standard

    Hallo Paddy,

    Zitat Zitat von Paddy0174 Beitrag anzeigen
    Du kannst die API jederzeit importieren
    Code:
    $this->import('Database');
    mein Cron Job muss ja irgendeine Datei aufrufen, bevorzugt eine Controller Klasse.
    Da steht mir aber die API nicht zur Verfügung, also in Deinem Beispiel sollte dies $this sein.
    Über ein CL Interface wird einem die API bereit gestellt / initialisiert (Wie bei einem Seitenaufruf)
    und dann gehen ja erst Funktionsaufrufe, z.B. Aufruf der DB Schnittstelle.

    Zitat Zitat von Paddy0174 Beitrag anzeigen
    In Contao3 geht das auch schon über den Autoloader (bei den 2.x weiss ich nicht, ab wann das geht).
    Auch der Autoloader muss ja erst "ausgelöst" (Seitenaufruf) werden.

    Zitat Zitat von Paddy0174 Beitrag anzeigen
    Grundsätzlich würde ich Dir empfehlen, Du solltest mal in vorhandene Erweiterungen rein schauen, dort siehst Du sehr genau deren Umsetzung.
    Das habe ich bereits gemacht und dort ist auch die Verwendung der API gut zu sehen. Es geht mir auch weniger um das "wie" die API verwendet wird,
    sondern um das wie initialisiere ich die API aus einem Cron.

    Zitat Zitat von Paddy0174 Beitrag anzeigen
    Ich würde Deinen Fall wirklich per Cron (egal ob echt oder der ContaoCron) erledigen. Damit kannst Du ja Dein Modul "anpingen", das checkt die entsprechenden Daten und versendet dann eine Mail.
    Wenn ich den "Contao Cron" richtig verstanden habe, benötigt dieser aber auch den Auslöser "Seitenaufruf".

    Im Zweifel muss ich den Weg über eine eigenen unabhängige Lösung gehen.
    Schöner ist es über eine definierte Schnittstelle zu gehen, da diese auch entsprechend gegen direkte Aufrufe gesichert ist
    und ich vorhandene Klassen verwenden könnte.

    Vielen Dank für Deine Information,

    Claus
    Geändert von FazzyX (11.10.2012 um 17:03 Uhr)
    perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

  15. #15
    Contao-Nutzer
    Registriert seit
    23.08.2012.
    Beiträge
    30

    Standard

    Ah jetzt.

    Schau mal in die Erweiterung Avisota (das ist für mich immer das Referenzobjekt neben dem Core, da arbeiten so viele dran mit, das ist die Creme de la creme des Forums ), speziell in die Datei Avisota/AvisotaTransport.php.

    Das dürfte so ziemlich genau das sein, was Du brauchst.

    Kurz gefasst, über den Cron sprichst Du diese Datei an, erweiterst damit die Klasse Backend und schon kann's los gehen.

  16. #16
    Contao-Nutzer Avatar von FazzyX
    Registriert seit
    11.10.2012.
    Beiträge
    3

    Standard

    Zitat Zitat von Paddy0174 Beitrag anzeigen
    Ah jetzt.

    Schau mal in die Erweiterung Avisota (das ist für mich immer das Referenzobjekt neben dem Core, da arbeiten so viele dran mit, das ist die Creme de la creme des Forums ), speziell in die Datei Avisota/AvisotaTransport.php.

    Das dürfte so ziemlich genau das sein, was Du brauchst.

    Kurz gefasst, über den Cron sprichst Du diese Datei an, erweiterst damit die Klasse Backend und schon kann's los gehen.
    Super, vielen Dank für diese Info! Klingt sehr gut und viel versprechend.

    Viele Grüße Claus
    perl -e 'print pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

  17. #17
    Contao-Nutzer
    Registriert seit
    02.06.2011.
    Beiträge
    2

    Standard

    Hallo das Thema ist vielleicht nicht mehr ganz so frisch aber momentan arbeite ich an einem contao CLI, dass auf nodejs basiert.

    Man kann relative leicht contao installieren und auch module hinzufügen bzw. entfernen.
    Das Ganze ist momentan noch in einem frühen Entwicklungsstadium, soll aber in weiterer Folge fortentwickelt werden.

    http://www.ambersive.com/de/agency/p...ontao-cli.html

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •