Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ładowanie modelu dla kontrolera tylko wypadku użycia
freeon
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


Zastanawiam się jak rozwiązać problem automatycznego ładowania modelu dla kontrolera tylko wtedy gdy bedzie choc raz użyty. Wolalbym tu uniknac wzorca fabryki bo nie chcialbm miec cos takiego
  1. $this->user=user::new();
chcialbym zeby $user byla to klasa ktora po dostepie do niej np. (
  1. $this->user->name=''
) zaladowala model user i podmienila siebie... nie wiem czy sie jasno wyrazilem ale jestem po nie przespanej nocy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
witul
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 24.08.2007

Ostrzeżenie: (0%)
-----


hmmm
jest juz troche pozno i moge nie zalapac ocb w temacie (IMG:style_emoticons/default/biggrin.gif)
ale z tego co rozumiem to problem tkwi w odpowiedniej implementacji autoloadera (IMG:style_emoticons/default/snitch.gif)
o autoloaderach sa rozne ciekawe tematy, poszukaj

ja mam autoloader tak rozwiazany (+ mapki na zasadzie "nazwa_klasy"=>"sciezka_do_pliku"):

  1. class Autoloader{
  2. private static $map=array();
  3. private static $included=array();
  4. public function __construct(){
  5. $this->loadMaps();
  6. }
  7. private function loadMaps(){
  8. $components_dir=array();
  9. $current_mod_components_dir=APPPATH.'components/';
  10. foreach(new DirectoryIterator($current_mod_components_dir ) as $v){
  11. if(!$v->isDot() && $v->isDir())
  12. $components_dir[]=$v->getPathname().'/config/maps';
  13. }
  14. $maps_dirs=array(
  15. SYSPATH.'config/maps/',
  16. APPPATH.'config/maps/');
  17. $maps_dirs=array_merge($maps_dirs,$components_dir);
  18. foreach($maps_dirs as $map_dir){
  19. foreach(new DirectoryIterator($map_dir) as $map){
  20. if(!$map->isDot() && !$map->isDir()){
  21. include $map->getPathname();
  22. self::$map=array_merge($map,self::$map);
  23. }
  24. }
  25. }
  26. self::$map=array_unique(self::$map);
  27. }
  28. public function load($class_name){
  29. if(!in_array($class_name,self::$included) && isset(self::$map[$class_name])){
  30. include self::$map[$class_name];
  31. self::$included[]=$class_name;
  32. return self::$map[$class_name];
  33. }
  34. else return false;
  35. }
  36. }



Do tego cache'owanie map plikow i nie martwimy sie o zadne ladowania plikow

Pozdrawiam

Ten post edytował witul 4.10.2009, 03:37:50
Go to the top of the page
+Quote Post

Posty w temacie
- freeon   Ładowanie modelu dla kontrolera tylko wypadku użycia   3.10.2009, 12:26:19
- - marcio   Hmmm czekaj jesli dobrze rozumiem importuj plik mo...   3.10.2009, 12:41:03
- - freeon   Dobrze zrozumialeś tylko zastanawiam sie czy mozna...   3.10.2009, 12:46:52
- - marcio   Jak dobrze pokombinujesz z __get() i ewentualnie _...   3.10.2009, 12:57:55
- - cojack   A ja sobie wczytuję ręcznie modele do kontrolera, ...   3.10.2009, 12:59:58
- - freeon   No tak niby mniej zabawy ale potem fajnie by bylo ...   3.10.2009, 13:34:52
- - cojack   A co jeżeli jest już załadowany? ;] Musiałbyś go r...   3.10.2009, 14:02:29
- - Crozin   Cytatedna linijke przy kazdym kontrolerzeChyba rac...   3.10.2009, 14:08:14
- - marcio   Cytat(cojack @ 3.10.2009, 15:02:29 ) ...   3.10.2009, 14:08:54
- - cojack   marcio a kto broni używać registera w singletonie?...   3.10.2009, 14:16:10
- - witul   hmmm jest juz troche pozno i moge nie zalapac ocb ...   4.10.2009, 03:30:45
- - freeon   Tylko chodzi o to że auto loader klas jest tu zast...   4.10.2009, 10:04:49
- - marcio   Cytatmodel dostaje zmienne w tablicy a nie typu ...   4.10.2009, 10:23:52
- - freeon   Ciekawe rozwiązanie nie wpadlem na to..... po połu...   4.10.2009, 10:34:35
- - marcio   [PHP] pobierz, plaintext  $args = func_num_ar...   4.10.2009, 19:28:27
- - cojack   marcio, co Ty q... za herezje wypisujesz? Pobieras...   4.10.2009, 21:46:48
- - Crozin   Taa... call_user_func_array - jest bajer co nie?   4.10.2009, 22:02:52
- - marcio   @cojack palancie wiesz co to wzor? @Crozin nie...   4.10.2009, 23:26:02
- - nospor   Cytat@cojack palancie wiesz co to wzor?czy cojak c...   7.10.2009, 07:02:01


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 23:17