Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako zahrniete súbor PHP do spätného volania stránky Drupal?

Priamo „nezahrňte“ súbor PHP rovnakým spôsobom v štandardnom skripte PHP v rámci spätného volania stránky Drupal. Drupalov tematický a modulový systém spracováva začlenenie súborov štruktúrovanejším a organizovanejším spôsobom. Priame zahrnutie súboru PHP pomocou `include` alebo` Požadovaného v rámci spätného volania stránky sa vo všeobecnosti odrádza, pretože obchádza mechanizmy cache Drupalu a môže viesť k nezrovnalostiam a bezpečnostným zraniteľnostiam.

Tu sú vhodné spôsoby, ako začleniť funkčnosť súboru PHP do spätného volania stránky Drupal:

1. Pomocou funkcie vo vlastnom module:

Toto je najlepší a odporúčaný prístup. Vytvorte vlastný modul, vložte svoj kód PHP (obsahujúce funkcie) do súboru `.module` a potom tieto funkcie zavolajte z spätného volania stránky.

* `mymodule.module`:

`` `php

/**

* Implementuje Hook_menu ().

*//

funkcia myModule_menu () {

$ položky ['mymodule/mypage'] =array (

'title' => 'moja stránka',

'stránka callback' => 'myModule_Mypage_callback',

'prístupové argumenty' => Array ('Access Content'),

);

návrat $ položky;

}

/**

* Vrátenie na stránku pre MyModule/MyPage.

*//

funkcia myModule_Mypage_callback () {

$ output =myModule_helper_function (); // Zavolajte pomocnú funkciu

return Array ('#markup' => $ výstup);

}

/**

* Funkcia pomocníka na spracovanie logiky z pôvodného súboru PHP.

*//

funkcia myModule_helper_function () {

// Váš kód z pôvodného súboru PHP ide sem.

$ data =[1,2,3,4,5];

$ sum =array_sum ($ data);

vrátiť sa

Súčet poľa je:„. $ Sum.“

„;

}

`` `

* Vysvetlenie:

* Definujeme položku ponuky (`myModule_menu ()`), ktorá ukazuje na spätné volanie našej stránky (`myModule_MyPage_Callback ()`).

* Spätné volanie stránky využíva pomocnú funkciu (`mymodule_helper_function ()`) na zapuzdrenie logiky z pôvodného súboru PHP. Tým sa vaša stránka udržuje čistá a zameraná na spätné volanie na stránke.

* Prvok `'#markup'` render Array sa používa na výstup výsledku.

2. Pomocou funkcie témy (pre aspekty tematiky):

Ak sa váš súbor PHP primárne zaoberá logikou prezentácie, zvážte umiestnenie jeho kódu do funkcie témy.

* `Mytheme.Theme` (v priečinku vašej témy):

`` `php

/**

* Implementuje Hook_preprocess_page ().

*//

Funkcia mytheme_preprocess_page (&$ premenné) {

$ premenné ['my_data'] =mytheme_get_data ();

}

/**

* Pomocník na načítanie údajov. Táto funkcia by obsahovala kód z vášho pôvodného súboru.

*//

funkcia mytheme_get_data () {

// Váš kód z pôvodného súboru PHP ide sem (načítanie údajov atď.).

Vráťte „údaje z mojej funkcie témy“;

}

`` `

* Potom v súbore šablóny (napr. `Page.tpl.php`):

`` `php

`` `

3. Vrátane kódu v rámci vlastného bloku (menej odporúčané):

Aj keď je to možné, vytvorenie vlastného bloku na zadržanie kódu z pôvodného súboru PHP je vo všeobecnosti menej štruktúrované ako použitie modulu. Je vhodný iba pre veľmi jednoduché prípady. Stále by ste potrebovali používať API Drupal's Rendering API vo vlastnom bloku.

Dôležité úvahy:

* Zabezpečenie: Vždy dezinfikujte a overte všetky údaje, ktoré používate zo súboru zahrnutých, aby ste zabránili skriptovaniu na skripte (XSS) a ďalších zraniteľnostiach.

* Drupal's API: Využite API Drupal (napr. Funkcie prístupu k databáze, formuláre API) namiesto priameho interakcie s databázou alebo formulám v zahrnutom súbore. To zaisťuje kompatibilitu a bezpečnosť.

* caching: Drupalov ukladací systém nebude fungovať správne, ak priamo zahrniete súbory do spätného volania na stránke. Používanie funkcií v moduloch alebo funkciách témy umožňuje efektívne fungovanie mechanizmov ukladania do vyrovnávacej pamäte spoločnosti Drupal.

Prvá metóda (s použitím vlastného modulu s pomocnými funkciami) je silne uprednostňovaná pre udržateľnosť, bezpečnosť a integráciu s ekosystémom Drupal. Vyhnite sa priamemu zahrnutiu súborov PHP do spätného volania stránok, kedykoľvek je to možné.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené