Zum Inhalt

"Backen" des Moduls

Bevor Sie starten, stellen Sie sicher, dass Sie sich im Ordner /opt/openitc/frontend befinden und einen neuen git Branch für ihre Entwicklung erstellt haben.

new git branch

openITCOCKPIT besitzt ein eigenes CLI Tool "oitc", welches unter anderem ein neues "skeleton" eines neuen Moduls erstellen kann. Dies ist das sogenannte bake Kommando, welches auf dem CakePHP "bake" Kommando basiert.

Um ein neues Modul zu erstellen, müssen Sie folgendes Kommando ausführen:

oitc bake plugin ExampleModule

Hinweis

Es ist wichtig, dass der Name ihres Moduls auf "Module" endet. Beispiele: ExampleModule, AutoreportsModule, MkModule und so weiter.

Das System wird Sie nach dem Pfad des Modules (Plugin) fragen.

Plugin Directory: /opt/openitc/frontend/plugins/ExampleModule
Dies bestätigen Sie bitte mit y.

Zudem werden Sie gefragt, ob Sie die composer.json Datei überschreiben möchten

/opt/openitc/frontend/composer.json
Überschreiben Sie diese Datei nicht! Überspringen Sie dies mit der Antwort n.

Beispiel zum Erstellen eines Moduls mit dem bake Befehl:

root @ /opt/openitc/frontend - [ExampleModule] # oitc bake plugin ExampleModule
Plugin Name: ExampleModule
Plugin Directory: /opt/openitc/frontend/plugins/ExampleModule
-------------------------------------------------------------------------------
Look okay? (y/n/q)
[y] > y
Generating .gitignore file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/.gitignore
Wrote `/opt/openitc/frontend/plugins/ExampleModule/.gitignore`
Generating README.md file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/README.md
Wrote `/opt/openitc/frontend/plugins/ExampleModule/README.md`
Generating composer.json file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/composer.json
Wrote `/opt/openitc/frontend/plugins/ExampleModule/composer.json`
Generating phpunit.xml.dist file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/phpunit.xml.dist
Wrote `/opt/openitc/frontend/plugins/ExampleModule/phpunit.xml.dist`
Generating src/Controller/AppController.php file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/src/Controller/AppController.php
Wrote `/opt/openitc/frontend/plugins/ExampleModule/src/Controller/AppController.php`
Generating src/Plugin.php file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/src/Plugin.php
Wrote `/opt/openitc/frontend/plugins/ExampleModule/src/Plugin.php`
Generating tests/bootstrap.php file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/tests/bootstrap.php
Wrote `/opt/openitc/frontend/plugins/ExampleModule/tests/bootstrap.php`
Generating webroot/.gitkeep file...

Creating file /opt/openitc/frontend/plugins/ExampleModule/webroot/.gitkeep
Wrote `/opt/openitc/frontend/plugins/ExampleModule/webroot/.gitkeep`
Modifying composer autoloader

File `/opt/openitc/frontend/composer.json` exists
Do you want to overwrite? (y/n/a/q)
[n] > n
Skip `/opt/openitc/frontend/composer.json`

Generating autoload files
Generated autoload files


/opt/openitc/frontend/src/Application.php modified
-------------------------------------------------------------------------------
Created: ExampleModule in /opt/openitc/frontend/plugins/ExampleModule


root @ /opt/openitc/frontend - [ExampleModule] #

Dateiberechtigungen Reparieren

Immer wenn Sie den oitc Befehl zum Generieren von Dateien nutzen, ist es empfehlenswert, die Dateiberechtigungen dem Webserver Benutzer www-data zuzuweisen.

openITCOCKPIT bietet ein eigenes Tool zum Setzen dieser Berechtigungen an.

oitc rights

oitc rights

Aufräumen der src/Application.php Datei

Öffnen Sie die Datei /opt/openitc/frontend/src/Application.php und löschen Sie folgende Zeile:

$this->addPlugin('ExampleModule');

openITCOCKPIT lädt seine Module automatisch. Es ist keine Manuelle aktion oder code notwendig.

Routing ändern

Standardmäßig nutzt CakePHP einen Bindestrich (-) als CamelCase separator in der URL. Aufgrund historischer Umstände ist es vonnöten, dass Sie diesen Separator durch einen Unterstrich (_) ersetzen.

Dazu öffnen Sie die Datei /opt/openitc/frontend/plugins/ExampleModule/src/Plugin.php und suchen nach dem folgenden Code.

public function routes(RouteBuilder $routes): void
{
    $routes->plugin(
        'ExampleModule',
        ['path' => '/example-module'],
        function (RouteBuilder $builder) {
            // Add custom routes here

            $builder->fallbacks();
        }
    );
    parent::routes($routes);
}

Nun ändern Sie den Wert des path von example-module nach example_module.

['path' => '/example_module'],