Jump to content
php.lv forumi

john.brown

Reģistrētie lietotāji
  • Posts

    510
  • Joined

  • Last visited

Posts posted by john.brown

  1. Bet kaa tev iisti sanaak dabuut web lapaas latvieshu simbolus unicodaa (utf8) bez SET NAMES komandas?

    Diezgan vienkārši :) Iekš mysql default charset - utf-8, iekš php default charset - utf-8 un apacim arī default charset - utf-8. Nu, un tabulas ar colāciju utf8_general_ci... Ne reizi nav bijusi vajadzība pēc SET NAMES :D

  2. Bļin, iekš $query tak tev ir tikai jautājiens pie mysql servera. Kas ir jānodod serverim un jāsaņem no viņa rezultāti! Un tu JAU to esi izdarījis iepriekš. Un tur pat, kur tu tos rezultātus izvadi html tabulā, arī veido to adrešu masīvu.

  3. Parse error: parse error, unexpected T_VARIABLE in C:\EasyPHP 2.0b1\www\project1\HandleForm.php on line 7

     

    Nu bet kā mēs varam zināt, kas tev tur tai 7. rindiņā ir? Visticamāk, kāda glupja kļūda, tipa samikols iepriekšējā rindiņā aizmirsts, vai kas tamlīdzīgs :)

  4. Ir objektiņš MenuItem, un iekš tā jāpalaiž taimeris, kurš ar noteiktu intervālu izsauc kādu objekta funkciju. Nu šitā:

    MenuItem.prototype.doResize = function() {
    if(this.tSize == this.width) {
    	this.stopTimer();
    }
    else if(this.tSize > this.width) {
    	this.enlarge();	
    }
    else {
    	this.minimize();
    }
    }
    MenuItem.prototype.startTimer = function() {
    if(this.timer == undefined) {
    	this.timer = setInterval("this.doResize()",5); // te problēmiņa
    }
    }

    Nu, problēma iekš tā, ka viņš saka "this.doResize() is not a function" :( Kāds zin, kā to dabūt gatavu?

     

    -------------------------------

    Nu, patiesībā atradu :) Ja kādam vajag, vot šitā jādara:

    this.timer = setInterval(function(obj){ obj.doResize(); }, 5, this);

  5. Ja php5, tad jau var arī exception`us. Es gan neteiktu, ka tas sanāk daudz saprotamāk, bez tam, uzreiz nāk klāt darbiņš sacerēt normālas exceptionu klasītes - lai iekš šamām kāda sakarīga informācija būtu. Nu, bet tas jau gaumes jautājums :)

     

    Normāli cilvēki if nosacījumā salīdzina

    Nu neteiktu gan. If nosacījums pārbauda, vai tas, kas šamā uzrakstīts ir taisnība (true) vai meli (false). Piemēram if($variable) {} ir pilnīgi korekti, kaut es neko nesalīdzinu :) Un lasās mani nosacījumi gamdrīz normālā cilvēku valodā - ja ir kļūda saglabājot itemu, tad... Kas tur grūti lasāms?

     

    Nu nekādi neteikšu, ka šitas ir saprotamāks:

    $args = array();
    
    if(!$reques->get('do')) {
    $view = new myInputFormView();		  
    }
    else {
    try {
    	$validator->validate($request);
    	$dataItem = new myDataItem();
    	$dataItem->fill($request);
    	$dataItem->save();
    	$view = new mySuccessView(); 
    }
    catch(ValidateExcepton $e) {
    	$errors = $e->getErrors();
    	$view = new myInputFormView();
    	$args['errors'] = $errors;
    	$args['request'] = $request;	
    }
    catch(DataItemException $e) {
    	$errors = $e->getErrors();
    	$view = new myErrorView();
    	$args['errors'] = $errors;
    }
    }	 
    $view->render($args);

     

    Bez tam, divas exceptionu klases jārakst. Un validatora gadījumā tā nebūt nav triviāla :)

  6. bubu, es ko tādu domāju

    $args = array();
    do{
    if(!$reques->get('do')) {
    	$view = new myInputFormView();
    	break;
    }
    if($errors = $validator->validate($request)) {
    	$view = new myInputFormView();
    	$args['errors'] = $errors;
    	$args['request'] = $request;
    	break;
    }
    $dataItem = new myDataItem();
    $dataItem->fill($request);
    if($errors = $dataItem->save()) {
    	$view = new myErrorView();
    	$args['errors'] = $errors;
    	break;
    }
    $view = new mySuccessView();	
    }while(0);
    $view->render($args);

  7. Ar to, ka var būt zināms vairums dažādu nosacījumu, kurus sabāzt iekš viena if, vai iekš if{}else sanāk ne visai loģiski/glīti. Bet jebkurā gadījumā koda gabals ir jāizlaiž. Tad arī šāda konstrukcija ir ļoti ērta.

  8. Nu, jā, tad arī mana maziņa kapeiciņa fleimā par moduļiem ;)

     

    Par "modulāru" lapu, imho, var saukt tad, ja šamā satāv no kāda cores API, kurš nodrošina vienotu interfeisu moduļu darbībai. Moduļi paši var atkarībā no savas funkcionalitātes strādāt vai nu pilnīgi neatkarīgi no pārējiem, vai arī var būt kādas dependencijas, par kurām jau rakstīja Delfins. Ideālā variantā, dependencijām, IMHO, jābūt pēc iespējas vājām - tik lai paplašinātu esošo moduļa funkcionalitāti. Praktiski gan vienmēr ir kādi moduļi (core modules), bez kuriem tas viss vispār nevar funkcionēt...

  9. Re kur ir timeris, ko lietoju - http://paste.php.lv/4959

    Tad šamo lieto k. kā tā:

    require_once('BNC_Timer.php');
    
    $GLOBALS['Benchmark'] = new BNC_Timer(true);
    $GLOBALS['Benchmark']->setMarker('For cikla saakums');
    for($i = 0;$i < 100000;$i++) {
    ....
    }
    $GLOBALS['Benchmark']->setMarker('For cikla beigas');
    $GLOBALS['Benchmark']->stop();
    $GLOBALS['Benchmark']->display();

    Saliec visām funkcijām sākumā un beigās markerus, un skaties beigās, kas iet visilgāk. Nu un domā kā labot ;)

  10. Tak pats paskaties, kas rij resursu. Saliec uz funkcijam benchmarka taimerus, peskaties, kas tieši rij - nu un tad jau domā, kā nooptimizēt. A tā, bez komentāriem rakties cauri svešam kodam... :) Tev ātrāk sanāks :) Pilnīgi noteikti pregi bremzē, varbūt var šos aizvietot ar string funkcijām, droši vien k. kur var foreach uz for aizvietot...

  11. Nu, kā jau teicu, gaumes lieta. Ar sarežģītu kodu tu domāji pašu engine, vai lietošanu?

    Smarty salīdzinājumā ar manu pašreizējo template system ir daudz ātrāks

    Ko gan tu tur savā enginē esi salicis, ka pat smarty ir ātrāks? :D

×
×
  • Create New...