modul vagy blokk

kegyelmesI képe

Hello!

Egy elvi kérdésben szeretném a tanácsotokat kérni.

Előrebocsátom nem vagyok programozó. Arra használom a Drupált, hogy az általam összeszedett vagy összegányolt javascript és php kódokat megjelenítsem a felületén. Ezt eddig úgy oldottam meg, hogy deklaráltam egy blokkot, beleszúrtam a kódot és beküldtem php beviteli formával. Amire nekem kellett tökéletesen működött.

Egy nálam webszerkesztésben jártasabb barátom, szólt hogy ez nem szép munka, tanuljak meg modult írni. Nem esett nehezemre, azóta már tudom mi az a hook, és a blokk és page hookokkal kb. meg is tudok csinálni szinte mindent amit akarok.

De...

Nem igazán érzem hogy a modulokkal való megoldás miért jobb mint a kódbeszúrásaim a blokkokba.
Azt a minőséget nem érik el hogy publikáljam őket a közösségnek.
Nem használom őket több helyen.

Ellenben ha a blokkba szúrom:
kevesebb kódot kell írnom.
Nem kell az adatbázis mellett a modulokat is mentenem.
Kevesebb az api hívás (pl. nem kellenek hookok) és így kevesebb az olyan kód ami a 7-re való verzióváltáskor esetleg megváltozhatnak.

Ennek fényében érdekelne a véleményetek, hogy van-e mégis olyan indok ami az mellett szól, hogy modulokat írjak kód beszúrása helyett.

Előre is köszi a véleményeket.

Drupal verzió: 
pp képe

Első és legfontosabb szempont, hogy a php filter biztonsági kockázatot jelent. És nem is kicsit.
Másik ami téged valószínűleg nem érint, hogy a kód verzió követhető szemben az adatbázissal. Ha nem használsz semmilyen verzió követő rendszert akkor azt ajánlom kezd el most az ismerkedést eggyel.

És akkor nézzük a híres utolsó mondatok egyikét:

"Nem használom őket több helyen."

Jelenleg ugye. És mi lesz holnap? Holnap se fogod? Biztos? Biztos mindig minden újra ki kell találnod? A programozás egyik része az, hogy megoldjuk a feladatot. A másik, hogy a feladatra készítünk egy általános megoldást (függvénynek hívják) és ezt hívogatjuk különböző paraméterekkel. De ez már művészet, egy szellemi kaland. :D

"Kevesebb az api hívás (pl. nem kellenek hookok) és így kevesebb az olyan kód ami a 7-re való verzióváltáskor esetleg megváltozhatnak."

Szerinted azt a php kódot ki hajtja végre? Biztos vagy benne, hogy kevesebb hívás kell? Nem lehet, hogy esetleg még több is? Szerinted hogy jelenik meg az a blokk? Hát a blokk modul jeleníti meg pont ugyan annyi api hívással mint amennyivel Te is tennéd ezt a kódodban. Csak a kódot nem közvetlenül a php értelmező hajtja végre, hanem egy eval utasítás:

http://blog.joshuaeichorn.com/archives/2005/08/01/using-eval-in-php/
"Besides security concerns eval also has the problem of being incredibly slow. In my testing on PHP 4.3.10 its 10 times slower then normal code and 28 times slower on PHP 5.1 beta1."

Tehát nem hogy gyorsabb nem lesz, hanem még lassabb is. Nem beszélve arról, hogy ha valami gyorsítót használsz (pl.: APC)

Hosszú távon pedig egy karbantarthatatlan és bizonytalan rendszert eredményez majd ez a fajta hozzáállás.

pp

0
0