• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywołanie metody w konsturktorze

Object Storage Arubacloud
+1 głos
164 wizyt
pytanie zadane 8 kwietnia 2016 w PHP przez Niespecjalny Gaduła (4,180 p.)

Siemka,

Chciałbym się dowiedzieć czy wywołanie metody w konstruktorze nie jest błędem wg jakiegoś standardu lub czy nie niesie jakiegoś zagrożenia bezpieczeństwa :P

<?php
class Klasa{
    function __constructor(){
        $this->funkcja();
    }
    function funkcja(){
        return'wartość';
    }
}

coś takiego ^

1 odpowiedź

+1 głos
odpowiedź 8 kwietnia 2016 przez Fenix Nałogowiec (26,750 p.)
Jeśli podczas tworzenia instancji zostaną zainicjowane elementy współpracujące,
wynik jest przeważnie mało elastyczny i może powodować przedwczesne łączenie elementów, tak samo podczas gdy Twój konstruktor wyświetla jakikolwiek wynik, człowieczkowi korzystającemu z Twojej strony wyświetla się ten wynik nawet jeśli tego nie chce, lub nie chce w tym momencie.
komentarz 8 kwietnia 2016 przez Niespecjalny Gaduła (4,180 p.)
edycja 8 kwietnia 2016 przez Niespecjalny

Nie no to ma być prymitywny loader klas więc i tak muszę wywołać funkcję z tej klasy i dlatego się pytam czy to bezpieczne i czy ze standardami się nie kłuci.

To by było coś takiego

<?php
class Loader{
	private $_directory;
	function __construct(){
		$this->register();
	}
	function register(){
		spl_autoload_register(array($this, 'autoload'));
	}
	function autoload($class){
		$this->_directory=str_replace('\\', '/',$class);
		require_once'./vendor/'.$this->_directory.'.php';
	}
}
new Loader();

 

komentarz 8 kwietnia 2016 przez Fenix Nałogowiec (26,750 p.)
function __autoload($class_name) {
    include $class_name . '.php';
}

http://php.net/manual/pl/language.oop5.autoload.php

 

3
komentarz 8 kwietnia 2016 przez Boshi VIP (100,240 p.)

Wskazówka

spl_autoload_register() provides a more flexible alternative for autoloading classes. For this reason, using __autoload() is discouraged and may be deprecated or removed in the future.

Podobne pytania

0 głosów
2 odpowiedzi 364 wizyt
0 głosów
2 odpowiedzi 184 wizyt
0 głosów
1 odpowiedź 211 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...