hai sa facem si noi un framework pe sine
Moderatori: cristi, icsfails, Moderatori
-
johnny
- Senior Member
- Mesaje: 904
- Membru din: Sâm Iul 31, 2004 12:22 pm
- Localitate: Bucuresti
- Contact:
hai sa facem si noi un framework pe sine
Si pentru ca pana acum avem
si alte prajituri...
(si mai e TaniPHP)
,
toate bazate pe super, ultra, mega, ( si alte superlative) RAD framework
Mi-a placut cakePHP, pentru ca modelul era similar cu cel folosit de mine, dar ca eu nu aveam o implementare generalizata (ce face ego-ul asta)...
Studiez de ceva timp frameworkuri si arhitectura MVC, dar pana acum nu am gasit un rad framework potrivit...
am invatat si ceva Ruby ca sa pot sa-mi formez o idee despre Rails, si mai mult m-am uitat la cake...
Un alt framework care imi place este PRADO, are probleme de viteza, dar se pare ca se lucreaza la asta...
Ok, enough talking...
Deci, hai sa facem un framework romanesc, inspirat din Rails, dar nu numai...
Ce asteptari ati avea de la un RAD framework?
Ce necesitati ati vrea sa acopere?
Credeti ca e potrivita o abordare MVC?
Cine ar vrea sa participe si ce experienta are? (ar fi util si niste oameni cu un background de JAVA)
Sa vedem daca sunt doritori/interesati si dupa aia discutam probleme tehnice si analiza...
si alte prajituri...
(si mai e TaniPHP)
,
toate bazate pe super, ultra, mega, ( si alte superlative) RAD framework
Mi-a placut cakePHP, pentru ca modelul era similar cu cel folosit de mine, dar ca eu nu aveam o implementare generalizata (ce face ego-ul asta)...
Studiez de ceva timp frameworkuri si arhitectura MVC, dar pana acum nu am gasit un rad framework potrivit...
am invatat si ceva Ruby ca sa pot sa-mi formez o idee despre Rails, si mai mult m-am uitat la cake...
Un alt framework care imi place este PRADO, are probleme de viteza, dar se pare ca se lucreaza la asta...
Ok, enough talking...
Deci, hai sa facem un framework romanesc, inspirat din Rails, dar nu numai...
Ce asteptari ati avea de la un RAD framework?
Ce necesitati ati vrea sa acopere?
Credeti ca e potrivita o abordare MVC?
Cine ar vrea sa participe si ce experienta are? (ar fi util si niste oameni cu un background de JAVA)
Sa vedem daca sunt doritori/interesati si dupa aia discutam probleme tehnice si analiza...
-
johnny
- Senior Member
- Mesaje: 904
- Membru din: Sâm Iul 31, 2004 12:22 pm
- Localitate: Bucuresti
- Contact:
4. o structura care sa permita implementare rapida si debugging usor
imi place cum trateaza PRADO erorile, adica partea de trace...
Zend Platform pune la dispozitie mai multe tooluri utile pentru debugging, dar cred ca se pot emula anumite optiuni (in Zend Platform banuiesc ca sunt hard coded), printr-un sistem de logging, pentru un mod debuggind definit ...
imi place cum trateaza PRADO erorile, adica partea de trace...
Zend Platform pune la dispozitie mai multe tooluri utile pentru debugging, dar cred ca se pot emula anumite optiuni (in Zend Platform banuiesc ca sunt hard coded), printr-un sistem de logging, pentru un mod debuggind definit ...
-
johnny
- Senior Member
- Mesaje: 904
- Membru din: Sâm Iul 31, 2004 12:22 pm
- Localitate: Bucuresti
- Contact:
sorry, postul meu, nu iti raspundea la intrebare ci se referea la cele scrise mai sus...
Un framework ar insemna, prin traducere aproximativa, un "cadru de lucru".
Acesta ar trebui sa-ti puna la dispozitie mijloacele pentru a dezvolta rapid o aplicatie (RAD - Rapid Application Development), unelte pentru a dezvolta unitar o aplicatie, clase, plugin-uri etc... "gata-facute" pentru diverse utilizari..
poti sa te uiti putin pe ca sa vezi ce contine... (blueshoes e si cms, bazat pe framework) ...
IMO, framework-ul ideal ar trebui sa aiba un simplu fisier de configurare si in baza acestuia sa ruleze aplicatia, fara ca persoana respectiva sa aiba prea multe cunostinte de programare ...
Un framework ar insemna, prin traducere aproximativa, un "cadru de lucru".
Acesta ar trebui sa-ti puna la dispozitie mijloacele pentru a dezvolta rapid o aplicatie (RAD - Rapid Application Development), unelte pentru a dezvolta unitar o aplicatie, clase, plugin-uri etc... "gata-facute" pentru diverse utilizari..
poti sa te uiti putin pe ca sa vezi ce contine... (blueshoes e si cms, bazat pe framework) ...
IMO, framework-ul ideal ar trebui sa aiba un simplu fisier de configurare si in baza acestuia sa ruleze aplicatia, fara ca persoana respectiva sa aiba prea multe cunostinte de programare ...
-
aurelian
- Senior Member
- Mesaje: 833
- Membru din: Dum Iun 01, 2003 7:54 pm
- Localitate: Bucuresti
- Contact:
exmplu ActiveRecord, implementat in medick.
1. schema.sql:
[php]
CREATE TABLE `authors` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `todos` (
`id` int(11) NOT NULL auto_increment,
`author_id` int(11) NOT NULL default '0',
`description` varchar(255) default NULL,
`done` int(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `ibfk_1` (`author_id`)
) ENGINE=InnoDB;
ALTER TABLE `todos`
ADD CONSTRAINT `ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `authors` (`id`);
[/php]
2. Modele:
[php]
class Todo extends ActiveRecordBase {
private $has_one = array('author');
}
class Author extends ActiveRecordBase { }
[/php]
3. Accesarea si Modificare datelor:
[php]
$todos= Todo::find();
foreach ($todos as $todo) {
echo $todo->id . $todo->description . $todo->done . $todo->author->name;
}
// cunoscand id-ul todo-ului
$todo = Todo::find($id);
echo $todo->id . $todo->description . $todo->done . $todo->author->name;
// modificare camp done:
$todo->done = 0;
$todo->save();
// adaugare:
$todo = new Todo();
$todo->done=0;
$todo->description = 'TODO';
$todo->author_id = 0; // momentan ptr. foreign key accesul este doar read-only
$todo->insert(); // $todo->save() face acelasi lucru
[/php]
Modelele mele sunt mai mult formale, pentru ca toata magia o face ActiveRecordBase. Un dezavantaj este faptul ca se pierde din viteza de executie a scriptului, care se va compensa cu mici optimizari ale codului + un sistem de caching bine pus la punct. Avantajele sunt evidente.
Totusi mai sunt multe lucruri ce trebuiesc puse la punct. De ex. has_one este singura asociere pe care am implementat-o: pentru ca inca nu am avut nevoie de altceva. Dezvoltarea o fac dupa modelul feature-driven, adica nu am avut nevoie sa implementez o anumita cerinta, nu am implementat-o concentrandu-ma pe alte lucruri.
1. schema.sql:
[php]
CREATE TABLE `authors` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `todos` (
`id` int(11) NOT NULL auto_increment,
`author_id` int(11) NOT NULL default '0',
`description` varchar(255) default NULL,
`done` int(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `ibfk_1` (`author_id`)
) ENGINE=InnoDB;
ALTER TABLE `todos`
ADD CONSTRAINT `ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `authors` (`id`);
[/php]
2. Modele:
[php]
class Todo extends ActiveRecordBase {
private $has_one = array('author');
}
class Author extends ActiveRecordBase { }
[/php]
3. Accesarea si Modificare datelor:
[php]
$todos= Todo::find();
foreach ($todos as $todo) {
echo $todo->id . $todo->description . $todo->done . $todo->author->name;
}
// cunoscand id-ul todo-ului
$todo = Todo::find($id);
echo $todo->id . $todo->description . $todo->done . $todo->author->name;
// modificare camp done:
$todo->done = 0;
$todo->save();
// adaugare:
$todo = new Todo();
$todo->done=0;
$todo->description = 'TODO';
$todo->author_id = 0; // momentan ptr. foreign key accesul este doar read-only
$todo->insert(); // $todo->save() face acelasi lucru
[/php]
Modelele mele sunt mai mult formale, pentru ca toata magia o face ActiveRecordBase. Un dezavantaj este faptul ca se pierde din viteza de executie a scriptului, care se va compensa cu mici optimizari ale codului + un sistem de caching bine pus la punct. Avantajele sunt evidente.
Totusi mai sunt multe lucruri ce trebuiesc puse la punct. De ex. has_one este singura asociere pe care am implementat-o: pentru ca inca nu am avut nevoie de altceva. Dezvoltarea o fac dupa modelul feature-driven, adica nu am avut nevoie sa implementez o anumita cerinta, nu am implementat-o concentrandu-ma pe alte lucruri.
da e interesant modelul, dar e deja php5. eu am clase separate pentru fiecare tabela. avantjul la modelul tau este ca scrii mai putin cod (nu trebuie sa scrii clasele pentru tabele). avantajul la mine este ca pot sa implementez in clase functii specifice obiectului respectiv (adica de fapt functii care fac sql-uri mai complexe)
-
aurelian
- Senior Member
- Mesaje: 833
- Membru din: Dum Iun 01, 2003 7:54 pm
- Localitate: Bucuresti
- Contact:
aplicatia demo:
http://29dots.com/medick/eltodo.tar.gz
se dezarhiveaza si se copiaza folderul sample in document root.
am scris si un mic fisier readme.eltodo
pentru nelamuriri nu ezitati sa puneti intrebari
Daca doresti sa contribui la proiectul medick, am deschis aseara si o lista de discutii (ca orice proiect open source care se respecta) medick-devel, la care te poti abona aici:
http://lists.berlios.de/mailman/listinfo/medick-devel
http://29dots.com/medick/eltodo.tar.gz
se dezarhiveaza si se copiaza folderul sample in document root.
am scris si un mic fisier readme.eltodo
pentru nelamuriri nu ezitati sa puneti intrebari
Daca doresti sa contribui la proiectul medick, am deschis aseara si o lista de discutii (ca orice proiect open source care se respecta) medick-devel, la care te poti abona aici:
http://lists.berlios.de/mailman/listinfo/medick-devel
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori
