Jump to content
php.lv forumi

john.brown

Reģistrētie lietotāji
  • Posts

    510
  • Joined

  • Last visited

Posts posted by john.brown

  1. function LoginManager() {
    this.button=null;
    }
    
    LoginManager.prototype.init = function() {
    this.button = document.getElementById("buttonId");
    this.button.eventRouter = this;
    this.button.onclick = this.onClickHandler;
    }
    
    LoginManager.prototype.onClickHandler = function(event) {
    alert(this.id);
    this.eventRouter.doSomething(); // error
    }
    
    LoginManager.prototype.doSomething = function() {
    alert("done");
    }

    Šitā it kā strādā. Vismaz uz FF :)

  2. Grey_Wolf, laikam gan izteiksmi test($cc,&$dd) tomēr vajag paskaidrot cilvēkam sakarīgāk. Jo, pēc būtības, tam nav nekāda sakara ar atgriežamajām vērtībām - tā ir maldināšana.

    Tas ir veids, kā funkcijai kā argumentu padot variabļa referenci (norādi), un funkcija nevis izveido savu lokālo variabļa kopiju, kā tas parasti tiek darīts, bet veic darbības ar oriģinālo variabli. Ja iet runa par vairāku vērtību atgriezšanu, tad būtu jālieto bubu variants ar atgriežamu masīvu. References tomēr ir specifiska lieta, ko būtu jālieto ar apdomu.

  3. Kas attiecas uz "postu pievienoja", tad droši vien tabulā ar postiem likt lauku user_id. Un pēc tam selectēt no tabulām posts un users... Ielogojies - nu es parasti inicializēju lietotāja objektu. Var šamo vienreiz pie ielogošanās inicializēt, un pieglabāt sessijā - tad nav katru reizi db jātrenkā. Var sessijā oieglabāt tik user_id, un katru reizi vilkt datus no db. Gan vienam, gan otram variantam iir savi plusi un mīnusi. Bet abi lietojami :)

  4. des, ar globāļiem vispār neiesaku aizrauties. Ja nu pavisam nekādi citādi nevar, bet tad tas drīzāk ir signāls, ka ar arhitektūru kaut kas nav riktīgi :D

    $db = DB->getInstance()

    $db = DB::getInstance()...

  5. Viņš tiešām ļauj neuztraukties par db inicializāciju. Tak es teiktu, ka nevis "drīkst palikt neuzmanīgāks", bet var visu uzmanību veltīt konkrētajam kodam, ko raksta, nenovēršoties uz rutīnas darbībām :)

  6. Tad ir iespējami varianti, atkarībā kā būs realizēta tā db padarīšana :) Godīgi, nesaprotu tavu attieksmi pret paterniem - imho, tie atvieglo dzīvi un stipri palīdz sistematizēt kodu.

    P.s. es gan esmu katastrofāls oop piekritējs :D Varbūt tāpēc nesaprotu...

  7. Ir tādi, kuri uzliks pilnīgu pofigu uz OOP vispār un taisīs paši savas konekcijas, kā sagribēsies.

    Tādi ir uz līdzenas vietas jāatlaiž :) No galīgiem muļķiem tik tas var glābt...

    Var kaut vai aizmirst to instanci paprasīt, un tad brīnīties, kapēc kveriji neiet.

    Ja aizmirsīsi, tad dabūsi Fatal error:Call to a member function query() on a non-object in ... line xx. Tā ka ilgi brīnīties nenāksies :)

  8. un ja ir warning errors.. bet viss paarehjai straada.. ta funkcijas priekhsaa piedrukaa @ un viss...

    Vot tā gan nevajag darīt! Pēc tam ne pats, ne kāds cits nekādā galā netiks ar to samuģīto kodu... Pareizi uzrakstītam skriptam nav jāģenerē k. kādi warningi - ja tādi ir, tā ir potenciāla buga pazīme...

  9. Cerka --> 1 kart novers kljudu pie sesijas iestarteeshanaa

    Tak tā sessijas kļūda viņam ir dēļ lamāšanās par mysql kļūdu. Tā ka papriekš tomēr mysql, un sessija varbūt pati novērsīsies :)

  10. Tad pazudīs vajadzības pēc tā singleton patterna.

    Bet tas singletone jau kā reizi ir tā sistēmas struktūras daļa, kura neļauj vairākas reizes inicializēt to klasi :D Tas ir apmēram tā pat, kā teikt "vai nevajadzētu autiņā ierīkot tā, lai iesēžoties motors pats palaižas? Tad arī pazudīs vajadzība pēc motora"...

     

    P.S. piemērā steigā bik piemirsu, bet korekti būtu konstruktoram jābūt private, un nekā citādi, kā caur ClassName::instance() pie klases vairs tikt nevarētu...

  11. andrisp, nu nē, oop ļoti pieradina pie sistēmas darbā :) Bez tam sistemātiskums iekš oop ļoti nāk par labu galvenajam programmista tikumam - slinkumam. Esi kārtīgi visu pārdomājis - uzrakstīsi ātri, un bez hemoroja :) Nemaz nerunājot, cik laik ietaupīsi uz vēlāku modificēšanu un fīču pielikšanu...

  12. Nu re, varbūt kāds ir saskāries. Ir qmail mailing liste, kura pievieno adresi, ja sūta šai mailu uz [email protected]. Viss notiek, ja to sūta no k. kādas mozillas, bet ja ar php mail(), tad nekā. Sajūta, ka šamā confirmācijas mailu sūta ne pēc from adreses, bet kādas citas, tipa return-path, vai kā tamlīdzīgi... Varbūt kāds ir saskāries ar ko līdzīgu, un zin vainu?

  13. Nu, vispār jau gadījumā ar db klasi ir jāpielieto singletone paterns. Un atrisinās visas problēmas :)

    class MysqlClass {
    private static $instance = NULL;
    
    static function instance() {
    	// paarbaudam, vai ir izveidots klases eksemplaars
    	if(empty(self::$instance)) {
    		// ja nav, izveidojam
    		self::$instance = new MysqlClass();
    	}
    	return self::$instance;
    }
    private function __construct() {
    	// te konecteejamies ar db
    }
    }
    //--------------------
    class Authenticate {
    function whatever() {
    	 $db = MysqlClass::instance();
    	 // te daram visu, ko vajag ar db klassi
    }
    }

  14. Nu, patiesībā, ja netiek kaut kādi baigi lielie dati glabāti par lietotāju (apm. standarta uname|password|email|address), tad līdz kādiem +/- 500 lietotāju diezgan brīvi var ar txt failu tikt cauri. Tik vēlams visas darbības ar to failu veikt caur kādu specializētu klasīti... Esmu cms`us uz txt datubāzēm taisījis (kad vēl mysql ne visur bij), un nevaru teikt, ka šie kaut kā bremzējuši būtu vai citādi "trablojuši". Un pie sakarīgas db klasītes izstrāde reizēm ir vienkāršāka, kā ar sql...

     

    Bet SQL vajag mācīties :)

  15. tāpēc ir izodmāti argumenti un oop

    Patiesībā jā - oop un design patterns ir ļoti spēcīgs koda strukturēšanas instruments. Ja vēl pacensties, un rakstīt klasītes, kas nav garākas per 100-200 rindiņām, dalīt funkcijās ne vairāk par kādām 20 rindiņām, dot tam visam sakarīgus nosaukumus, tad pat ar minimālu komentāru vairumu sanāk saprotami un ērti.

×
×
  • Create New...