Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] autoload i tworzenie obiektu
-nosel9-
post
Post #1





Goście







Witam,
Jestem początkujący w OOP, proszę o wyrozumiałość.
chodzi o ładowanie klas. w PHP dostępna jest funkcja autoload(), która podpina plik z klasą w momencie tworzenia obiektu klasy której nie ma.
No ale nawet korzystając z autoload() muszę ręcznie tworzyć obiekty. Czy da się temu jakoś zaradzić?
Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Same mają Ci się obiekty tworzyć? A po co? Kiedy? Przy dołączeniu klasy?
Go to the top of the page
+Quote Post
-nosel9-
post
Post #3





Goście







chodzi mi o coś takiego.
  1. class Loader {
  2. public class;
  3. public function load($name) {
  4. require $name.'.php';
  5. $this->class[$name] = new $name();
  6. }
  7. }
  8.  
  9. no ale w index.php
  10. require loader.php;
  11. $loader = new Loader();
  12. $loader->load('mojaklasa');
  13.  
  14. $this->mojaklasa->metoda();

nie działa.
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Chwileczke bo czegoś tu nie kumam - Ty chyba żądasz niemożliwego (IMG:style_emoticons/default/tongue.gif)

Standardowo wygląda to tak:

  1. require 'klasa.php';
  2.  
  3. $klasa = new klasa();


Jak się użyję autoload:

  1.  
  2. // zakładamy że wcześniej mamy gdzieś uzycie autoload
  3.  
  4. $klasa = new klasa();


jedyna różnica polega na tym, że nie mamy w drugim przypadku require. W obu jednak musi wystapić powołanie instancji klasy do życia więc nie kumam jak niby miało by to się robić automatycznie?(IMG:style_emoticons/default/questionmark.gif) ?

EDIT: Co to ma wspólnego z autoload (IMG:style_emoticons/default/arrowheadsmiley.png) (IMG:style_emoticons/default/questionmark.gif) Napisz dokładnie krok po kroku co chciałeś przez ten kod uzyskać - bo wg mnie jest to dość zamotane - nie karz się domyślać.

Ten post edytował Sephirus 10.07.2013, 13:07:19
Go to the top of the page
+Quote Post
-nosel9-
post
Post #5





Goście







tak to działa we frameworkach np. codeigniter, cakephp.
podaje się jako parametr nazwę klasy do funkcji ładującej i później odwołuje się przez $this->nazwaklasy->metoda();
Go to the top of the page
+Quote Post

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: 22.08.2025 - 23:51