Jump to content
php.lv forumi

Multivalodu uzstadishana un darbiba


THE AgS

Recommended Posts

Sveika gudraa latvijas tauta! gribetu dzirdet ieteikumus par vairakvalodu lapu. gribu lai ir normali! tagad man ir ta ka var izveleties saita valodu un lietotaji savu. bet lieta nav par to! gribetu uzzinat ieteikumus par tie6i pa6u valodas failu taisi6anu, lai nenoslogotu serveri! tgd man ir katrai lapai inkludotas 2 valodas daljas, sistemas valoda un lietotaja, funkcijam valodu es defineju ar define("TE_NOSAUKUMS","TE_TEKSTS");, a parasti ir $lng['MAPE']['ID'] ='TEKSTS'; Valoda ir uz faila, mapem izmantoju php_shelfu lai noteiktu vai inkludot galvenaja valodas faila noteikto valodas failu, kas ir shai mapei! gribetu dzirdet noteikumus, lai maksimali mazinatu resursu rishanu!

Link to comment
Share on other sites

kāpēc domā, ka tavi valodas faili noslogo serveri ? Mērīji vai kā ? Varbūt ir citas lietas, kuras ir vērts optimizēt.

Ja valodas teksti glabājas php failā, tad tas jau, man škiet, ir pats ātrākais veids. Vienīgais, ja tev lapā 10 valodu php includes, tad vari mēģināt viņus apvienot vienā php failā, bet tur minimāla atšķirība būs.

Link to comment
Share on other sites

Sveika gudraa latvijas tauta! gribetu dzirdet ieteikumus par vairakvalodu lapu. gribu lai ir normali! tagad man ir ta ka var izveleties saita valodu un lietotaji savu. bet lieta nav par to! gribetu uzzinat ieteikumus par tie6i pa6u valodas failu taisi6anu, lai nenoslogotu serveri! tgd man ir katrai lapai inkludotas 2 valodas daljas, sistemas valoda un lietotaja, funkcijam valodu es defineju ar define("TE_NOSAUKUMS","TE_TEKSTS");, a parasti ir $lng['MAPE']['ID'] ='TEKSTS'; Valoda ir uz faila, mapem izmantoju php_shelfu lai noteiktu vai inkludot galvenaja valodas faila noteikto valodas failu, kas ir shai mapei! gribetu dzirdet noteikumus, lai maksimali mazinatu resursu rishanu!

 

Hmm nez man multivalodu lapas super strada lai ari define('DEFINEJUMS_TE','Teksts') ir loti daudz..drizak ka mekle vainu vai nu attelos, kuri ir par lielu vai ari pashaa tiiklaa..parak lens nets vai parak daudz savienojumu ar tiiklu.ja tev pasam savs serveris ir ta drizak ka neesi pareizi serveri uzstadijis vai ari serveris pieslegts lenam tiklam. Valodaas vaina simpunkt ka nau.

Link to comment
Share on other sites

šis paragrāfs neattiecas tikai uz valodas failiem, bet vsp: lai mazāk nodarbinātu serveri, lieto cache. tb uztaisi tabulu Cache, kur saglabā html kontentu - lapas daļas/fragmentus vai pat visu lapu no <html> līdz </html>. tad nākamajā reizē/pieprasījumā visi dati nav no jauna jāvāc kopā no vairākām tabulām. tāpat arī tos konstanšu failus inkludo tikai tad, ja pieprasītais kontents nav iekš cache, un šo kontentu vajag izveidot no jauna. statisks kontents var ļoti ilgi atrasties iekš cache, kamēr admins caur cms to nepamaina (pie šādām izmaiņām ir jānodzēš attiecīgā rindiņa Cache tabulā). savukārt dinamiski kontenti mainās biežāk, piemēram, pēc katra apmeklētāju pievienotā komentāra. tā kā SELECTi parasti ir ap 90% no visām db darbībām, tad šāds papildus menedžments ar Cache atmaksājas (kad perfromance ir svarīga)

 

attiecībā uz include & define() performanci

$gnTime = 0;
function timeu() {list($sSecU, $sSec) = explode(' ', microtime()); return $sSec + $sSecU;}  // izdod pašreizējo laiku: sekundes + mikrosekundes (aiz "komata")
function timerSet() {global $gnTime; $gnTime = timeu();}
function timerGet() {global $gnTime; return round(timeu() - $gnTime, 6);}
function timerEcho($sInfo = '') {printf('%s%.4f<br />', $sInfo, timerGet());}  // parāda laiku ar precizitāti līdz 100 mikrosekundēm (ilgākām darbībām). lielākas precizitātes mērījumiem desmitos mikrosekunžu (vai vēl mazāk) ir jāņem vērā arī pašas funkcijas izsaukuma laiks (tb tad būtu jāizmēra function call overhead)

function constMk($iCnt) {  // izveido valodas failu ar $iCnt konstantēm garumā 100-200 simboli ('a')
$h = fopen('lng-' . $iCnt . '.php', 'w');
fwrite($h, '<?php' . "\n");
for ($i = 0; $i < $iCnt; $i++) fwrite($h, "define('_Tx-" . $iCnt . '-' . $i . "', '" . str_repeat('a', rand(100, 200)) . "');" . "\n");
fwrite($h, '?>');
fclose($h);
}
function constIncTimer() {  // mēra konstanšu include performanci dažāda izmēra konstanšu failiem
timerSet();
include 'lng-100.php';
timerEcho('100 const include: ');

timerSet();
include 'lng-1000.php';
timerEcho('1000 const include: ');

timerSet();
include 'lng-10000.php';
timerEcho('10000 const include: ');
}

constMk(100); constMk(1000); constMk(10000);  // izpilda 1x, lai izveidotu testa datus (pēc tam aizkomentē)
constIncTimer();  // izpilda daudzreiz, kamēr iegūst pietiekami ticamu vidējā laika novērtējumu

/*
aptuvens vidējais rezultāts uz mana pc:
100 const include: 0.0030
1000 const include: 0.0250
10000 const include: 0.2100
*/

kā redzams 1000 konstantes (~170KB) uz mana pc inkludojas 25ms. manuprāt tas ir diezgan daudz tikai priekš konstantēm, jo uzskatu, ka visai lapas apstrādei servera pusē būtu jāpietiek ar dažiem simtiem ms, lai kopā ar ceļā pavadīto laiku userim izmaiņas lapā parādītos jau pēc 0.5s (max 1s). ok, ja ir daudz bildes, tās atnāk mazliet vēlāk, taču galvenais, lai html ātri būtu klāt. kr4 pēc iespējas vajag inkludot tikai to, kas ir nepieciešams, un nedarīt liekas darbības/muļķības. tad viss būs ātri ;)

Link to comment
Share on other sites

PALDIES! Palasiju citos forumos ari un izdariju ar phpshelfu, karo4a man mape lang/valoda/ vinsh inkludo php shelfa failu, ja shelfs /book/index.php tad vin6 inkludo lang/$VALODA/book/index.php, bet temam un funkcijam njemshu tavu :)

Link to comment
Share on other sites

Es šādi darītu.

 

[lv.php]
$lang[0]="Es";
$lang[1]="mācos";
$lang[2]="PHP";

[en.php]
$lang[0]="I";
$lang[1]="learn";
$lang[2]="PHP";

if(isset($_COOKIE["en"]))
{
 include("en.php");
}

echo $lang[0]." ".$lang[1]." ".$lang[2].".";

 

PS

 

Pie nosacījuma ja nav jāveido gari teikumi, jo mainoties valodai, mainās arī vārdu izkārtojums.

Edited by Morphius
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...