Jump to content
php.lv forumi

daudz inkludes VS maz inkludes


Valcha

Recommended Posts

Man jautājums no programmēšanas teorijas. Es rakstu kodu tā, ka man ir index lapa un tad ir pāris faili, kas glabā funkcijas. Es parasti lapas sākumā inklūdoju nepieciešamos lielos inc failus. Kāds draugs to ieraudzīja un izteicās, ka nav labi inklūdot garus failus ar daudz jo daudz funkcijām.

 

Viņa pieeja ir tāda, ka index lapā tiek noteikts pie scenārija

if (nospiests tas)

{

inklude fails_ar_funkcijaam

funkcija()

}

elseif (nospiests tas2)

{

inklude fails_ar_funkcijaam2

funkcija2()

}

 

Kad būs lielāka ātrdarbība? Man liekas gari rakstīt inklūdes katrā augšējā IFā, ja man pa visu lapu tādu ir kādi 20 ja ne 40.

 

Iepriekš pateicos par padomu.

Link to comment
Share on other sites

Ja tu rakstīsi include/require ('fails..'), tad tas fails inklūdēsies un izpildīsies katru reizi pa jaunam. Bet ja rakstīsi include_once/require_once (..) tad fails inklūdēsies tikai pirmo reizi, un katrs nākamais inklūdes izsaukums ignorēsies.

RTFM.

Link to comment
Share on other sites

pārsēs pa jaunam, jo iepriekšējie mainīgie var tikt mainīti, no kā arī atkarīgs to mazo include gala rezultāts (ja tāda atkarība pastāv protams)...

 

Protams, ja vajag kādas globālas/neatkarīgas no skripta mainīgo `kūlās f-jas` (viss tiek padots argumentos), tad var uzcept atcevišķu php moduli :)

 

Teiksim visādas texta konversijas, array-darbības... tas tā... kā alternatīva ātrdarbības palielināšanai...

Link to comment
Share on other sites

Un ja netiek dots - dabūjam fatal error?

 

ir arī vēl viena perversā metode

 

funcs.php

function x($a)
{
return include 'func.x.body.inc.php';
}

function y($b)
{
return include 'func.y.body.inc.php';
}

 

func.x.body.inc.php

<?php
$a = $a . 'just a simple example';
return $a;
?>

 

 

Un vispār, visus šitos preloadingus/optimizāciju risina ar pre-compiled php, to biš ar optimizatoriem, kuri jau uztaisa opkodus...

Edited by Delfins
Link to comment
Share on other sites

varbūt negluži par tēmu, bet lielākiem projektiem svarīgi ir nosaukt f-jas pareizi, paredzēt ka vēlāk viņa darīs kaut ko vairāk nekā tagad, atcerēties ka tāda f-ja jau ir un nevajag rakstīt vēlreiz, sadalīt f-jas pa loģiskām grupām.

 

ja ir 10-20 f-jas, tad 'pa lielam' ir vienalga kā un kur viņas inkludo.

Link to comment
Share on other sites

SkaKri, nu tu pats rakstījis... if (_POST) then include func.php

Tas nav OK..., ja netiek padots _POST

 

Un vispār jāizvairās no savām f-ju gigantiskajām libām... Pietiek ar txt-apstrādes libu... Imho, izmantojam OOP, specifiskus algoritmus saliekam pa plauktiņiem un inkludojam, kad vajag...

Link to comment
Share on other sites

skaidri uzrakstīts (upd: ā, nē, nepierakstīju gan. miega trūkums) - JA tiek izmantots (atceries - piemērs, tikai piemērs!) pie submitēšanas. tas ir tikai varianta sākums.

Edited by SkaKri
Link to comment
Share on other sites

Funkciju, kuras vajag visa skriptā, neatkarīgi no darāmā, tiešām, parasti nav daudz. Tās tad arī includo vienmēr sākumā. Un tad sadali to skriptu pa failiem, kuri katrs dara savu specifisku darbiņu, un inklūdo atkarībā no padotajiem parametriem. T.b. pats index fails veic tik includu managment :)

Bet optimālāk un jēdzīgāk protams ir darīt kā Delfins teica - OOP ar pārdomātu struktūru. Iekš php5 vēl __autoload() stipri jauka ir. Tad tiešām includojas tik tas, kas ir nepieciešams katrā konkrētajā gadījumā.

Link to comment
Share on other sites

×
×
  • Create New...