Jump to content

Gdzie trzymać pliki ze swoimi klasami


Martin-WulkSoft

Recommended Posts

Cześć 

 

Piszę w miarę skomplikowany moduł w którym dla ułatwienia późniejszej modyfikacji chcę zastosować programowanie obiektowe, moduł będę chciał z czasem wrzucić na sprzedaż.  Zastanawiam się czy swoje pliki z klasami mogę  trzymać w katalogu /modules/mymodul/classes nigdzie nie spotkałem takiego rozwiązania z tego co widzę nie, którzy plik ze swoimi klasami po prostu trzymają w katalogu /modules/mymodul, ale ja bym chciał mieć porządek i pliki z klasami trzymał w innym katalogu  .

 

Nie chciał bym później przerabiać projektu bo pliki z klasami znajdują się w niewłaściwym miejscu.

 

Link to comment
Share on other sites

jedyne na co zwróć uwagę to to, aby pliki trzymane w override/classes/ nie pokrywały się z plikami w module presty /classes/

w przeciwnym wypadku (gdy nazwy plików będą się pokrywać) dojdzie do override, czyli nadpiszesz oryginalne klasy swoimi

Link to comment
Share on other sites

Eee, przecież klasy z modułów nie podlegają ładowaniu automatycznemu z Autoload więc będą brane pod uwagę tylko wtedy gdy będą w katalogu override.

 

Ja sobie dzielę tak:

 

models/ - klasy

controllers/ - admin/front

views/ - tutaj pliki tpl podzielone na hook, templates - front/admin

assets/ - tutaj wszystkie dodatkowe elementy

overrides/ - tutaj klasy, które mają ewentualne zadanie rozszerzenia plików silnika PrestaShop

Link to comment
Share on other sites

lol nie wiem czemu ale ja tam widziałem override ;D mój błąd, mogą tam być, bez żadnego ALE o którym wspominałem

 

 

Klasy ładuje sobie przez 

include_once(dirname(__FILE__) . '/classes/MyClass.php') 

 

Zastanawiam się jeszcze nad nazewnictwem bo jeżeli stworze swoja klasę Customer, która już jest w PS to wyrzuci błąd.

Czy mogę do swoich klas dorzucać prefix np  CustomerMymodule, AdressMymodule  itp ... 

Link to comment
Share on other sites

A dlaczego nie? Jasne, że możesz. Inne pytanie po co Ci w module klasa w stylu CustomerMyModule, nie wiem czy chcesz modyfikować działanie obiektów z Customer czy dodać funkcjonalność tam? Jeśli dodać funkcjonalność to ok, jeśli zmodyfikować metody z Customer.php to robisz to źle.

Link to comment
Share on other sites

A dlaczego nie? Jasne, że możesz. Inne pytanie po co Ci w module klasa w stylu CustomerMyModule, nie wiem czy chcesz modyfikować działanie obiektów z Customer czy dodać funkcjonalność tam? Jeśli dodać funkcjonalność to ok, jeśli zmodyfikować metody z Customer.php to robisz to źle.

 

To był przykład

 

Taką klase chciał bym wykorzystać do stworzenia dość skomplikowanej strony konfiguracyjnej modułu, której głównym zadaniem było by konfigurowanie modułu, a nie modyfikowanie działą PS.

 

Taka klasa zawierała by tylko metody i pola służące do konfiguracji działania modułu. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...