CakePhp, aplikacija u modulima

da li je moguće u cakephp-u, podijeliti aplikaciju u module?

npr. ja bi htio da svi controlleri jednog modula budu u jednom dir-u, kao i modeli.

da li je moguće?

jer čitam na nekim drugim forumima i kažu da nije baš moguće.

jer ne bi htio da sve bude controlleru nabacano.

Nisam naišao na nešto što bi ličilo Zendovim modulima.

CakePHP pluginovi Plugins :: Developing with CakePHP :: The Manual :: 1.3 Collection ?

Zanimljivo, čini mi se da jest. Cake Plugin je slično što i Zend module.
U većini tehnologija (framework, CMS, webshop) plugin ima znaćenje nećeg što se prikaći na postojeći kod uz pomoć nekakvih dizajn patterna (Observer). Ubacivanje novog koda u tok već postojećeg koda.
Mislim (ili bolje reći mislio sam) da se barem oko toga što bi trebao biti plugin većina njih slaže i evo totalna redefinicija termina plugin u CakePHP.

Modul bi bio nešto što se može ubaciti ili izbaciti iz koda a da aplikacija dalje normalno radi. Modul bi trebao imati svoj tok. Modul koji se ne može izbaciti bio bi core modul.
I onda imaš jednu joomlu u kojoj je modul ono što je u 90% tehnologija widget.

A widget bi trebao biti zamjenjivi dio koda koji služi za reprezentaciju html koda.

za pluginove znam.

da li ima koji framework za php koji podržava izradu aplikacije u modulima?

Trebao bi definirati što ti je modul.
@Creativ_code je nedavno spomenuo Fuel gdje filozofija iza riječi modul stoji nešto slično u Magenta recimo.

E sad Magento ide do te razine kao i YUI (naravno gledano za ono što je potrebno na klient strani) da u modul odavaja kompletnu funkcionalnost određenog koda (model, controller,view).
Dok koliko sam shvatio kod Fuel, modul označava “samo” (Modul<>View) odnos, dok Controller je dio koji “pripada” aplikaciji.

Mislim da Symfony (nisam radio u 2.0) je iznimno modularan tako da bi mogao pogledati u tom smjeru.

Recimo Zendova modularnost (iako nisam već dugo radio u Zendu) se može svesti u praktičnoj primjeni na odvajanje admina od frontenda.
No ti možeš to u biti iskoristiti da cijelu aplikaciju razviješ po modulima (posebno za login i sl.) no mislim da Zend baš i nije zato primjeren. Svaki modul ima svoj boostrap file što je naravno sjajna opcija ali u nekoj praktičnoj primjeri to bi kočilo.
Isto tako Modeli su vezani po modulima (kao u Magento) što je opet sjajna opcija, ali opet koči u razvoju.
Odnosno sav je kod vezan za modul.

To je možda filozofija koja je dobra ako ideš razvijati neku platformu (opet Magento) i sl. ali ako radiš nešto za sebe ili druge vjerovatno bi trebao neki framework u kojem modularni pristup ne usporava.
A možda Synfony je na tom tragu.

U biti nemam pojma što bi ti htio ali evo jedan link HMVC Requests - General - FuelPHP Documentation gdje se spominju widgeti. A imaš nešto takvo i za CodeIgniter, proguglaj malo hmvc php framework
HMVC: an Introduction and Application | Nettuts+

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

htio bi slijedeće:

recimo da ću raditi ajmo reći jedan portal + aplikacije.
znači cijela aplikacija će sadržavati razne pod aplikacije(module) + portal (razne informacije i sl.).
ja bi svaki dio htio razdvojiti, npr. ako imam web shop da bude jedan modul, kadrovska drugi modul, nabava treći modul i sl.

u cakephp-u mogu ja napraviti sve skupa i nabacati kontrolere i modele, ali tko će se poslije snaći, ako je sve u jednom directory-u??

drugo, nije mi baš praktično da sve bude tako.cakephp je framework koji je jednostavniji, možda se ovo može kod symfony-a, moram ga detaljno proučiti.

To ti mogu i CodeIgniter i FuelPHP, jedini problem kod FuelPHP-a je njegova dokumentiranost.

koji bi preporučio?

po efikasnosti, mogućnostima?

Ja osobno bih rekao FuelPHP, ali I CodeIgniter je jako moćan, nedavno sam se sa potonjim igrao i ako imaš malo mašte možeš ga pretvoriti u čudovište neviđenih razmjera. :slight_smile:

FuelPHP mi se sviđa više iz više razloga, a neki od njih su velika sličnost sa RubyOnRails, modularnost, comandna linija za generiranje CRUD controllera i pripadadjućih mu viewova i modela, versioning baze, radi na 5.3 verziji PHP, a to je ujedno i mana zbog hostinga itd. Mana mu je slaba dokumentacija, ne podržavanje PHP ispod 5.3, mlada i mala zajednica. Ali kad vidiš tko stoji iza tog projekta ne može biti loše: FuelPHP › About

Zaboravio sam dodati izvrstan ActiveRecord pattern u korist FuelPHP-a:

Evo kako to izgleda u CI:
pr. select i join

A evo kako taj isti primjer izgleda u FuelPHP-u

Posebno je ovaj drugi dio zanimljiv, sa takozvanim lazy loadingom.

A gledaj ako ti je to cilj što naveo onda možeš i sa Zendom.

Recimo i PRADO framework može biti modularan, zašto ne, iako onaj quick start ne ide dalje od trpanja sve u jedan folder.

I cijela modularnost jest da napraviš novi folder i u njega počneš raditi view i controllere, modeli mogu biti na razini cijele aplikacije.
To je RAD pristup, isto možeš izvesti i kod Cake (valjda kroz pluginove), isto je RAD pristup.

Mislim da bi ti svaki framework trebao omogučiti modularnost, samo ovisi o tome kako je ona primjenjena.

Neznam kako je u Symfony 2.0 ali u symfony 1.4 se je moglo postići fina razina modularnosti.
Recimo kod PRADA bio bi problem kad bi unutar modula napravio komponentu i ona je opet, recimo to tako globalna.
Mislim možeš ju ti staviti u koji folder hočeš ali onda u istom trenu spremna da radi sa cijelim frameworkom.

Dok kod symfony mislim da možeš forisirati da određene stvari mogu raditi samo na određenom mjestu.
Iste sam stvari vidio i kod Yii.

No tu su već one stvari koje ne trebaju u nekakvim manjim do srednjim aplikacijama tako da bi i to trebao uzeo u obzir.

baš isprobah CI i odlično radi.

drugo pitanje u vezi korištenja frameworka.

vidio sam listu frameworka na wikipediji. ono što me zabrinjava jest životni vijek???

Comparison of web application frameworks - Wikipedia, the free encyclopedia

uzmimo da firma počinje razvijati aplikaciju koristeći neki framework i nakon x godina ovog prestanu razvijati, tj. projekt propadne.ima dosta frameworka koji se više ne razvijaju.

ako framework propadne onda cijelu aplikaciju treba seliti na novi framework.

zar nije onda bolje ispočetka napisati nekoliko svojih klasa i config datoteka i krenuti u razvoj ispočetka, možda duže traje ispočetka,
ali ako se dobro sve posloži tada je razvoj dodatnih stvari jako brz???

Pa rijetko kad neki ozbiljniji framework propadne jer ljudi koji ga održavaju i rade cijelo vrijeme rade sa njime, pa onda ako ništa drugo održavaju na životu.

Umjesto pisanja svojih klasa moraš gledati da već te klase imaš napisane u tom frameworku, pa ko propadne može ga nastaviti održavati.

Pa da puno brže, nevjerovatno brže je u biti sve imaš u malom prstu.
Ali nije baš samo tako razviti framework a ponekad i nema smisla.
Ja sam razvio nešto svoje i čudio se stvarno mjesecima kako sličan framework ne postoji i onda naletio na CakePHP i svatio to već postoji 7g.

I prvi puta sam tek sad upoznao značenje riječi što znaći raditi u frameworku koje se oslanja na konvenciju.
Mislim svi pričaju o toj konvenciji prednost pred konfiguraciju, a mislim ono gdje je to u Zendu.
Defaultni url rewrite i sve vezano uz to. I to je cijela konvencija koja sam u Zendu vidio.
Tak da lako ti se dogodi da ideš pisati već napisano.

Zašto bi selio aplikaciju na novi framework, ako s ovaj prestane razvijati??? Pa imaš source kod od frameworka i možeš po njemu drljati i brljati koliko te god volja. Pa te onda boli briga dali se taj framework razvija dalje ili ne.

Framework je puno više od nekoliko klasa i confgi datoteka, za firmu se isplati razvijati svoj framework jedino ako je posrijedi nešto vrlo specifično, a za većinu zahtjeva neki od OS frameworka će biti sasvim dovoljan.