Clicky

Skocz do zawartości


Zdjęcie
- - - - -

[K2] Kohana 2.3.4.5 - pomysły?

8 odpowiedzi w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 phpion

phpion

    Senior Mastah

  • Użytkownik
  • PipPipPip
  • 774 postów
  • Skąd:Sosnowiec, Dąbrowa Górnicza

Napisano 09 czerwiec 2012 - 12:17

Witam,
od jakiegoś czasu pracuję nad własną wersją Kohany 2.3.4, którą wstępnie oznaczyłem sobie numerem 2.3.4.5 :) Kod oryginalnej wersji jest przeze mnie kompletnie przeorany, z tego co doszło mogę wymienić m.in.:
- eliminacja klas _Core oraz ich rozszerzania,
- poprawiony mechanizm kaskadowości o dodatkowy poziom związany z nazwą aplikacji (typu frontend, backend, cron) funkcjonujący m.in. we wczytywaniu widoków czy konfiguracji,
- podział internal_cache na aplikacje,
- możliwość cache'owania całego gotowego wyjścia HTML wraz z możliwością dynamicznego podstawienia treści (np. nazwy aktualnie zalogowanego użytkownika),
- poprawiony Query Builder m.in. o możliwość używania Database_Expression (aktualnie po prostu Expression) we wszystkich metodach jako dowolny parametr, poprawna obsługa ->orwhere() (kwestia nawiasów),
- możliwość definiowania behavior'ów dla modeli ORM (idea znana chociażby z Yii czy CakePHP - moim zdaniem świetna sprawa!),
- możliwość nadpisania konfiguracji oraz tłumaczeń z poziomu bazy danych,
- dodanie uruchamiania zdarzeń podczas wstawiania/edycji/usuwania obiektów ORM.

Po zakończeniu prac planuję upublicznienie gotowego systemu. W idei ma to być gotowy szkielet całej aplikacji wraz z podstawowymi modułami (Auth, ACL itd). Wiem, że K2 to na chwilę obecną "staroć", ale by osiągnąć w nowszych wersjach efekt, który już teraz mam osiągnięty musiałbym również orać same źródła (nie wszystko da się zrobić extendsami). Przyznam, że nie jestem w stanie aktualnie wymienić wszystkich zmian jakie naniosłem (na początku je notowałem, potem nie) - mam nadzieję, że uda mi się je potem wychwycić jakimś diffem. Całość robię głównie z myślą o sobie, ale może ktoś również z tego skorzysta.

Pytanie zatem do wyjadaczy K2: czy macie jakieś sugestie co warto byłoby zmienić/dodać do K2? Nie chodzi mi tu o konkretne moduły ale poprawę funkcjonalności samego core.

Pozdrawiam,
phpion
Notifero - Technologie Informatyczne | Warsztat: Kohana 3.x/2.x + PostgreSQL/MySQL | Programista Kohana

#2 Zepco

Zepco

    Senior Mastah

  • Moderator
  • 1583 postów
  • Skąd:Kielce

Napisano 09 czerwiec 2012 - 16:15

Mam pytanie do:

- eliminacja klas _Core oraz ich rozszerzania,

Czy nadal istnieje możliwość nadpisywania klas?

OŚWIADCZENIE: Ja, niżej podpisany, świadomy wszystkich konsekwencji tego posta postanawiam go dopuścić do użytku publicznego, albowiem bo gdyż aczkolwiek uważam, że nie wyrządzi on (znaczy: post) krzywdy nikomu innemu niźli mnie samemu (czyli autorowi posta).
-- Zepco --


#3 thejw23

thejw23

    Senior Mastah

  • Webmastahy
  • PipPipPip
  • 824 postów

Napisano 09 czerwiec 2012 - 22:18

Ilość zmian jest taka, że chyba ciężko wymyślić 'co by tu jeszcze...'.
Może coś do formularzy, coś lepszego niż standardowy helper Form, powiązanego z ORM aby generować na podstawie modelu itp itd?


#4 phpion

phpion

    Senior Mastah

  • Użytkownik
  • PipPipPip
  • 774 postów
  • Skąd:Sosnowiec, Dąbrowa Górnicza

Napisano 10 czerwiec 2012 - 11:31

@Zepco:
I nie, i tak. Z jednej strony nie ma możliwości wykonania Klasa extends Klasa_Core bo klasy _Core sprowadzone są do samego Klasa. Z drugiej jednak strony zawsze można "rozszerzyć" klasę przez skopiowanie pliku do katalogu application czy modułu i wprowadzenie zmian bezpośrednio w nim. Dlaczego zdecydowałem się na taki krok?
- po dostosowaniu klas pod swoje potrzeby nie miałem konieczności ich rozszerzania (ewentualność kopii pliku mi wystarcza) więc funkcjonalność ta była mi zbędna,
- mniej klas do wczytania, mniejsze zużycie pamięci,
- pozbycie się eval(),
- podpowiadanie metod w IDE :)
Z moją wersją Kohany zintegrowany jest od razu moduł multi_lang. Router z katalogu system został uzupełniony o brakujący kod. Gdybym bawił się w rozszerzanie klas, w którymś momencie mogłoby się okazać, że kolejny moduł również potrzebuje rozszerzyć klasę Routera. Wówczas zrobiłby się klops. Zatem: wszystko co potrzebuję integruję bezpośrednio w core, a większe rzeczy wydzielam do modułów.

@thejw23:
Do formularzy mam praktycznie ukończony moduł o nazwie Formject (form + object = formject). Powstał on na idei modułu, który kiedyś tworzyłem w firmie. Dzięki temu poznałem ograniczenia tamtej wersji i jej następca będzie ich pozbawiony (aczkolwiek z czasem wyjdą inne). Główną jego ideą jest traktowanie poszczególnych elementów formularzy jako osobne klasy. Mamy podział na 2 typy elementów: kontener (formularz, fieldset, może być div) oraz pole (tekstowe, hasła). Każdy z tych elementów może mieć własny widok, czyli sposób wyświetlania. Do pól może być od razu przypisana walidacja (np. do pola wyboru daty mamy valid::date oraz valid::date_format <- nowa metoda), mogą samoczynnie wczytywać skrytpy JS (np. pole wykorzystujące TreeView musi wczytać skrypt oraz style). Główną zaletą modułu jest dla mnie obsługa tablicowych danych (czego np. w Formo nie było - o ile się nie mylę). W 99% przypadków przesyłam dane zgrupowane na zasadzie obiekt[pole]. Głównym wymogiem, jaki postawiłem sobie podczas pisania tego modułu była możliwość dowolnego ukształtowania formularza z wykorzystaniem tylko i wyłącznie echo $form. Dlatego też mamy możliwość umieszczania dowolnych danych przed i po elementem wewnątrz i na zewnątrz elementu. Dzięki temu można dowolnie "opakować" każdy element według własnych potrzeb. Elementy wyświetlane są wg konkretnego schematu zapisanego w pliku widoku. Domyślnie widok znajduje się w pliku (przykładowo) views/formject/container/default.php. Jeśli chcemy zmienić schemat dla frontendu wystarczy utworzyć plik views/frontend/formject/container/default.php. W tym momencie wchodzimy w innego moda, a mianowicie w ulepszoną kaskadowość :) obejmującą config, controllers oraz views.
Notifero - Technologie Informatyczne | Warsztat: Kohana 3.x/2.x + PostgreSQL/MySQL | Programista Kohana

#5 thejw23

thejw23

    Senior Mastah

  • Webmastahy
  • PipPipPip
  • 824 postów

Napisano 10 czerwiec 2012 - 19:23

Ciekawe, ciekawe... Na pewno bardzo dokładnie się z Twoją Kohaną zapoznam i myślę, że może ona wywołać sporo dyskusji i pozytywnych emocji na naszym forum. Może i miałem rację pisząc, że jeśli więcej osób zacznie publikować własny kod, moduły, wtedy forum nieco się rozrusza :)

#6 Zepco

Zepco

    Senior Mastah

  • Moderator
  • 1583 postów
  • Skąd:Kielce

Napisano 10 czerwiec 2012 - 20:07

Czy ten formject też będziesz chciał opublikować, bo jest wart uwagi. Wymieniłeś w nim wszystkie cechy o jakich myślałem żeby wprowadzić wzorując się na formo, ale eliminując jego drażniące strony.

OŚWIADCZENIE: Ja, niżej podpisany, świadomy wszystkich konsekwencji tego posta postanawiam go dopuścić do użytku publicznego, albowiem bo gdyż aczkolwiek uważam, że nie wyrządzi on (znaczy: post) krzywdy nikomu innemu niźli mnie samemu (czyli autorowi posta).
-- Zepco --


#7 phpion

phpion

    Senior Mastah

  • Użytkownik
  • PipPipPip
  • 774 postów
  • Skąd:Sosnowiec, Dąbrowa Górnicza

Napisano 10 czerwiec 2012 - 20:12

@thejw:
Na pewno gdy opublikuję swoją wersję Kohany to dam znać na forum.

@Zepco:
Formject byłbym w stanie opublikować w tym tygodniu. Problem w tym, że wykorzystuje on również nieco zmian z helpera form czy klasy Validation, a także korzysta z dodatkowych klas (stworzyłem np. osobną klasę do zarządzania atrybutami HTML). Tak więc odpalenie samego modułu na gołej Kohanie na pewno wywali błędy.
Notifero - Technologie Informatyczne | Warsztat: Kohana 3.x/2.x + PostgreSQL/MySQL | Programista Kohana

#8 Zepco

Zepco

    Senior Mastah

  • Moderator
  • 1583 postów
  • Skąd:Kielce

Napisano 10 czerwiec 2012 - 20:21

Wiem, że ciężko by było go samodzielnie odpalić. Bardziej chodzi mi o szkielet, który można by było przenieść do KO3 z drobnymi modyfikacjami i perspektywami na dalsze modyfikacje przez społeczność.

OŚWIADCZENIE: Ja, niżej podpisany, świadomy wszystkich konsekwencji tego posta postanawiam go dopuścić do użytku publicznego, albowiem bo gdyż aczkolwiek uważam, że nie wyrządzi on (znaczy: post) krzywdy nikomu innemu niźli mnie samemu (czyli autorowi posta).
-- Zepco --


#9 phpion

phpion

    Senior Mastah

  • Użytkownik
  • PipPipPip
  • 774 postów
  • Skąd:Sosnowiec, Dąbrowa Górnicza

Napisano 11 czerwiec 2012 - 07:23

Postaram się wkrótce wrzucić ten moduł wraz z dodatkowym modułem, w którym będą same zmodyfikowane pliki gołej Kohany. Wówczas Formject powinien ruszyć. Z przenosinami pod K3 nie powinno być większego problemu - wszystkie klasy w mojej wersji K2 (włącznie z tymi z katalogu system) są automatycznie ładowane w stylu PEAR/ZF czyli Moja_Klasa znajduje się w Moja/Klasa.php.
Notifero - Technologie Informatyczne | Warsztat: Kohana 3.x/2.x + PostgreSQL/MySQL | Programista Kohana




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych