Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om

[es] :: PHP :: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om

[ Pregleda: 3404 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
92.36.247.*

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om22.10.2010. u 18:52 - pre 164 meseci
Dakle, naslov kaze sve.

Kakva su vasa iskustva i da li ovdje ima neko ko mi bi pomogao savjetima prilikom ulaska u svijet Doctrine-a.
Smatram da iako je na prvi pogled jako komplikovan, Doctrine ima svojih prednosti u razvijanju nekog veceg projekta,
sto mi je definitivno namjera u sljedecih par mjeseci pa bih da pocnem sto prije s ucenjem i istovremenom
implementacijom ORM-a, kako se ne bih izgubio u generic SQL-u kasnije (active record CI-ja donekle olaksava stvar
ali to mi nije dovoljno).

Kasnije, kada se "izostrim" u CodeIgniteru planiram napraviti tranziciju u ZEND framework, a ko zna, mozda nakon koje godine
ucenja odlucim poloziti test za ZCE certifikat.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om22.10.2010. u 22:09 - pre 164 meseci
Citat:
developer10: Dakle, naslov kaze sve.

Kakva su vasa iskustva i da li ovdje ima neko ko mi bi pomogao savjetima prilikom ulaska u svijet Doctrine-a.

Na mene mozes da racunas. Radim sa Doctrine-om vise od godinu dana i znam sve one fine stvari poput DB migracija, Behavior-a, Listener-a, sprecavanja lazy loading-a itd.
Citat:

Smatram da iako je na prvi pogled jako komplikovan, Doctrine ima svojih prednosti u razvijanju nekog veceg projekta,
sto mi je definitivno namjera u sljedecih par mjeseci pa bih da pocnem sto prije s ucenjem i istovremenom
implementacijom ORM-a, kako se ne bih izgubio u generic SQL-u kasnije (active record CI-ja donekle olaksava stvar
ali to mi nije dovoljno).

Sto se tice kompleksnosti; nije tezak, zaista. Dovoljno ti je par dana za osnove i navuci ces se kao na drogu. Kako sam prirodno rodjen kao lenja osoba, njega sam koristio i za najobicnije CMS-ove (npr. baza sa 4-5 tabela samo) i zavrsavao ih za par dana. Za velike projekte ORM je neophodan a Doctrine je savrsen za to. Oko CI-a ti nazalost ne mogu pomoci.

Savet: kad posle tih para dana savladas osnove, prvo sto sledece treba da naucis jesu migracije. Vrlo, vrlo jednostavno za ucenje, a bukvalno cini cuda. Ukratko; u (npr.) BaseUser klasi dodas kolonu 'last_name'. Doctrine ce kreirati migracionu klasu koja ce nakon izvrsavanja dodati tu kolonu. Poenta: imas localhost bazu i server verziju koju pokazujes klijentu. Kad uploadujes program, na serveru takodje startujes migraciju. Na taj nacin ne gubis nikakve podatke niti se zezas sa kopiranjem baze sa local-a na server itd.

Doctrine je izuzetno mocan program i nikako nemoj da odustajes od toga da ga naucis. Prava lova lezi samo u velikim projektima koje je nemoguce raditi bez ORM-a.

 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
92.36.247.*

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om22.10.2010. u 22:18 - pre 164 meseci
Hvala mitke,

nego pojasni mi malo te event listenere, i navedi jedan primjer upotrebe (in plain "naški"), a ako te ne mrzi, daj i malo koda ako je prikladno
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om22.10.2010. u 22:52 - pre 164 meseci
Nema problema, ali... zar ti nije malo prerano za listener-e?

No, evo primer:
Code:

        public function setUp()
        {       
            parent::setUp();
            $this->actAs('Searchable', array(
                    'fields' => array( 'suburb', 'related_index')  ));
                
            $this->actAs(new Doctrine_Template_Timestampable()) ;
            $this->actAs('Sluggable', array(
                    'unique'    => true,
                    'fields'    => array('title'),
                    'canUpdate' => true ));

                    
            $this->addListener( new PropertyListener() ) ;
            
            $this->hasOne('User', array(
                 'local' => 'user_id',
                 'foreign' => 'id',
                 'onDelete' => 'CASCADE'
                 ));  


Ovo je samo delic, klasa Property ima puno relacija. Obrati paznju na $this->addListener( new PropertyListener() ) ; . Ona je:
Code:

    class PropertyListener extends Doctrine_Record_Listener
    {
        /**
        * If limited user access mode is on, patch called dql
        * 
        * @param Doctrine_Event $event
        */
        public function preDqlSelect(Doctrine_Event $event)
        {
            $q = $event->getQuery();
            if ( PropertyTable::getInstance()->isAccessLimitedToLoggedUser() )
                $q->addWhere('user_id=?', User::getLogged()->id) ;
        }
    }


Prvo, da ti pojasnim sta program radi. Administracija ima vise admina, svaki kreira Property-e za sebe. Uzmimo da admin Pera ima property-e ciji su id-evi 1,2 i 3. Admin Djoka ima Property-e 4, 5, 6.

Admin Djoka dobije listu svojih property-a sa url-om tipa ...edit.php?id=4 . Medjutim, on izmeni taj URL u edit.php?id=3 a nema dozvolu da vidi Perine property-e.

E sad; ovaj problem se moze resiti na vise nacina. Definitivno najlosiji je da u kontroleru proveravas to; prvo sto kontroler ne sme da ima nikakvu logiku (MVC), drugo sto bi isti kod ponavljao, trece lako je pogresiti itd. Na moj nacin, ja sam 'patchovao' svaki Query koji se izvrsi. Tj. bez obzira kakav query da napises, ti ili neko drugi, NIKAD se taj property nece ucitati. Jednostavno, na query object ($q) se nalepi dodatni uslov a to je da kolona user_id mora biti id ulogovanog korisnika.

Vrlo jednostavno, izuzetno mocno, i lep bonus od mog klijenta koji nije dosad video ovako nesto. Budi siguran da cu i od tebe traziti kompezaciju na kraju

Zahvaljuci ovom pristupu, moj kontroler izgleda ovako:
Code:

        /**
        * Set limited access to properties
        * Logged super-admin doesn't have restrictions
        */
        public function construct()
        {
            parent::construct() ;
            PropertyTable::getInstance()->applyUserAccess(true) ;
        }
        public function index()
        {
            // do the magic of pagination
            $this->assign('allObjects', parent::setPagination(PropertyTable::getInstance()->createQuery())) ;
        }

        public function add()
        {   
            $object = new Property() ;
            $object->user_id = User::getLogged()->id ;    // @todo put in constructor of Property class 
            $this->assign('object',parent::formManager($object)) ;
        }

        public function edit($id)
        { 
            $this->reportHackIf( !$object = PropertyTable::getInstance()->find($id) ) ;
            $this->assign('object',parent::formManager($object)) ;
        }

        public function delete($id)
        {
            $this->reportHackIf( !$object = PropertyTable::getInstance()->find($id) ) ;
            $this->assign('object', parent::delete($object)) ;
        }


Znaci; u poredjenju sa svim kontrolerima koje sam ikada napravio, jedina razlika je ovo:
Code:

PropertyTable::getInstance()->applyUserAccess(true) ;


Jednom linijom koda sam totalno zastitio program od bilo kakvog neovlastenog pristupa. U Listener-u ti cak ni ne treba preUpdate() ili preDelete(); jednostavno, objekat se nece ni ucitati da bi neko mogao da ga menja ili obrise.

[Ovu poruku je menjao mitke013 dana 23.10.2010. u 00:18 GMT+1]
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
92.36.254.*

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om23.10.2010. u 09:49 - pre 164 meseci
Aha, sad mi je nesto jasnije.
evo gledam i ove behaviore, isto dobra stvar (timestampable, sluggable, itd.)

kako god okrenes, ispada da je Doctrine prepun korisnih stvari i definitivno cu ga koristiti (bar za vece projekte).

ipak, to za sobom povlaci druge stvari, a to je da kada imam manji projekt, zaboravljam standardne stvari pa da se ne bih svaki put prisjecao, morao bih i za njih koristiti doctrine.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om23.10.2010. u 13:07 - pre 164 meseci
Citat:
developer10: Aha, sad mi je nesto jasnije.
evo gledam i ove behaviore, isto dobra stvar (timestampable, sluggable, itd.)

kako god okrenes, ispada da je Doctrine prepun korisnih stvari i definitivno cu ga koristiti (bar za vece projekte).

ipak, to za sobom povlaci druge stvari, a to je da kada imam manji projekt, zaboravljam standardne stvari pa da se ne bih svaki put prisjecao, morao bih i za njih koristiti doctrine.


Sta je lose u tome da ga i za manje stvari koristis? Obzirom na ono sto ti daje, ja bih ti preporucio da za BILO koji projekat, makar i 2 tabele imao, koristis Doctrine kako bi ga naucio u potpunosti. Razmisljaj ovako; od programiranja (za strance naravno, ne sa ex-yu ljudima) se moze lepo ziveti. Ali u moru freelancer-a se MORAS necim izdvojiti jer zasto bi izgubio 2 godine da napravis CV i zaradis smesne pare ako mozes odmah da pucas visoko. Ja imam totalno prazan portfolio, extra neljubazan profil gde pise da ne radim dizajn... pa sam rezervisan jos 2 meseca unapred.

Nemoj da odustajes i vracas na 'standardne stvari'. Ako mislis na plain SQL, daleko je manja sansa da ce te klijent opet pozvati ako vidi nekog poput mene. Znam da zvuci kao samo-promocija, ali iz prve poruke sam zakljucio da nisi hobi-programer vec hoces da zaradis na programiranju.

Ajde ovako; batali behavioure i listener-e za sad, nauci da koristis DQL. Vrlo je jednostavno jer mu je sintaksa slicna SQL-u. Query-e stavi u xxxTable klase, ne u kontroler kako bi mogao da pises unit testove (i to se extra placa). Npr. u PropertyTable klasu stavi ovako nesto:
Code:

    class PropertyTable extends BaseTable
    {
        
        /**
        * Get featured properties
        * Used in landing page of site
        * 
        * @param mixed $limit
        * @return Doctrine_Collection
        */
        public function getFeatured($limit=10)
        {
            $currentDate = date('Y-m-d H:i:s') ;
            return $this->createQuery('o')
                ->select('o.*, i.*, c.*, s.*, y.*, r.*, RANDOM() AS rand')   
                ->leftJoin('o.Favouriteimage i')
                ->leftJoin('o.City c')
                ->leftJoin('c.State s')
                ->leftJoin('s.Country y')
                ->leftJoin('o.Chargerate r WITH r.start_date>?' , $currentDate )  // used to find upcoming lowest price; we are not interested in past ones
                ->orderby('rand') 
                ->limit($limit)
                ->execute() ;
        }
        /**
        * Returns an instance of this class.
        *
        * @return PropertyTable
        */
        public static function getInstance()
        {
            return Doctrine_Core::getTable('Property');
        }
    }


Vidis ovo 'leftJoin'? Doctrine se sam brine o tome da li imas one-2-many ili many-2-many relaciju, nema vise stvari 'ON x.id=y.property_id' i slicno. Tvoj DQL je isti za obe relacije. Uradi print_r($property->toArray(true)) da bi video sta dobijas.
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
92.36.254.*

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om23.10.2010. u 14:15 - pre 164 meseci
U redu, evo svakako sam do sada dosta toga procitao o DQL-u i drugim stvarima. cini se kao da sve vrlo lagano dolazi na svoje mjesto.

reci mi jesi li ikada koristio singleton pattern prilikom autentikacije korisnika? dobro, mi sada imamo mali problem jer ti radis sa Zend-om a ja s CI-jem, ali ipak mislim da cemo se skontati.

npr. postoji klasa Current_user koja ima neke staticne funkcije. na kraju poenta je da pomocu singleton patterna imamo dostupne sve informacije o logovanom useru, kao da smo ga ucinili globalnom varijablom, buduci da su u doctrine_pi.php (codeigniter plug-in fajl) autoloadani svi modeli pa tako i ova klasa Current_user.

Dakle, da li je uopste preporucljivo koristiti singleton pattern ili postoji mozda nesto drugo, bolje?
Nesto sam citao da lagano izlazi iz mode pa...
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om23.10.2010. u 14:40 - pre 164 meseci
Ne koristim nijedan drugi FW sem Doctrine-a. Za MVC sam napravio svoj kvazi-fw jer mi mnogo laksi za koriscenje, ima auto-routing i brdo drugih stvari. Pored toga, nikako mi se ne svidja da mi FW kreira forme, da moram da u kontroleru radim BILO sta sto ima veze sa prikazom, YAML i XML mi totalno necitki i konfuzni itd...

No, to nema veze. Naravno da koristim singleton; API moje User klase je otprilike ovo:
Staticke metode:
User::isLogged() ; // vraca true/false , zavisno od session-a i cookie-a (remember_me funkcionalnost)
User::getLogged() ; // vraca instancu. Tu se koristi Singleton. Ucitana User instanca se kesira u self::loggedUser(). Na taj nacin samo se jednom ucitavaju podatci iz baze. Ako User nije logovan, baca Exception
User::login($array) ; // npr. 'username'=>'Ime', 'password'=>'sifra', 'remember_me'=>1/0 ili !isset()
User::logout() ;

Dinamicke metode:
Nisu bitne za tvoj problem; najobicniji getteri i setteri.

Programiranje nije moda. Ako si nesto procitao na netu, ne znaci da je to i tacno. Problem sa PHP-om je sto je suvise lak za ucenje, zato i ima toliko polu-programera koji pune blogove pogresnim savetima. Nazalost, i sam koncept OOP-a je izgleda prevelik bauk za 85% njih.
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
*.pppoe08-1883.bih.net.ba.

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om24.10.2010. u 15:44 - pre 164 meseci
Doctrine sam spojio s CodeIgniterom na nacin da je Doctrine plug-in codeignitera

gledao sam neki tutorial, inace odlicno napravljen, ali na kraju sam vidio da su queriji ostali u kontrolerima (codeigniterovim kontrolerima, naravno) sto mi se nikako ne uklapa u koncept MVC-a.
ako ne uspijem prebaciti te upite u same doctrine modele - ne vjerujem da cu imati dovoljno volje i zelje da nastavim korisiti (tj. pokusavati koristiti) doctrine.

sam DQL nije tezak, trebace mi nesto vremena da se u potpunosti priviknem ali OK. jedino me muci sto nema dovoljno (bolje reci skoro nikako) tutoriala na temu drugih stvari, pogodnosti Doctrine-a, pogotovo u kombinaciji s CodeIgniterom.

Upravo sada mi prolaze kroz glavu razne misli o tome da sve batalim i vratim se standardnom SQL, ili CodeIgniterovom Active Records-u al eto, dacu sebi jos koji dan da sve lagano povezem pa vidim/osjetim sve beneficije Doctrine-a.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om24.10.2010. u 16:23 - pre 164 meseci
Citat:
developer10: Doctrine sam spojio s CodeIgniterom na nacin da je Doctrine plug-in codeignitera

gledao sam neki tutorial, inace odlicno napravljen, ali na kraju sam vidio da su queriji ostali u kontrolerima (codeigniterovim kontrolerima, naravno) sto mi se nikako ne uklapa u koncept MVC-a.
ako ne uspijem prebaciti te upite u same doctrine modele - ne vjerujem da cu imati dovoljno volje i zelje da nastavim korisiti (tj. pokusavati koristiti) doctrine.

sam DQL nije tezak, trebace mi nesto vremena da se u potpunosti priviknem ali OK. jedino me muci sto nema dovoljno (bolje reci skoro nikako) tutoriala na temu drugih stvari, pogodnosti Doctrine-a, pogotovo u kombinaciji s CodeIgniterom.

Upravo sada mi prolaze kroz glavu razne misli o tome da sve batalim i vratim se standardnom SQL, ili CodeIgniterovom Active Records-u al eto, dacu sebi jos koji dan da sve lagano povezem pa vidim/osjetim sve beneficije Doctrine-a.


Nije mi jasno; Doctrine ima fantasticnu dokumentaciju, sve sto ti treba jeste na sajtu. Mislim da previse stvari zelis odjednom; ostavi behaviour-e i listener-e za kraj, takve stvari ce ti trebati samo na velikim projektima. A gore sam ti vec objasnio gde se stavljaju query-u; imas lepo npr. UserTable, PropertyTable, CategoryTable klase...

Vracanje sa ORM-a na SQL je 'shoot in the leg' ideja. Ne znam na koliko bih procenio 'fixed-price-job' ako bih morao da radim cist SQL; Doctrine ubrzava stvari najmanje 10-15 puta, ne zezas se sa validacijom (gluposti tipa JS validacija necu ni da komentarisem) i ostaje ti mnogo vremena da se fokusiras na logiku koda, ne na bazu.

Pored toga, Doctrine se sam brine o 'foreign_key', delete() povezanih objekata je savrseno uradjen, ne razmisljas koja je baza (mysql, oracle...), brine se o encoding-u itd. Cak i da pogresis, Doctrine je tu da te ispravi zahvaljujuci migracijama.

Ako te ovo nije ubedilo, gledaj to sa novcane strane:
Moj prvi posao na elance-u, prazan CV i drkadzijski stav = $12/sat
Sledeci vec rezervisan posao = $15/sat

Klijent za koga sad radim (taj od $12) hoce da posle radim za njega i dalje. Juce smo pregovarali o ceni tipa $20-25 na sat.

Razlog: pravi OOP koji ne bi bio takav da nije Doctrine-a (ili npr. Propel-a), bullet-proof zastita, PHPUnit testovi.... Covek je jako dugo jurio nekog poput mene i vec je otkacio jednog freelancer-a. Sta sad radi? Angazuje dizajnere da mi spreme template (ja ne radim dizajn) da bude 100% gotov kad zavrsim ovaj rezervisani posao.

Pa ti vidi... Ovo i dalje nisu neke posebne cifre za svet (u USA je oko $40-50), ali za ex-yu mislim da nije lose. Tebi je jos lakse jer koristis out-of-the-box framework, ja sam jos i gubio vreme na mom MVC-u. Jbg. ispao sam saran, ali nema veze, bar sam zadovoljan.
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
*.pppoe08-1883.bih.net.ba.

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om24.10.2010. u 23:46 - pre 164 meseci
Pratio sam taj tutorial koji je, ponavljam, jako dobar ali doctrine queryje pravi u kontrolerima.
a posto koristim codeigniter, ako queryje stavim u doctrine model naziva npr. User.php (koji sadrzi klasu istog naziva - User) ne znam kako cu iz CI kontrolera dobiti rezultat tog query-ja

Bez doctrine-a je lako: $this->naziv_modela->naziv_funkcije() i eto ga. ali sada mislim da ne mogu na isti nacin pozivati doctrine modele iz kontrolera. Upravo pokrecem novu temu na CI forumu da vidim sta ce mi savjetovati vezano za ovo.

I jos nesto, bude li ti trebala nekada neka vrsta pomoci oko nekog projekta, razmisli o tome da mi se javis pa da uskocim. Iskustva mi ne bi skodilo a ako bi bilo i neke kinte, time bolje :)
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om25.10.2010. u 01:32 - pre 164 meseci
Citat:
developer10: Pratio sam taj tutorial koji je, ponavljam, jako dobar ali doctrine queryje pravi u kontrolerima.
a posto koristim codeigniter, ako queryje stavim u doctrine model naziva npr. User.php (koji sadrzi klasu istog naziva - User) ne znam kako cu iz CI kontrolera dobiti rezultat tog query-ja

Bez uvrede, ali sta nije jasno u recenici: A gore sam ti vec objasnio gde se stavljaju query-u; imas lepo npr. UserTable, PropertyTable, CategoryTable klase... iz prethodnog posta?
Citat:

Bez doctrine-a je lako: $this->naziv_modela->naziv_funkcije() i eto ga. ali sada mislim da ne mogu na isti nacin pozivati doctrine modele iz kontrolera. Upravo pokrecem novu temu na CI forumu da vidim sta ce mi savjetovati vezano za ovo.

Koristices jos jednostavnije:
Code:

$user = new User() ;
$user->email = '[email protected]' ;
if ( !$user->isValid() )
  .... nesto sto ce opet prikazati formu sa greskama izvucenih iz $user->getErrorStack() ;
else
  .... Pohvale, aplauzi i tapsanje po ramenu za uspesno obavljen zadatak...


Naravno, kad se izvestis, pisaces kontrolere kao u mom trecem postu i neces ponavljati kod nego staviti jos jednu klasu izmedju tvog kontrolera i BaseController-a (CI-ijev).

Citat:

I jos nesto, bude li ti trebala nekada neka vrsta pomoci oko nekog projekta, razmisli o tome da mi se javis pa da uskocim. Iskustva mi ne bi skodilo a ako bi bilo i neke kinte, time bolje


Naucicu te da koristis Doctrine, nema problema, ali jos nisam sreo kvalitetnog programera koji bi mogao da me prati. Pored toga, imam 'Contructor' program kojim za manje od 10minuta mogu da KOMPLETNO kreiram administraciju za npr. sajt koji ima Kategorije, one-2-many relaciju za proizvodima i oboje da imaju one-2-many (ili m-2-m, svejedno je) sa slikama. Migracije se naravno automatski kreiraju, kao i sve model klase. Sve je iskljucivo server-side validacija, 100% ajax ukljucujuci i upload slika. Za nedelju-dve cu kreirati video snimak constructora u akciji i staviti na youtube.

Mislim da bi bio prilicno besposlen kad bih te angazovao

Ali poenta:
ako hoces da naucis, moraces da pazljivo citas moje postove.

Evo ti nesto za razgibavanje mozga:
idi na http://brightpocket.webjobs.biz/admin
username: mitke013
password: 123123123

Igraj se unaokolo, menjas sta hoces, dodaj i brisi. Igraj se i sa menjanjem broja rezultata po strani i velicinom thumb-a : Main->settings

Btw, ovo je bilo dan-dva rada za jedan otkazan posao. Kontroler za Category stranicu je u attachment-u. Jel sad razumes zasto je bitno da naucis Doctrine?
Prikačeni fajlovi
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
*.ob.dlp379.bih.net.ba.

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om26.10.2010. u 20:14 - pre 164 meseci
Mitke, vraticemo se na staru temu kasnije, ako nije problem.

sada bih te upitao zasto mi ne prikazuje nasa slova č,ć,đ,ž,š kako treba kada koristim Doctrine? Prije nisam imao problema. Napominjem da se pogresno prikazuju (oni glupi crni znakovi, ili upitnik, zavisno od slova) samo kada tekst dolazi iz baze. sto se same baze tice, napravljena je kao i obicno, isto kao i svaka druga i radila bi OK da podatke ne vuce Doctrine.
Naravno, u CI konekciji stoji lijepo UTF-8 encoding i to nije sporno.

Da sumiram, sve sto se razlikuje sada od prijasnjih situacija je Doctrine. evo kako doctrine uzima postavke baze podataka od CI-ja (CI koristi Doctrine kao plug-in):

Code:

////  nalazi se u doctrine_pi.php (doctrine plug-in za CodeIgniter)

// we load our database connections into Doctrine_Manager
// this loop allows us to use multiple connections later on
foreach ($db as $connection_name => $db_values) {

    // first we must convert to dsn format
    $dsn = $db[$connection_name]['dbdriver'] .
        '://' . $db[$connection_name]['username'] .
        ':' . $db[$connection_name]['password'] .
        '@' . $db[$connection_name]['hostname'] .
        '/' . $db[$connection_name]['database'];

    Doctrine_Manager::connection($dsn,$connection_name);
}


a evo kako te iste postavke izgledaju u config-u CI-ja (mislim da problem izaziva nepostojanje posljednje 2 opcije kod Doctrine-a):

Code:

///////// ovo su CI database settings
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "myuser";
$db['default']['password'] = "mypass";
$db['default']['database'] = "my_db";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";


Pitanje glasi: kako dodati u Doctrine-ove postavke baze ove 2 opcije, char_set i dbcollat ? Ali u taj CI plugin fajl doctrine_pi.php (odakle potice gornji code block)
 
Odgovor na temu

developer10
profesor engleskog jezika, freelance web
developer

Član broj: 270189
Poruke: 27
*.ob.dlp379.bih.net.ba.

Sajt: www.poslovni-adresar.ba


+1 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om26.10.2010. u 20:25 - pre 164 meseci
Ok, rijesio sam problem s enkodiranjem.
 
Odgovor na temu

aleksandar.dragojlovic
Aleksandar Dragojlović
Kraljevo

Član broj: 142052
Poruke: 100
*.dynamic.isp.telekom.rs.



Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om26.10.2010. u 21:43 - pre 164 meseci
Citat:
mitke013: Naucicu te da koristis Doctrine, nema problema, ali jos nisam sreo kvalitetnog programera koji bi mogao da me prati. Pored toga, imam 'Contructor' program kojim za manje od 10minuta mogu da KOMPLETNO kreiram administraciju za npr. sajt koji ima Kategorije, one-2-many relaciju za proizvodima i oboje da imaju one-2-many (ili m-2-m, svejedno je) sa slikama. Migracije se naravno automatski kreiraju, kao i sve model klase. Sve je iskljucivo server-side validacija, 100% ajax ukljucujuci i upload slika. Za nedelju-dve cu kreirati video snimak constructora u akciji i staviti na youtube.

Mislim da bi bio prilicno besposlen kad bih te angazovao

...

Btw, ovo je bilo dan-dva rada za jedan otkazan posao. Kontroler za Category stranicu je u attachment-u. Jel sad razumes zasto je bitno da naucis Doctrine?


Hteo sam da prokomentarisem tvoj post, ne da bih kritikovao, vec da te usmerim ako prihvatis. Naime slozicemo se da niko ne treba da napravi svoj ORM, tj. da kreira od nule, kada ima gotovih resenja. Zasto - zbog svega (kvalitet, pouzdanost, mozda brzina mada nije uvek tako, optimizacija, itd).

Ja koristim uglavnom symfony framework za PHP (mada za razne projekte ja i ceo tim koristimo i Zend, Kohanu, i jos neke, kako od nas traze). I nigde nema jednostavniji admin generator nego u symfony-ju. Sada nemam vremena, ali cim ugrabim napravicu poddomen i postaviti admin za neki demo projekat. Kompletna logika je automatski generisana - ne samo kontroler vec i model, forma, filter iznad liste zapisa, sortiranja u listi, formatiranje, Add, Edit, Delete, Delete veceg broja cekiranih zapisa... Neopisivo extendable (umoran sam sada nesto pa mi ne pada nasa rec na pamet) i reusable. Mislim da Django jedini ima nesto bas tako slicno (ne znam ko se na koga ugledao) ali d aopet nije ni bluzu ovoga. Dakle sve se generise iz terminala. Jedino sto ja u konfiguraciji menjam su naslovi na stranicama i css koji se koristi.

Dakle Ok je sto zelis da napravis svoj admin generator. Pogledaj kako su ljudi to resili u symfony-ju, i probaj da napravis slicno (ili da prilagodis) za CI ili koji vec framework. Jedna od bitnih stvari je da se generisanje ne vrsi uvek vec samo prvi put, i da se tad prave cache fajlovi koji ce se dalje pozivati (kako bi rasteretio sistem i dobio na brzini).

E sada - Doctrine. Ja sam godinama koristio Propel, i posle na dva projekta Doctrine. I iako se Doctrine vise razvije u poslednjih godinu dana, meni je mnogo blizi i bolji Propel, mada je i Doctrine super. Cinjenica je da bilo koji od niih olaksava daleko rad i treba se koristiti. Samo sam ORM nece napraviti admin, to ipak mora developer da uradi...

A to sto nisi sreo dovoljno kvalitetnog programera koji bi mogao da te prati, to znaci ili da si mnogo dobar ali te je zivot naterao da camis sa nama losima ili znaci da nisi imao srece da sretnes dobre programere. U svakom slucaju ne gubi nadu i furaj 'Contructor' program
 
Odgovor na temu

Vladica Savić
Software Developer
Toronto, Canada

Član broj: 26699
Poruke: 654



+5 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om26.10.2010. u 22:03 - pre 164 meseci
Nisam koristio ovo (doctrine) ali me podseca na linq pomalo?
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
178.22.216.*



+34 Profil

icon Re: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om27.10.2010. u 00:11 - pre 164 meseci
@developer10

Video sam tvoj post i na Doctrine mailing listi. Koliko sam video, ti si ostavio unicode_sl. Kod mene je unicode_ci i nemam problema. Bolje pusti da Doctrine sam kreira sve.
Citat:


aleksandar.dragojlovic: Hteo sam da prokomentarisem tvoj post, ne da bih kritikovao, vec da te usmerim ako prihvatis. Naime slozicemo se da niko ne treba da napravi svoj ORM, tj. da kreira od nule, kada ima gotovih resenja. Zasto - zbog svega (kvalitet, pouzdanost, mozda brzina mada nije uvek tako, optimizacija, itd).

Slobodno i kritikuj, ja se nikad ne ljutim dok je kritika konstruktivna i ima primera gde gresim u radu. Copy&paste definicije iz fakultetske knjige ne priznajem.
Citat:

Ja koristim uglavnom symfony framework za PHP (mada za razne projekte ja i ceo tim koristimo i Zend, Kohanu, i jos neke, kako od nas traze). I nigde nema jednostavniji admin generator nego u symfony-ju. Sada nemam vremena, ali cim ugrabim napravicu poddomen i postaviti admin za neki demo projekat. Kompletna logika je automatski generisana - ne samo kontroler vec i model, forma, filter iznad liste zapisa, sortiranja u listi, formatiranje, Add, Edit, Delete, Delete veceg broja cekiranih zapisa... Neopisivo extendable (umoran sam sada nesto pa mi ne pada nasa rec na pamet) i reusable. Mislim da Django jedini ima nesto bas tako slicno (ne znam ko se na koga ugledao) ali d aopet nije ni bluzu ovoga. Dakle sve se generise iz terminala. Jedino sto ja u konfiguraciji menjam su naslovi na stranicama i css koji se koristi.

Da, slazem se u potpunosti. Ja sam prvi protiv izmisljanja tople vode, ali jbg, tako se zadesilo. Mislim da je najveci razlog sto sam to uradio je sto nikako ne volim YAML/XML fajlove i routing. Ajde molim te pogledaj temu http://www.elitesecurity.org/t...-Potrebne-sugestije-freelancer i daj neki komentar. Isto vazi i za developer10.
Da me neko pita, sigurno bih mu predlozio da ne napravi istu glupost kao i ja.
Citat:

Dakle Ok je sto zelis da napravis svoj admin generator. Pogledaj kako su ljudi to resili u symfony-ju, i probaj da napravis slicno (ili da prilagodis) za CI ili koji vec framework. Jedna od bitnih stvari je da se generisanje ne vrsi uvek vec samo prvi put, i da se tad prave cache fajlovi koji ce se dalje pozivati (kako bi rasteretio sistem i dobio na brzini).

E sada - Doctrine. Ja sam godinama koristio Propel, i posle na dva projekta Doctrine. I iako se Doctrine vise razvije u poslednjih godinu dana, meni je mnogo blizi i bolji Propel, mada je i Doctrine super. Cinjenica je da bilo koji od niih olaksava daleko rad i treba se koristiti. Samo sam ORM nece napraviti admin, to ipak mora developer da uradi...

Da, naravno da nece. Ali jednostavno neko ko radi bez ORM-a i pritom kaze da je to 'glupost' (prouci teme na kojima sam postovao), nikad sigurno nece raditi na ozbiljnim stvarima. I sasvim sigurno rizikuje svoj posao dok klijent/sef ne vidi nekog ko ga koristi.
Citat:

A to sto nisi sreo dovoljno kvalitetnog programera koji bi mogao da te prati, to znaci ili da si mnogo dobar ali te je zivot naterao da camis sa nama losima ili znaci da nisi imao srece da sretnes dobre programere. U svakom slucaju ne gubi nadu i furaj 'Contructor' program

[/quote]
Sta ces, skromnost mi vrlina
Da, u pravu si za ovo. Jeste offtopic, ali pogledaj temu 'OOP i broj parametara' ili tako nesto i pogledaj kakvih je ideja samo bilo. Ja se usrah od primera, kad mi covek mrtav ladan rece da sam 'aljkav i pisem gluposti'!?

Na es-u mogu da kazem da sam video samo jednog coveka da zna da programira i to zato sto sam video njegov kod. Svi ostali su samo teoretisali, pricali u prazno, brdo copy&paste definicija prepisane sa neta (sto uopste ne mora da znaci da su i tacne) i niko, bas niko primerom da pokaze gde sam pogresio. Nadam se da me sad bolje kapiras....
 
Odgovor na temu

[es] :: PHP :: Razmatram korištenje Doctrine-a u kombinaciji s CodeIgniter-om

[ Pregleda: 3404 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.