Jump to content
php.lv forumi

Analgiins

Reģistrētie lietotāji
  • Posts

    336
  • Joined

  • Last visited

Posts posted by Analgiins

  1. nu es piem. emsu strādājis pie lieliem projektiem priekš WEB, bet... jau pašā topica nosaukumā ir kodolīgi pateikts - "WEB + Oracle". Ja ar web parasti saprot PHP, MySQL, CSS, JavaScript (nu moš kaut kur PostgreSQL iekš datu bāzēm), tad Oracle jau ir eksotika. Cik es pazīstu programmētājus, tad ir vai nu uz Oracle vai WEB.

     

    Edit: nu jā, lielākos kantoros pat tas WEb dalās: ir HTML koderi un PHP koderi.

  2. Bet arī developeris negrib, ka viņu čakarē! Tāpēc viņš uztaisa formu, ar kuru var ātri pamainīt tekstus.

    Pēc pieredzes... vispār šitā lieta ar daudzvalodību bieži vien izvēršas par diezgan lielu problēmu projektos. Iz dzīves.. projekts liels, frāžu daudz, programmētājs krievs, var iztulkot tikai krievu tulkojumus, latviski tulko vai nu projektu vadītājs vai kāds cits nelaimīgais, kam nav ko darīt. Protams esam kruti un saitus daudziem vajag arī ENG valodā, bet tulkot tur vispār neviens neprot! Saits tjip uztaisīts kruts (no developera viedokļa), viss kā nākas - ātrs, droš utt, bet pie velna nevar saitu nodot, kamēr nav visi teksti iztulkoti! Es domāju, ka savus saitus, CMS'us taisam tak ērtus galvenokārt kā klientiem, nu tā arī sev. Ja developeris ilgi pisīsies ar tekstiem (kuram vispār par to nav nekādas daļas, tam ir redaktori), tak klients ar cietīs.

  3. un glabāt daudzvalodu tekstus failos ir daudz fleksibilāk? :) Un ja nepieciešams uztaisīt interfeisu priekš lietotājiem (da arī priekš sevis), lai viņi paši varētu mainīt šos rakstus, frāzes, nosaukumus vairākās valodās, tad mācīsi viņiem uz servera atvērt pareizo failu un tur mainīt tekstus? :)

  4. Ja par piemēru ņemam "raksti", tad es lietotu šādu variantu tabulai:

     

    article_id | title_lv | title_ru | title_en | text_lv | text_ru | text_en

     

    attiecīgi pēc valodas skatamies, kuru rakstu ņemt.

     

    $qry = sprintf("SELECT article_id, title_%1\$s AS title, text_%1\$s AS text FROM articles", $lang_prefix);

  5. Nu vajag tāpēc, ka DBObject, DBItem un DBList vajag pārrakstīt (jo ir abstraktas). DBObject ir base klase, DBItem ir extends no DBObject, tāpāt arī DBList ir extends no DBObject. Kā es var nodefinēt jaunos myDBItem un myDBList, ja viņiem jāsatur metodes no arī pārrakstītā myDBObject plus vēl savas "mantotās" metodes no pamata klasēm DBItem un DBList? Piemēru.. nav jau ko iedot, tikai štukoju, ka to visu uztaisīt. Principā jau pirmajā postā ar to piemēru arī parādīju, kādu efektu vēlos panākt.

    Tas, ka ir iespējams multi implements, to es zinu, bet kāda jēga no tā, ja es varu "pārdefinēt" interfeicu klasei. Ja DBObject satur 50 metodes, DBList satur savas 30 metodes (tātad viņam kopā jau ir 80), un man vajag pārrakstīt vienu no tājām 50 metodēm DBObject'ā (tātad izveidoju jaunu myDBObjectu) un DBList'ā ar jāpārraksta viena no viņa metodēm. Rezultātā būtu jābūt myDBObject ar vienu pārrakstītu metodi un myDBList ar divām pārrakstītām metodem, jo viņam vajadzētu mantot gan pārrakstīto myDBObject un arī DBList. Nu kaut kā tā, ceru, ka bija saprotams.

  6. nu jā, es jau tā arī sapratu, bet kaut ko līdzīgu atradu:

    http://www.php.net/manual/en/language.oop5.php#68702

     

    Doma jau bija uztaisīt klases DBObject, DBItem, DBList. DBItem atbild par tabulas ierakstu (tātad metodes insert, update, delete, load, fields validating) un DBList atbild par tabulu - tātad sorting, filtering, pagination, bet DBObjevt satur dažas metodes, kas nepieciešamas abām klasēm, piem., setField, getField, fields formatting.

     

    Būs vien laikam jātaisa DBObject klasē factory metode, kura atgriezās vajadzīgās (pārrakstītās) klases instanci, bet savukārt DBList un DBItem klases sevī saturēs šo DBObject klases objektu un griezīsies pie viņa apmēram šādi:

     

    class myDBItem extends DBItem
    {
    function __construct()
    {
    	 // tjip kaut kā tā
    	$this->dbobject_driver = 'myDBObject';
    	$this->dbobject =& DBObject::factory($this->dbobject_driver);
    }
    
    function getField($name)
    {
    	$this->dbobject->getField($name);
    }
    }

  7. savajadzējās realizēt vienu baigo patternu, ja nemaldos, tad tam keywords ir multiple inheritance. Ir pamata klase A, un ir klases B un C, kas manto klasi A - tātad klase B satur klases A metodes un savas metodes; klase C satur klases A metodes un kaut kādas savas metodes. Šīs visas klases ir abstraktas - viņas nepieciešams pārrakstīt. Ar A klasi jau problēmu nav, bet ir problēmas ar B un C klases pārrakstīšanu, jo cik saprotu, tad tādu lietu kā multiple inheritance PHP neatbalsta. Zemāk ir kods, kā tas viss ir iecerēts, lai strādātu:

     

    // Abstraktas klases
    abstract class A
    {
    public function aFunc() {}
    }
    abstract class B extends A
    {
    public function bFunc() {}
    }
    abstract class C extends A
    {
    public function cFunc() {}
    }
    
    // Manas klases, kuras izmantoju darbībā
    final class myA extends A
    {
    // kaut ko pārrakstu
    }
    final class myB extends B,myA   // šeit protams ir sintakses kļūda (komata dēļ)
    {
    // kaut ko pārrakstu
    }
    final class myC extends C,myA   // un arī šeit protams
    {
    // kaut ko pārrakstu
    }

     

    Vai ir iespējams izveidot kaut ko tamlīdzīgu, lai varētu izmantot šādi izveidotas klases myA, myB un myC. Maybe ar interfeisu implementēšanu kaut ko tādu var panākt? Plzz help :(

     

    Edit: varbūt ar kaut kādām "factory" metodēm ko līdzīgu var panākt? A maybe ideja vispār nav laba? :)

  8. Es arī piekrītu Delfinam un bubu. Vēl tikai no savas pieredzes gribētu pateikt, ja jaunajā darbā piedāvā labu algu, labs kolektīvs, bet ir kaut kāds vecs aizlaists liels projekts, kura izstrāde velkas kādus 2, 3 gadus un tagad meklēt kādu, kas to savestu kārtībā, tad ar negribētos pie tāda ķerties klāt - to ir taisījuši citi programmētāji ar saviem ieradumiem, cits stils, bezmazvai jāpielāgojas tam, iestājas rutīna un tad jau arī zūd viss strādāšanas prieks...

    Vislabāk, ja ir kādi jauni projekti, kuri jātaisa no nulles un kuru izstrāde nav garāka par 2,3 mēneši.

  9. Jautājums cik no PHP coderiem pārzina OOP, Frameworkus,SQl , programēšanas pamatus,dokumentēšanu utt.

     

    A man tāds jautājums, kā to draba devējs pārbauda? Dod testus kādus, kaut ko uzprogrammēt vai vienkārši parādīt kādus kodus?

×
×
  • Create New...