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

ZF - Problemi i diskusija

[es] :: PHP :: ZF - Problemi i diskusija

Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 33983 | Odgovora: 229 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija12.09.2009. u 22:11 - pre 177 meseci
Evo da malo ozivim temu

Dakle pisem nesto sada i naidjem na jedan za mene cudan problem...
Modifikujem jednu aplikaciju koja je bazirana na ZF-u 1.5 i koju sam pisao poprilicno davno tako da necu uvoziti neki or mapper samo treba neke sitne prepravke da uradim.

Postoje tabele koje imaju ista imena kolona, recimo svaka tabela ima kolonu koja se zove id.
Napisem upit koji jelte radi ok.

Code:

$query = "SELECT models.id, models.name, manufacturers.id, manufacturers.name FROM models LEFT JOIN manufacturers ON (manufacturers.id = models.manufacturer_id) WHERE manufacturers.name LIKE '$letter%'";

$st = $this->getDefaultAdapter()->query($query);
return $st->fetchAll();


nakon iteracije dobijem podatke koji nisu korektni (za moja ocekivanja)

Code:

Array ( [id] => 2 [name] => Alfa Romeo )
Array ( [id] => 2 [name] => Alfa Romeo )
Array ( [id] => 2 [name] => Alfa Romeo )
Array ( [id] => 2 [name] => Alfa Romeo ) 


Dakle fale polja model id i model name, prikaze samo manufacturer podatke.
Ako u bazi izmenim imena polja sve radi ok...

Malo sam vozio google i naisao da je ovaj bug prijavljen ranije:
http://framework.zend.com/issues/browse/ZFINC-42 i pise da je ispravljen ali u 1.92 ocito da nije.

Jel neko ima ideju, kako da ovo prodje sto je moguce bezbolnije jer preimenovanje kolona naravno ne dolazi u obzir :P
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
93.86.44.*

Sajt: https://avramovic.info


+46 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 02:19 - pre 177 meseci
Jesi li probao:

Code:
$query = "SELECT models.id, models.name, manufacturers.id AS man_id, manufacturers.name AS man_name FROM models LEFT JOIN manufacturers ON (manufacturers.id = models.manufacturer_id) WHERE manufacturers.name LIKE '$letter%'";

Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 11:42 - pre 177 meseci
Nisam, ali ce tako svakako da prodje... :D
Nije mi palo na pamet da modifikujem query nego sam drugacije razmisljao, u pravcu modifikacije ZF klasa...
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
93.86.223.*

Sajt: https://avramovic.info


+46 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 12:45 - pre 177 meseci
Ja ne radim sa ZF tako da u tom pravcu ne mogu da ti pomognem
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 13:13 - pre 177 meseci
Jeap, nije ni bitno, ostavio sam ovako resenje koje si napisao pa cemo u nekoj narednoj verziji mozda da ispravimo
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 13:21 - pre 177 meseci
Citat:
Mister_rap:
Malo sam vozio google i naisao da je ovaj bug prijavljen ranije:
http://framework.zend.com/issues/browse/ZFINC-42 i pise da je ispravljen ali u 1.92 ocito da nije.

Pa ja ne bih rekao da je to bug, jer ako malo pogledaš u kod neke od onih Statement klasa, ne znam koji adapter koristiš, al' evo recimo za Mysqli, jedan deo one fetch() f-je izgleda ovako:
Code:
switch ($style) {
      case Zend_Db::FETCH_NUM:
          $row = $values;
          break;
      case Zend_Db::FETCH_ASSOC:
          $row = array_combine($this->_keys, $values);
          break;
      case Zend_Db::FETCH_BOTH:
          $assoc = array_combine($this->_keys, $values);
          $row = array_merge($values, $assoc);
          break;
          
      //itd
}

Cilj mi je bio da obratiš pažnju koju PHP f-ju ovaj metod utilizuje - array_combine()! A poznato je da ta da f-ja briše duplikate, i upravo je tu odgovor na to tvoje pitanje, zašto ne dobijaš sve podatke.

Tako da, jedino i pravo rešenje bi bilo ovo što je Nemanja predložio - korišćenje alijasa...
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 13:52 - pre 177 meseci
Ne bih se bas slozio da je ovo ok nacin za resavanje problema jer ako mi tabele imaju 15 istoimenih kolona to ce biti bas kobaja od upita.
Stoga je po mom misljenju za ocekivati da zf za "normalan upit" izvrsi organizaciju u kojoj cu imati sve podakte...

Zanima me kako je to reseno, posto na onom issue trackeru pise da je to reseno.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 15:16 - pre 177 meseci
A čekaj, jel ti taj problem imaš baš sa tom Zend_Entity komponentom, pošto na tom issue tracker-u piše da je problem vezan za tu komponentu?
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija13.09.2009. u 16:18 - pre 177 meseci
Nismo se bas skapirali zato sto je moj prvi post za problem totalno nejasan i daj drugi deo za issue je pogresan (my bad sorry for that).
Ne nemam problem sa Zend_Entity to ne koristim mada kazu da bi od 1.10.nesto trebalo da bude uveden.

Ako te zanima imas:
http://www.beberlei.de/zendentity/

Moj problem je sto uglavnom radim sa or maperrima i nisam detaljno procitao dokumentaciju ali si upravu da je ono jedini nacin prema onome sto pise za zend select. U najkracem kazu da treba koristiti alias...

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija31.10.2009. u 19:57 - pre 176 meseci
Evo opet ja...

Pokušavam da kreiram rutu koja bi "pokrila" URL-ove tipa:

www.test.com/parent1/parent2/parent3/item
www.test.com/parent1/parent2/parent3/parent4/item1

Pritom, broj tih parent-a nije određen, i oni bi trebali da služe čisto izgleda radi, odnosno, radi stvaranja utiska te hijerarhije u url-u. Sadržaj na stranici se ispisuje samo na osnovu tog poslednjeg (jedinog) parametra - item.

E sad, cenim da je jedini način da tako nešto realizujem sa Route_Regex adapterom, pa sam ja u tom cilju pokušavao ovako nešto:
Code:
routes.test.type = "Zend_Controller_Router_Route_Regex"
routes.test.route = "test/(?:.*)?([^\/]+)"
routes.test.defaults.module = default
routes.test.defaults.controller = test
routes.test.defaults.action = index
routes.test.map.1 = "path"
routes.test.map.2 = "item"
routes.test.reverse = "test/%s%s"

To sam danas nešto samo sastavljao iz glave, al' nisam puno testirao, jer ne znam dal' sam uopšte na dobrom putu. Nemam ideju kako bi uopšte trebao da izgleda taj regex, i kako uopšte router-u da kažem da je taj prvi parametar (path) opcion...

Dobro bi mi došao neki savet oko toga kako da realizujem takvu neku rutu. Dakle, ta putanja (parent1, parent2, itd.) je samo "šminke" radi, a glavni parametar je taj konkretan item.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
78.155.37.*

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija01.11.2009. u 17:31 - pre 176 meseci
Hm,

Nisam previse razmisljao o ovome ali ono sto je bezbolno a prvo mi je palo na pamet je da ti url izgleda ovako:

www.test.com/item/parent1/parent2/parent3/...

ili

www.test.com/parent1-parent2-parent3/item


Ovako bi bilo krajnje jednostavno napisati, nesto ovako recimo:

Code:

$info = new Zend_Controller_Router_Route(
            '/:item/*',
            array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            )
        );


A za drugu varijantu je samo da bitno da sa nekim helperom ili kako vec buildujes parent1-parent2-parent3-itakodalje
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija01.11.2009. u 19:05 - pre 176 meseci
Tebe sam čekao...

Elem, nije meni problem da dovučem to parent1, parent2, itd. Imam jednu tabelu, koja implementira Nested set, i onda u jednom modelu koji dohvata sve item-e (sa sve depth-om), koje potom pretvaram u niz pogodan za render-ovanje pomoću Zend-ovog Navigation view helper-a. Taj niz izgleda ovako nekako:
Code:
array(
    array(
        'label'  => 'Test',
        'route'  => 'wf_default',
        'params' => array('item' => 'test')
    ),
    array(
        'label'  => 'Test1',
        'route'  => 'wf_default',
        'params' => array('item' => 'test1')
    ),
    array(
        'label'  => 'Test2',
        'route'  => 'wf_default',
        'params' => array('item' => 'test'2)
        'pages' => array(
            array(
                'label'  => 'Test3',
                'route'  => 'wf_default',
                'params' => array('item' => 'test3')
            ),
            array(
               'label'  => 'Test4',
               'route'  => 'wf_default',
               'params' => array('item' => 'test4')
            )
        )
    )
)

Dakle, standardna priča... E sad, ja imam tu rutu koja je krajnje jednostavna i koju koristim samo da bih "maskirao" taj parametar item, tačnije, da umesto ovoga: www.test.com/item/test, imam ovo: www.test.com/test. I to sve radi super. Ali ja sad samo hoću da stvorim taj utisak hijerarhije i u URL-ovima, odnosno, da ako je neki item duboko u hijerarhiji da njegov url ne bude samo www.test.com/test3, već upravo to: www.test.com/test2/test3. Sve to pre poslednjeg parametra item, treba da je običan string, i to bih takođe trebao da u definiciji stranica u ovom nizu, da dodam kao još jedan parametar u svakom tom nizu "params". To sigurno mora da se reši Regex Route-om... Ja mislim da sam blizu sa onim kodom kojeg sam napisao u mom prethodnom post-u.

I da, ne dolazi u obzir varijanta da umesto slash-a ('/') imam dash ('-').
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
78.155.37.*

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija02.11.2009. u 00:57 - pre 176 meseci
Pozdrav,

Ja pisem kod malo drgacije od tebe, al nece ti biti problem da skapiras .
A plus mi nije jasno zasto ce ti ovakva struktura? Zivo me zanima koji su benefiti...

Kako god, natjerao si me da probam da napisem ovo, i brzo sam dosao do tog resenja koje radi u mom slucaju, tako da ne vidim sto ne bi radilo i kod tebe :P

Code:

 $info = new Zend_Controller_Router_Route_Regex(
            'test/(.+)/(\d+)',
          
             array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            ),

              array(
                2 => 'id'
            )
        );


Kao sto vidis ja saljem neki broj na kraju ali ako ti je item string to nije nikakav problem jelte...

Code:

 $info = new Zend_Controller_Router_Route_Regex(
            'test/(.+)/(.+)',
          
             array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            ),

              array(
                2 => 'id'
            )
        );


Javi jel to to
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija02.11.2009. u 09:39 - pre 176 meseci
Citat:
Mister_rap: Ja pisem kod malo drgacije od tebe, al nece ti biti problem da skapiras .

Pa ja konfiguracije ruta obično držim u .ini fajlovima, tako mi je nekako preglednije, ako si na tu razliku u pisanju mislio.

E sad, možda sam te zbunio sa tim što sam malo pisao "item", a malo "test". To test bi u stvari bio neki kontroler, a na njega može da se šalje zahtev za određen item. E sad ja samo hoću da pre tog parametra item, utisnem i taj neki string, koji bi predstavljao putanju do tog item-a, čisto izgleda radi, ništa više.

Ovo što si ti poslao bi radilo u slučaju da ja uvek imam url-ove sa tom strukturom, jer si koristio taj modifikator "+" u regex-u. A ja treba da "pokrijem" i one slučajeve kad imam samo ovo: www.test.com/test - to bi bio poziv samo tog kontrolera "test", ili ovo www.test.com/test/item - poziv nekog item-a na prvom hijerarhijskom nivou (neki root item), dakle bez prethodne putanje, što će reći da taj prvi parametar treba da bude opcioni. A naravno, ta ruta treba da pokriva i sve ono za šta sam već davao primere: www.test.com/test/item1/item2, www.test.com/test/item1/item3, www.test.com/test/item1/item3/item4 - odosno item-i koji imaju svoje parent-e. I sad recimo za taj poslednji primer: konkretan item je item4, a taj prethodni parametar u regex-u (string) bi bio ovo: item1/item3.

Nadam se da je sad jasno šta hoću da postignem. Opet kažem, nije problem ako nema rešenja za ovo, jer sad trenutno koristim tu prostu rutu, koja je uvek u ovom obliku: www.test.com/test/item, bez obzira gde se taj item nalazi u hijerarhiji, al' eto samo sam malo hteo da unapredim izgled url-ova.
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.static.kdsinter.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: ZF - Problemi i diskusija02.11.2009. u 11:35 - pre 176 meseci
Koliko sam pohvatao ove tvoje itemove, tebi treba regex koji ce da uhvati sledece:
pocinje sa test - sledi 0 ili vise necega - neki identifikator

Ovo "0 ili vise necega" ne treba da se stavlja izmedju ( i ) jer te to ne zanima, zanima te samo ID (dodajem .htm na kraj da bi se lakse matchovao poslednji deo koji ti treba):

Code:

'^test/[.*]/([a-zA-Z0-9_-]*).htm$'


Hmmm... Deluje mi prejednostavno za tvoje komplikovane zahteve :D

Mada, iskreno, ne vidim razlog za sve ovo...
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
78.155.44.*

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF - Problemi i diskusija02.11.2009. u 12:56 - pre 176 meseci
Citat:

To test bi u stvari bio neki kontroler, a na njega može da se šalje zahtev za određen item.


Ovo je jedino sto me buni u neku ruku trenutno, da li je to jedan kontroller ili vise njih to jeste neki broj X?

Enivej sve jedno nije uopste komplikovano da napises to sto ti treba jelte...
Samo treba da dodas sve rute a ne da ides sa jednom :D


Code:

$info = new Zend_Controller_Router_Route_Regex(
            'test/(.+)/(.+)',
          
             array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            ),

              array(
                2 => 'id'
            )

        );


Dakle ovo sam napisao prethodno i to ce pokriti sve slucajeve tipa: test/parent1/parent2/parentX/item

Code:

$info2 = new Zend_Controller_Router_Route(
            'test/:id',

             array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            )
        );


Pokrili cmo jelte slucajve test/item

Code:

$info3 = new Zend_Controller_Router_Route(
            'test/',

             array(
                'module' => 'default',
                'controller' => 'index',
                'action'     => 'iteminfo'
            )

        );


I samo jelte poziv kontrolera test.

Trebas da vidis da li imas neke konflikte sa ostalim rutama.
Sto se tice resenja sa jednom rutom trebalo bi da moze sa regexom i recimo koriscenjem url view helpera pa da onda disejblujes taj prvi parametar.
Nisam probao jer ne radim na taj nacin, ali sam prilicno siguran da moze...
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija02.11.2009. u 15:38 - pre 176 meseci
Ne, ne, samo jedan kontroler je u pitanju.

Ok, ići ću sa ovim tvojim rešenjem sa više ruta, a u međuvremenu ću pokušavati da sve to zbudžim u jednu regex rutu. Hvala na trudu!
 
Odgovor na temu

masinac_1
Novi Sad

Član broj: 260719
Poruke: 44
*.adsl-a-7.sezampro.rs.



Profil

icon Re: ZF - Problemi i diskusija10.06.2010. u 20:56 - pre 168 meseci
Nisam nasao zgodniju temu. Ovde je pominjan smarty, zend, tako da - to je to. :)

Moje pitanje je kako da spojim zend framework i smarty, tj. umesto view da koristim smarty. Nasao sam neka resenja ali vecinom su vezana za starije verzije zenda, a po tome sto je jedno izuzetno kratko, drugo jako dugo, trece... kontam da je kroz verzije zf-a bilo promena pa necu da se vrtim u krug i pokusavam svasta.
Ako neko ima link, ili moze ukratko da objasni, bio bih zahvalan. :)
Kontam da je smarty bolji od zendovog view pa posto sam skoro krenuo sa zendom (a nesto malo pre toga sa OOP) hteo bih da od pocetka radim ispravno i na laksi nacin. Ako je ovaj nacin takav?

I jos nesto. Procitao sam tih nekoliko objasnjenja o zend-smarty, onako povrsno. Nisam siguran da se u nekim potpuno eliminise view, sto bi znacilo da view i dalje radi ali bez potrebe jer se koristi smarty. Jel tako ili smarty potpuno zameni view?
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-4.sezampro.yu.



+33 Profil

icon Re: ZF - Problemi i diskusija10.06.2010. u 21:29 - pre 168 meseci
Zend Framework primenjuje ono najbolje (best practice) iz objektnog PHP-a, što njegove komponente čini jako pogodnim za izvođenje i proširivanje (custom-izovanje) njihovih funkcionalnosti. To upravo važi i za Zend-ovu komponentu Zend_View. Klasa Zend_View_Interface definiše koje sve uslove neki "sistem" mora da ispuni da bi se ponašao kao slovo "V" u celoj toj MVC arhitekturi. Da bi napravio wrapper za Smarty ili bilo koji drugi template engine, treba samo da kreiraš klasu koja će implementirati pomenuti interfejs. Ta klasa bi, u slučaju Smarty-ja, trebala da ima instancu Smarty-ja kao člana klasa, a njega bi inicijalizovao npr. u konstruktoru. I onda, svaka od tih metoda koje moraš da redefinišeš, kako bi implementirao Zend_View_Interface, bi sadržala odgovarajuće funkcionalnosty Smarty-ja, npr. getEngine() bi samo vraćao tu instancu Smarty-ja (npr. return $this->_smarty;), __set() bi radio assign ($this->_smarty->assign($key, $val);), itd. U manual-u imaš primer jedne takve implementacije.

I naravno, posle samo treba da "kažeš" Zend-u da hoćeš da koristiš taj novokreirani View, najčešće negde u tvom bootstrap-u:
Code:
$view = new Zend_View_Smarty('putanja/do/templateFoldera');
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')->setView($view)
->setViewBasePathSpec($view->_smarty->template_dir)
->setViewScriptPathSpec(':controller/:action.:suffix')
->setViewSuffix('tpl');


E sad, ja lično mislim da se ne isplati ta integracija nekog 3rd party template engine, jer jednostavno ostaješ uskraćen za sve blagodeti koje pružaju ti built-in view helper-i. :)
 
Odgovor na temu

masinac_1
Novi Sad

Član broj: 260719
Poruke: 44
*.adsl-a-7.sezampro.rs.



Profil

icon Re: ZF - Problemi i diskusija10.06.2010. u 22:05 - pre 168 meseci
Hm.. sad se kolebam.
Tvoj webfolio koliko sam razumeo nema smarty a nemas problema sa templajtima i zadovoljan si sa view? Pa onda necu ni ja da se tripujem... :)

btw svaka cast za webfolio. Vidim da je naisao na pozitvne kritike. Zahtevan projekat za jednu osobu. Kontam da cu ga koristiti za dodatno proucavanje zenda. Necu nista da kopiram samo da vidim kako zend radi tj. neki napredniji nivo koriscenja.
Jednom kada napravim nesto konkretnije (od ovog proceduralnog sto je kao nesto:)) iskoristicu webfolio za prezentaciju.

Hvala na odgovoru. ;)

Pozzz
 
Odgovor na temu

[es] :: PHP :: ZF - Problemi i diskusija

Strane: < .. 1 2 3 4 5 6 7 8 ... Dalje > >>

[ Pregleda: 33983 | Odgovora: 229 ] > FB > Twit

Postavi temu Odgovori

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