Odradilo me to proto, ze ta popularita je z casti zpusobena Web 2.0 hype a tim, ze Railsy byly proste prvni (vicemene). Kdybych mel jistotu, ze ta popularita pochazi 100% z racionalnich pohnutek a ne ze stylu "Railsy jsou ted IN, tak se to naucim, abych byl jako taky ten webdevelopr", nevadilo by me to, jenze u Railsu tu jistotu nejak nemam...
Co se tyka "peknych URL", tak ty je mozne pouzivat i v 1.4.x za pomoci rozsireni Clean URLs (http://remi.mongus.com/stripes-clean/), i kdyz je k tomu potreba trosku vice hackovani (musite odvodit novou tridu pro stripes:errors JSP tag, protoze ta stavajici nebere syntax clean URLs v uvahu a validacni chyby se vam tim padem nikdy nezobrazi -- ale jde jen o zmenu na par radkach). V 1.5 by vsechno tohle melo byt vyreseno interne.
Kazdopadne muzete ti pomoci UrlRewrite servlet filtrem, coz je obdoba mod_rewrite pro Apache (a umi vyuzivat i specificke vlastnosti kontejneru, ne jen interni presmerovani)Asi se shodneme na tom, ze validace muze byt definovana jako proces zjisteni, zda data prichazejici od uzivatele vyhovuji nami vybranym kriterium.
Kdyz vezmete v uvahu tuhle definici, pak vas musi pristup CakePHP prastit do oci: proc nekdo vaze system validace na Model? To je ta zakladni chyba, ze validace je nejen konfiguracne vazana na Cake model (tedy to, co oni tak odvazne nazyvaji modelem, ale co je ve skutecnosti pouze servisni vrstva, na kterou bud musite zahaknout third-party ORM nebo se smirit s temi jejich PHP poli), ale i procesne -- defaultne probiha nekdy behem ukladani modelu do DB, ne? A pokud chcete v Cake validaci zaridit nejakym slusnym zpusobem, musite menit standardni chovani.
Zakladem me argumentace je totiz platne tvrzeni, ze k validaci muze dojit aniz by se nasledne cokoliv delo nad datovou zakladnou/Modelem/domenovou vrstvou (ci jak to nazveme) a take ze k validaci muze dochazet nad daty, ktera ani nikdy do databaze nemaji prijit -- a to uz stavi system validace v Cake do problemu.
Proto povazuju system validace v CI za mnohem lepsi, protoze je ABSOLUTNE nezavisly na tom, jake dalsi vrstvy jsou pod controllerem (a kolik jich je)
Mnou zminovany javovsky Stripes taktez -- validaci provadi pri databindingu na ActionBeanu. Absolutne si nedokazu predstavit, ze by validace formularovych dat mela probihat na servisni vrstve nebo snad DAO ci domenove.
S vasim oblibenym "convention over configuration" zde nepochodite, tohle je proste architektonicka chyba jak prase. Naopak, pochodim s tim ja proti CakePHP, protoze CI na rozdil od nej ma mnohem vice preddefinovanych validacnich kriterii, ktere snizuji potrebu "configuration" (4 vs. 11 + 5 pomocnych fci)
Presouvate teziste nekam jinam. Nehodlam s vami rozebirat rozdily mezi pojetim MVC v ruznych frameworcichNerozebiram tu MVC, validace dat nema s MVC nic spolecneho -- ani to kdy a kde se deje.
Podle meho nazoru je naprosto v poradku, ma-li byt vrstva zodpovedna za nakladani s daty zaroven zodpovedna za jejich validaci.Ale proc? Predstavte si, ze mate prichozi data z formulare, ktera potrebujete zvalidovat a potom nasypat napr. do generatoru faktury nebo je odeslat mailem a ta data ani neodpovidaji strukture zadneho z vasich modelu. Tak kam validaci date? V CI proste natahnu tridu validatoru, priradim ji validacni pravidla napsana pro tuto prilezitost a validator spustim. Jak napisete v Cake modelu validacni pravidlo pro pole, ktere v tom modelu neexistuje?..a i kdyby to slo, nebije vas to do oci, to takhle delat?
skoro to vypada jako by jste nevedel, ze validaci dat muzete v CakePHP provest i bez pokusu o jejich ulozeni.To, o cem tu celou dobu pisu, neni ZDA to jde udelat, ale JAK a jestli je ten nastroj dobre architektonicky uzpusobeny k tomu, aby to tak slo udelat.
To se rovnou muzeme shodnout na tom, ze udelat lze vsechno vsude a diskusi uzavrit. Ale ja tu mluvim o tom, ze tvurci Cake umistili mechanismus validace tak, ze vas v nezanedbatelnem procentu pripadu donut drbat se levou rukou za pravym uchem.....