Dodanie galezi coyote-1-0

0

Wiem, ze to wczesnie, bo dopiero jest wersja 0.9.4. Ale dodalem juz galaz 1.0. Mozna w niej rozwijac wersje deweloperska coyote'a.

Podstawowa zmiana jaka planuje to mala zmiana w architekturze (stad nowy numerek wersji - mozliwe, ze nie bedzie kompatybilna z poprzednia wersja).

Podstawowa bolaczka obecnej wersji jest to, ze klasa Core bazuje na singletonie. Ok, ale ponosi to ze soba pare niedogodnosci. Po pierwsze - klasa moze byc dziedziczona tylko raz. Stad, koniecznosc odwolywania sie do jadra poprzez Core::getInstance() (np. w bibliotekach). I tak, np. klasa Controller dziedziczy po Core, a z kolei wszystkie kontrolery po klasie Controller. Jezeli wiec z jednego kontrolera chcemy "przeskoczyc" do drugiego poprzez metode forward(), spowoduje to blad (jezeli drugi kontroler rowniez dziedziczy po Controller).

Stad moja propozycja:

  1. Dodanie slowa kluczowego final do klasy Core (brak mozliwosci dziedziczenia po tej klasie).
  2. Rezygnacja z klasy Front_Controller -- przerzucenie kodu do klasy Core. Tam dodanie metody bootstrap(), ktora zainicjuje loader oraz klase konfiguracji itp.
  3. Podstawowe biblioteki beda ladowane przed inicjalizacja kontrolera - beda dostepne dla triggerow przed utworzeniem klasy kontrolera.
  4. Dodanie klasy Context, po ktorej beda mogly dziedziczyc bez problemu inne klasy uzyskujac dostep do obiektow jadra. Np.:
class FooLib extends Context
{
    function main()
   {
       echo $this->getContext()->bar->getName(); // przyklad uzyskania dostep do metody z innej biblitoeki
   }
}

Kolejna innowacja jaka planuje to mozliwosc wywolywania widoku w inny sposob (stary sposob rowniez zostanie zachowany). Tzn. akcja z kontrolera moze zwracac nazwe widoku ktory zostanie automatycznie wyolwany - np.:

class User extends Controller
{
    function main()
   { 
       $this->foo = 'foo';
       return 'Submit'; // wyswietlenie widoku userSubmit.php i przekazanie mu wartosci pola foo
   }
}

Tutaj mozna dodawac tickety do wersji 1.0: http://4programmers.net/trac/coyote/query?group=status&milestone=Coyote+Framework+1.0

Oczywiscie, aktualna wersja 4programmers.net powstaje pod Coyote 0.9.4. Te zmiany to tak na przyszlosc. :)

Jezeli ktos ma jeszcze jakies pomysly, ktore moga usprawnic dzialanie - zapraszam do dyskusji. :)

0

Nie wiem czy dobrze rozumiem, ale jeżeli chodzi oto, że w TriggerException będę miał dostęp do Controller to jestem za.. :D

0

Hehe, no miedzy innymi :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1