Super, chetnie pomoge.
Tworze biblioteki dla PHP opensource, wiec jesli dzialasz na github/bitbucket daj znac na PW
Tak jak kolega @Ehlert wspomnial moze to wiazac sie z wieloma przeszkodami w implementacji w roznych projektach, ale to juz samemu mozna przepracowac.
Mam odnosnie takiego frameworka kilka pomyslow, bo sam sie wczesniej przymierzalem.
Na co dzien jestem daleki od tworzenia frameworkow, wystarczy nam ich a brakuje nam bibliotek do szybkiego klejenia roznych rozwiazan.
Moje propozycje na dzis to:
+ uproszeczenie walidacji i komunikacji poprzez wyrzucenie routingu do poziomu klas
+ Exception wyrzuci za kazdym razem, jak bedzie blad, i framework bedzie bazowal na obsludze nie routingu a mapowaniu requestow przez Exceptions
+ Bo kazda operacja, zle obsluzona powinna byc automatycznie logowana
Dodatkowo sam sposob osblugi danych wejsciowych i wyjsciowych z parametrow mozna by od razu ladowac do objektow, w czym moze pomoc jedna z moich otwartych bibliotek do obslugi kolekcji (tworzenie, dodawanie, usuwanie, filtrowanie, konwertowanie)
// Struktura
Transaction: Client/Server
.Request
..Url /Resource
...Method /Command
....Data Params/Blob
.....Exception
// Client side
// Request, przyklad wysylania:
try{
new Request(
new Url(),
new Method()
new Data()
);
} catch() {
echo 'Problem';
}
// Server side
// Response, przyklad odbierania:
// inicjuje obiekty z zapytania przychodzacego do serwera
// GET /user/login
use /Server/Response;
class UserLogin{
public function __construct(/Server/Method $method, /Server/Data $data)
// Co to za metoda?
$method->getName();
// jak pobrac nazwe usera do logowania?
$data->getPost()->getUsername()
}
...
}
// autoload laduje pliki
function __autoload($classname) {
$filename = "./". $classname .".php";
include_once($filename);
}
Reasumujac, dzialajmy!
w koncu na bledach sie uczymy kazdego dnia,
Co do kodu mysle ze mozna stworzyc wersje jednoplikowa dla klienta, bo kod jest prosty a kazdy kto potrzebuje prostego rozwiazania nie bedzie musial nawet bawic sie w ladowanie paczek, aby tylko zrobic jakiegos Requesta.
Server powinien juz byc wersja composer-owa