![]() |
![]() ![]() |
![]() |
![]()
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.
|
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 14:47 |