Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

PHP Code auf verschiedene Dateien verteilen

Eingetragen von JenneMander (112)
am 17.03.2014 - 09:50 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Hallo Forum,
ich schreibe gerade ein eigenes Modul, dieses wird leider mit der Zeit immer umfangreicher und unübersichtlicher. Wie kann ich den php-Code auf mehrere Dateien verteilen? Aktuell befindet sich alles in der modulname.module Datei.

einen guten Start in die Woche wünschend
Jens

‹ [Gelöst]Subtab unter user/edit Komme nicht weiter: Formular-Element Theming für Radio-Buttons ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

aber klar doch

Eingetragen von ronald (3857)
am 17.03.2014 - 09:54 Uhr

wie immer bei PHP, kann man includes schreiben.
Du solltest diese Dateien in der .info eintragen.
Ich würde ein includes Verzeichnis unter dem Modulverzeichnis machen, damit die Gliederung klar ist.

Das kannst du in vielen Modulen abgucken.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst diese einfach in

Eingetragen von Sense (1559)
am 17.03.2014 - 09:56 Uhr

Du kannst diese einfach in eine modulname.funktionen.inc auslagern. Zum Einbinden der Datei kannst Du dann module_load_include() verwenden.

Wenn Du einen hook_menu() verwendest, schau Dir mal den Parameter "file" an

  • Anmelden oder Registrieren um Kommentare zu schreiben

Besten Dank.

Eingetragen von JenneMander (112)
am 18.03.2014 - 07:58 Uhr

Besten Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Code-Auslagerung auch aus Performance-Gründen

Eingetragen von C_Logemann (912)
am 18.03.2014 - 11:17 Uhr

In die .module müssen primär Drupal-interne API-Aufrufe, damit Drupal diese auch berücksichtigen kann. Codebestandteile, die wiederum nur in bestimmten Fällen benötigt werden sollten nach Möglichkeit auch ausgelagert werden, damit diese nicht unnötig von Drupal geladen werden.
Das von Sense erwähnte hook_menu ist ein gutes Beispiel dafür. In der .module teilen wir Drupal mit, daß auch unser Modul Pfade bereitstellt und welche. Aber nur, wenn diese tatsächlich aufgerufen werden, wird der Code benötigt, der dann Daten an diese Pfad-Aufrufe zurück geben soll. Zu diesem Zweck gibt es die Möglichkeit direkt eine Pfad-Angabe für ein include zu machen, das dann Drupal automatisch macht.
Für eigene Konstruktionen muss man das manuell machen. Wenn man z.B. eine Funktion definiert, die auch andere Module als API benutzen sollen, macht es Sinn, diese innerhalb des .module Files zu definieren, damit man zur Anwendung dieser Funktion nicht erst das entsprechende .inc File per include einbinden muss. Wir können allerdings innerhalb unserer Funktion dann Code in eine .inc auslagern und per include einbinden. So wird der besagte Code nur geladen wenn tatsächlich unsere Funktion auch aufgerufen wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Carsten, vielen Dank für

Eingetragen von JenneMander (112)
am 18.03.2014 - 11:36 Uhr

Hi Carsten,
vielen Dank für deine Antwort, ich denke ich brauch für deine Ausführung ein Beispiel.
Ich habe hier mal meine abgespeckte(dadurch von der Logik eventuell Sinnfrei) Version meines Modules:

function mein_modul_menu()
{
$items = array();
$items['mein_modul'] = array(
'title' => 'mein_modul',
'description' => 'Hier teste ich mich in der Modul-API voran',
'page_arguments' => array(1,'foo'),
'access callback' => TRUE,
'page callback' => 'sync_function_sync',
);
return $items;
}


function sync_function_sync()
{
        updateNodes();
deleteNodes();

echo 'Funktionen sind durchgelaufen';
}

function deleteNodes()
{
    //jede Menge Code
}
function updateNodes()
{
    //jede Menge Code
}

Die beiden Funktionen deleteNodes und updateNodes möchtei ch gerne in separate Dateien auslagern, welches Vorgehen hältst du für ratsam? Ich denke das sind in der Realität solche explizite Formen, dass kein weiteres Modul auf diese zugreifen wird.
mit bestem Gruß
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 3 Tagen
  • Hey danke
    vor 1 Woche 4 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 6 Tagen
  • In der entsprechenden View
    vor 2 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 6 Tagen
  • gelöst
    vor 5 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association