Mam taki problem. Oczywiście przeszukałem forum i całe 4p i nic. Potrzebuję wewnątrz definicji klasy zastosować włączenie innego pliku .php. Konkretnie w tym pliku znajdują się definicje właściwości klasy. No ale jak dam include czy require to wywala mi błąd. Czy da się to jakoś inaczej zrobić?
Jedynie poprzez dziedziczenie (
klasa extends klasa_bazowa
) jesli chodzi o elementy skladowe klasy, tyle ze nie wiem co dokladnie chcesz zrobic, ale raczej jest to jedyna droga.
Dopisane: chyba ze problem sprowadza sie do wartosci zmiennych to w konstruktorze nadaj im puste wartosci i od razu uruchom funkcje ktora pobierze dla nich dane i je przypisze. Nie wiem, moznaby wiele rozwiazan spontanicznie wydumac ;).
Sprawa wygląda tak:
Mam sobie klasę DBMySQL, która odpowiada za wygodniejsze łączenie się z bazą. No i teraz w skrypcie instalacyjnym systemu portalowego jest sobie tworzony plik databasedata.php, który zawiera dane nt. użytkownika, hasła, nazwy bazy itp. No i nie mogę tego pliku zapisać nie w PHP, bo ktoś by mógł go sobie po prostu przeczytać (tak, to nie jest to takie proste). No i wpadłem na pomysł trochę okrężnej drogi, no ale trudno. Mianowicie wymyśliłem, że podzielę sobie ten plik z deklaracjąklasy na dwie części, a w skrypcie instalacyjnym je skleję wstawiając w środek co trzeba. Trochę rozwiązanie na około, no ale... :]
Mocno na okolo :).
- Nie lepiej po prostu nadac odpowiednie prawa dla pliku? Najlepiej niech to robi ten instalator automatycznie i sprawdza czy sie udalo.
- Jesli odrzucasz punkt pierwszy to proponuje:
a) zapisac to do pliku poprzez crypt jako normalne dane, gdzie kazda linia to okreslona wartosc i dodac f-cje ktora to pobierze, zrobi decrypt i przypisze w klasie gdzie trzeba.
b) rozwazyc ponownie czy nie lepiej zrobic tak jak punkcie #1 :)
Pamietaj, ze tego typu kombinowanie wplynie na wydajnosc.
dopisane:
Skrajne rozwiazanie i bezsensowne (ale bezpieczne) to rzeczywiscie plik php, ale z pelna autoryzacja, odpalanie polaczenia HTTP z tymze plikiem ktory po udanej autoryzacji na podstawie sesji zwracalby dane, ktore bys sparsowal i przypisal do klasy :D. Sajgon totalny.
ale zwróć uwagę na to, że jak zrobię sobie plik tekstowy z takimi danymi, to każdy może go sobie przeczytać :/. Potrzebuję czegoś, co jest z natury parsowane. A jak chodzi o wydajność, to ten skrypt instalacyjny wywoływany jest RAZ i tworzy skrypt, z którego można potem korzystać setki razy na sekundę i będzie dobrze.
jak zrobię sobie plik tekstowy z takimi danymi, to każdy może go sobie przeczytać :/.
Przeciez od tego wlasnie sa prawa dostepu ->patrz: chmod().
Potrzebuję czegoś, co jest z natury parsowane.
No to nie mozesz umiescic tam zwyklych zmiennych, ktore zaincludujesz poza klasa i odwolasz sie do nich wewnatrz klasy poprzez global?
A jak chodzi o wydajność, to ten skrypt instalacyjny wywoływany jest RAZ i tworzy skrypt, z którego można potem korzystać setki razy na sekundę i będzie dobrze.
Domyslam sie, dlatego niech RAZ nada prawa dostepu do pliku ;).
RoSzi, ale zauważ, że plik tekstowy nie może mieć zablokowanego odczytu (bo PHP go nie przeczyta), ani udostępnionego odczytu (bo ktoś będzie mógł go normalnie przeczytać). Na przeciętnym serwerze PHP i Apach mają takie prawa, jak dowolny użytkownik, nie posiadający żadnych specjalnych praw do plików użytkowników.