Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczne tworzenie pól w klasie
radziel
post 8.01.2004, 18:02:16
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.04.2003
Skąd: Olsztyn

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


[php:1:d9f2318ceb]<?php
/* cut */
function InitALLInterface()
{
$source = opendir(BASE_DIR . '/source/modules/');
while( $file = readdir($source) )
{
if ( ($file<>".") && ($file<>"..") && ( !is_dir($source.$file) ) )
{
$data = explode(".", $file);
eval("var $".$data[0].";");
}
}
closedir($source);
return true;
}
/* cut */
?>[/php:1:d9f2318ceb]

To jest jedna z metod klasy która miałaby za zadanie zainicjować wszystkie dostępne klasy (moduły) jądra.

Otwiera do odczytu katalog i jezeli to jest plik to bierze pierwszy człon nazwy pliku i miałby zrobić pole w klasie... Niestety evalem na takim poziomie się nie bawiłem i z tego co mi wiadmono raczej nie można robić nowych pól w metodzie... ale kodu poza metodami przecież parser nie wykonuje... tylko trzeba wywołać konkretną metodę...

Ma może ktoś jakiś pomysł jak dynamicznie tworzyć pola w klasie od nazw plików i przypisywać do tego obiekty?


--------------------
r.
Go to the top of the page
+Quote Post
Cudi
post 8.01.2004, 18:53:48
Post #2


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


[php:1:5ae6d15808]<?php
$this->$data[0] = &$object;
?>[/php:1:5ae6d15808]


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
radziel
post 8.01.2004, 19:02:47
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.04.2003
Skąd: Olsztyn

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


Cytat
[php:1:6c44796f38]<?php
$this->$data[0] = &$object;
?>[/php:1:6c44796f38]


Ale w tym wypadku $data[0] będzie odwołanie do object'u a ja chce żeby było np. pole $auth i było obiektem klasy auth która jest w pliku auth.php.. . Chce żeby to było robione hurtowo przez funkcję InitALLInterface i potem żebym miał tyle pól w klasie ile jest plików...


--------------------
r.
Go to the top of the page
+Quote Post
Cudi
post 8.01.2004, 19:27:22
Post #4


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Rozumiem że klasa auth będzie leżała w pliku auth.class.php lub coś podobnego, więc kod powinien wyglądac:
[php:1:25a6213461]<?php
include( $source.$file );
$data = explode(".", $file);
$this->$data[0] = new $data[0];
?>[/php:1:25a6213461]
Update:
Czy w zmiennej $source nie ma przypadkiem uchtytu otwartego katalogu, a nie ściezki do niego?


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 14:47