quando usare i file include (inc) nello sviluppo del modulo


10

Penso di capire le differenze strutturali di un file .inc (rispetto a un .module), ma qualcuno potrebbe descrivere le differenze di progettazione? Vedo i moduli di esempio drupal che chiamano un file .inc con hook_menu o vedo il file .inc di chiamata per le definizioni delle funzioni.

  • In quali circostanze si inserisce il codice in un file .inc? Qualche linea guida di progettazione generale a cui alcuni aderiscono?
  • C'è qualche vantaggio oltre alla chiarezza sul perché si dovrebbe usare un (o più) file .inc? prestazione? delle versioni?

Grazie!


1
A mio avviso non puoi ottenere una spiegazione migliore della risposta accettata a questa domanda :)
Clive

3
personalmente, se ho una mod che supporta più URL o altro, uso un .incper url. solo l'organizzazione immagino invece di scaricare funzioni casuali in un .modulefile di grandi dimensioni. ma come riferimenti post di @Clive, è davvero solo un'opinione personale o ciò a cui sei abituato. niente giusto o sbagliato qui.
au_stan,

1
in effetti, ho usato modulename.preprocess.inc, modulename.node.inc, modulename.menu.inc ecc per suddividere grandi moduli in blocchi ragionevoli di funzioni correlate, ma l'unica vera ragione dal punto di vista delle prestazioni per usarli al di fuori dello sviluppo L'organizzazione è probabilmente se il tuo modulo ha alcune funzioni piuttosto grandi che raramente vengono chiamate per indicare che non vuoi che il tuo motore php analizzi ogni volta che viene caricato. è quindi possibile inserirli quando necessario, proprio come include il modo in cui vengono eseguite le operazioni con la richiamata del menu.
Jimajamma,

Per quello che vale raggruppare le mie implementazioni hook e le funzioni di supporto e classificare i loro blocchi di documenti usando una convenzione di denominazione appropriata (in MAIUSCOLO). Così, mentre scorro il codice del mio modulo, vedo la separazione tra i diversi gruppi di funzionalità. Ho esaminato gli standard di commento per vedere se esisteva già un sistema, ma ne vedevo uno.
dbj44,

Risposte:


12

Come regola generale, inserisco nel file del modulo il codice richiesto più spesso (ad es. Funzioni di supporto utilizzate da più di una funzione), e nei file .inc il codice che non viene utilizzato così spesso, o che viene utilizzato per specifici pagine.

A partire da Drupal 6, il codice carica automaticamente i file contenenti i callback della pagina o i costruttori di moduli utilizzati per le voci di menu. Per tale motivo, i callback delle pagine per le pagine amministrative vengono normalmente inseriti nei file .admin.inc, mentre i callback delle pagine normali vengono inseriti nei file .pages.inc.

Da Drupal 7, i file contenenti le classi vengono caricati automaticamente quando viene creata un'istanza di una classe. Drupal 7 consente ai moduli di definire in quali file sono definiti i loro hook (tramite hook_hook_info () ). Ad esempio, system_hook_info () definisce i file .tokens.inc come file dove hook_token_info(), hook_token_info_alter(), hook_tokens()e hook_tokens_alter()implementazioni possono essere trovati; in questo modo, quei file vengono caricati automaticamente quando è richiesto uno di questi hook.
Ciò consente di dividere ulteriormente il codice in file che vengono caricati quando necessario e il codice che viene sempre caricato da Drupal.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.